2017-04-27 72 views
0

我需要生成一个PDF417条码,并在其中我有一个利用iText API的申请标识符的PDF栏填写往里面条码PDF417的PDF。利用iText一个字段标识

我已经使用了几种方式,如

路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); 

这里也是问题是相同的,条形码是不正确的大小和没有放置在正确的位置。

我知道的申请字段的标识符,我需要专门放置条形码。 有没有一种方法可以让我得到细胞,并生成这个细胞的确切大小的条形码图像,并将其放入?

谢谢所有帮助!

回答

0

我终于可以实现这一点。我的代码是

 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);