我们正在使用 iText 合并一些已经动态创建的 PDF。合并后的最终 PDF 不显示创建原始 PDF 时动态添加的图片。
下面是它的工作原理:
SAP WebDynpro Java 应用程序生成 PDF。一些图像在 XDP 中是这样绑定的:
<field access="readOnly" w="42mm" h="51.86mm" name="pmPicture" x="1mm" y="1.1mm"> <ui> <imageEdit data="embed" /> </ui> <value> <image aspect="none" /> </value> <bind match="dataRef" ref="$.pmPicture" /> <border> <edge presence="hidden" /> <corner presence="hidden" /> </border> <desc> <text name="embeddedHref">Unknown Embedded URI</text> </desc> </field>
应用程序显示预览 PDF。PDF 正确显示绑定的图像!
我们使用基于此示例代码的 iText来合并 PDF 文件。
最终 PDF 不显示绑定图像。绑定文本正确显示。
我试图找出 iText “读取” PDF 时会发生什么。我可以使用以下代码发现图像已成功加载到阅读器对象中:
System.out.println(pdfReader.getAcroFields().getField("pmPicture"))
所以现在我试图找出将 PDF 合并到最终 PDF 时会发生什么。但是我找不到代码有什么问题。我应该为图像做一些额外的事情吗?
// Create a new page in the target for each source page.
while (pageOfCurrentReaderPDF < pdfReader.getNumberOfPages()) {
document.newPage();
pageOfCurrentReaderPDF++;
page = writer.getImportedPage(pdfReader,
pageOfCurrentReaderPDF);
cb.addTemplate(page, 0, 0);
}