簡體   English   中英

iText Barcode128-條形碼的非法字符

[英]iText Barcode128 - illegal characters for barcode

我正在嘗試使用以下代碼在iText生成barcode128

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解決此問題的方法嗎?

更新:


看起來即使沒有下划線也會出錯,所以現在我更加沮喪... :(

我想知道我的代碼有什么問題嗎?

順便說一句,這只有在我只有數字的情況下才會發生。 如果我加了一封信,問題就消失了。

我不知道我是否正確,但是我認為這可能是一個錯誤。 在逐步瀏覽了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 如果有人熟悉該代碼,也許您可​​以告訴我這是否真的是一個錯誤。

我認為itextpdf 5.5.4錯誤。 當我升級到5.5.12時,它已解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM