1
目前我添加條形碼用下面的代碼一個PDF創建條形碼疊加:上與instransparent背景(iText的)
PdfContentByte overContent = pdfStamper.getOverContent(page);
Rectangle pageSize = pdfReader.getPageSize(page);
Barcode128 code128 = new Barcode128();
code128.setCode(barcodeText);
code128.setCodeType(Barcode128.CODE128);
PdfTemplate template = code128.createTemplateWithBarcode(overContent, BaseColor.BLACK, BaseColor.BLACK);
Rectangle barcodeSize = code128.getBarcodeSize();
float x = pageSize.getRight() - barcodeSize.getWidth() - 10;
float y = pageSize.getTop() - barcodeSize.getHeight() - 10;
overContent.addTemplate(template, x, y);
不幸的是,所得到的衝壓圖像具有透明背景。條碼後面的內容干擾掃描儀,軟件:
替代我可以
Image image = code128.createImageWithBarcode(over, BaseColor.BLACK, BaseColor.BLACK);
image.setAbsolutePosition(x, y);
over.addImage(image);
但有添加條形碼,該setTransparency方法似乎也無能爲力。
任何人都有我的提示如何在普通的白色背景上創建條形碼?
編輯 - 解決方案:
PdfContentByte overContent = pdfStamper.getOverContent(page);
Rectangle pageSize = pdfReader.getPageSize(page);
Barcode128 code128 = new Barcode128();
code128.setCode(barcodeText);
code128.setCodeType(Barcode128.CODE128);
PdfTemplate template = code128.createTemplateWithBarcode(overContent, BaseColor.BLACK, BaseColor.BLACK);
float x = pageSize.getRight() - template.getWidth() - 10;
float y = pageSize.getTop() - template.getHeight() - 10;
float w = pageSize.getRight() - 10;
float h = pageSize.getTop() - 10;
overContent.saveState();
overContent.setColorFill(BaseColor.WHITE);
overContent.rectangle(x-2, y-2, w+4, h+4);
overContent.fill();
overContent.restoreState();
overContent.addTemplate(template, x, y);
非常感謝! 我已經在上面添加了我的解決方案。 –
不錯!現在閱讀這篇文章的人有一個關於如何在新創建的文檔以及現有文檔中實現這個功能的例子。謝謝@DocH –