2

我正在尝试使用以下代码生成一个barcode128in iText

Barcode128 shipBarCode = new Barcode128();
shipBarCode.setCode(getOrder().getPartnerPurchaseOrderNumber());
shipBarCode.setBarHeight(40f);

PdfPCell barCodeCell = new PdfPCell();
barCodeCell.addElement(
    shipBarCode.createImageWithBarcode(cb, BaseColor.BLACK, BaseColor.BLACK)
);
barCodeCell.setFixedHeight(55f);
barCodeCell.setPaddingRight(15f);
barCodeCell.setBorder(Rectangle.NO_BORDER);
barCodeCell.setHorizontalAlignment(Element.ALIGN_CENTER);

table.addCell(barCodeCell);

但我收到以下异常:

java.lang.RuntimeException: There are illegal characters for barcode 128 in '509868_1_2_1'.
at com.itextpdf.text.pdf.Barcode128.getRawText(Barcode128.java:518)
at com.stuhrling.orderprocessing.partner.shopnbc.ShopNBCPackingSlip.getOrderInfoTable(ShopNBCPackingSlip.java:142)
at com.stuhrling.orderprocessing.partner.shopnbc.ShopNBCPackingSlip.getPackingSlipElement(ShopNBCPackingSlip.java:610)
at com.stuhrling.orderprocessing.label.PDFComboLabel.packingSlipCell(PDFComboLabel.java:131)
at com.stuhrling.orderprocessing.label.PDFComboLabel.generateLabel(PDFComboLabel.java:87)
at com.stuhrling.orderprocessing.OrderService.generatePackingSlip(OrderService.java:731)
at com.stuhrling.orderprocessing.PackingSlipListener.handleMessage(PackingSlipListener.java:60)
at com.stuhrling.orderprocessing.messaging.MessageListener.run(MessageListener.java:76)
at java.lang.Thread.run(Thread.java:745)

显然,code 128不读取下划线..或者它可能是一个错误iText

有谁知道这个的解决方法iText

更新:


看起来即使没有下划线它也会出错,所以现在我更加难过...... :(

我想知道我的代码有什么问题?

顺便说一句,只有当我只有数字时才会发生这种情况;如果我添加一个字母,问题就会消失。

4

2 回答 2

0

我不知道我是否正确,但我认为这可能是一个错误。单步执行 itext 的Barcode128.java后,我更改了它(第 442 行):

if (currentCode != codeSet.getStartSymbol())
        throw new RuntimeException(MessageLocalization.getComposedMessage("there.are.illegal.characters.for.barcode.128.in.1", text));

对此:

if (codeSet != Barcode128CodeSet.AUTO && currentCode != codeSet.getStartSymbol()) 
        throw new RuntimeException(MessageLocalization.getComposedMessage("there.are.illegal.characters.for.barcode.128.in.1", text));

itext 版本是5.5.4。如果有熟悉代码的人,也许你可以告诉我这是否真的是一个错误。

于 2016-09-12T20:11:35.727 回答
0

我认为 itextpdf 5.5.4 错误。当我升级到 5.5.12 时,它已解决。

于 2017-08-31T17:34:14.057 回答