我需要生成一个PDF417条形码并将其填入PDF字段,我使用ITEXT API为其提供了归档标识符。
我使用了多种方式,例如
方式1
PdfContentByte cb = stamper.getUnderContent(1);
BarcodePDF417 pf = new BarcodePDF417();
pf.setText("Some text value for encoding");
Rectangle size = pf.getBarcodeSize();
PdfTemplate template = cb.createTemplate(size.getWidth(), size.getHeight());
pf.placeBarcode(template, BaseColor.BLACK, 5, 5);
Image image = Image.getInstance(template);
image.setAbsolutePosition(35f, 40f);
cb.addImage(image);
这里的问题是条形码尺寸不合适,并没有放在正确的位置。
方式2。
BarcodePDF417 barcode = new BarcodePDF417();
barcode.setText("Some text value for encoding");
barcode.placeBarcode(cb, BaseColor.BLACK, 5, 5);
此问题也是如此,条形码尺寸不合适,未放置在正确的位置。
我知道字段IDENTIFIER用于我需要专门放置条形码的字段。 有没有办法让我可以获取单元格并生成这个单元格的确切大小的条形码图像并将其放入?
感谢您的帮助!
答案 0 :(得分:1)
我终于可以实现这个了。我的代码是
PdfContentByte cb = stamper.getUnderContent(i);// i being the pdf page number.
BarcodePDF417 barcode = new BarcodePDF417();
barcode.setErrorLevel(5);
barcode.setCodeColumns(30);
barcode.setCodeRows(5);
barcode.setOptions(BarcodePDF417.PDF417_FIXED_RECTANGLE);
barcode.setText(<Byte[] - aka byte array of the text that needs to be encoded.>);
Rectangle rect = barcode.getBarcodeSize();
PdfTemplate template = cb.createTemplate(2 + rect.getWidth(), 2 + rect.getHeight());
barcode.placeBarcode(template, BaseColor.BLACK, 1, 1);
Image image = Image.getInstance(template);
image.scaleAbsolute(535, 135);
image.setAbsolutePosition(40f, 40f);
cb.addImage(image);