-1

我尝试使用 iTextSharp 库创建带有EAN13条形码的 PDF。我尝试生成一个值为“ 023942432852 ”的条形码。

iTextSharp.text.Image imageEAN = codeEan.CreateImageWithBarcode(cb, null, null);

抛出System.IndexOutOfRangeException

有代码:

Document pdfdoc = new Document(pageSize, _margSx, _margDx, _margUp, _margBo);
            PdfWriter writer = PdfWriter.GetInstance(pdfdoc, new FileStream(_path + @"\Barcode.pdf", FileMode.Create));


            pdfdoc.Open();

            PdfContentByte cb = writer.DirectContent;

            pdfdoc.PageSize.BackgroundColor = BaseColor.GRAY;


            BarcodeEAN codeEan = new BarcodeEAN();
            if (CreaChecksum)
                codeEan.GenerateChecksum = true;
            codeEan.ChecksumText = true;
            codeEan.CodeType = Barcode.EAN13;
            codeEan.Code = barcode;

            iTextSharp.text.Image imageEAN = codeEan.CreateImageWithBarcode(cb, null, null);
            imageEAN.ScaleAbsolute(100, 40);
            imageEAN.SetAbsolutePosition(pdfdoc.PageSize.Right - 150f, pdfdoc.PageSize.Bottom + 30f);   
            pdfdoc.Add(imageEAN);
4

1 回答 1

1

顾名思义,EAN13 条码需要 13 位数字,就像 EAN8 条码需要 8 位数字一样。您正在尝试为此创建条形码string

"023942432852"

当我数这个中的位数时string,我只找到 12 位。缺少一位。请完成string,使其长度为 13。

于 2015-06-19T11:43:42.083 回答