【发布时间】:2016-08-06 06:12:24
【问题描述】:
我正在使用 iText 4.2.1 来生成我的 pdf 报告。 所以基本上我有一个 PDF 模板,其中包含封面页、结束页和内容页(仅包含图像标题)。
我正在使用 PdfCopy 和 PdfImportedPage 来复制我的模板,并使用 PageStamp 来动态添加我的内容。
需要:我需要多次使用内容页面:与报告中的内容页面一样多。
问题: 如果我使用 pdfCopy.createPageStamp(importedPage) 和 ColumnText.showTextAligned 添加一些文本,则戳记会保留在下一个内容上页。因此,我的内容页面 n°2 包含第一个的文本(由 PageStamp 添加)和它自己的文本(由另一个 PageStamp 添加)。
下面是代码示例:
// 在里面 文档文档 = 新文档(); PdfCopy pdfCopy = new PdfCopy( doc, new FileOutputStream( new File("Result.pdf") ) ); doc.open(); PdfReader pdfReader = new PdfReader("pdf-template.pdf"); // 第 1 页 PdfImportedPage importPage1= pdfCopy.getImportedPage(pdfReader, 2); String text1= "第一页的文字 - 1"; PageStamp stamp1 = pdfCopy.createPageStamp(importedPage1); ColumnText.showTextAligned(stamp.getOverContent(), Element.ALIGN_CENTER, 新短语(文本 1)、400、500、0); stamp.alterContents(); pdfCopy.addPage(importedPage1); // 第2页 PdfImportedPage importPage2= pdfCopy.getImportedPage(pdfReader, 2); String text2 = "第二页的文字 - 2"; PageStamp stamp2 = pdfCopy.createPageStamp(importedPage2); ColumnText.showTextAligned( stamp2.getOverContent(), Element.ALIGN_CENTER, 新短语(文本 2)、200、700、0); stamp2.alterContents(); pdfCopy.addPage(importedPage2); // 关闭 doc.close();--> 在第二页我会看到我的 text1 和我的 text2
我尝试使用相同的 PdfImportedPage:相同的结果。
我尝试使用相同的 PageStamp:相同的结果。
我尝试使用不同的 PdfReader:它可以工作,但这真的是解决方案吗??
感谢您的帮助。
【问题讨论】:
-
没有 iText 4.2.1 这样的东西。阅读this rogue version,你就会明白没有人真正知道iText 4.2.1 里面有什么。这是一个没有人认可的非官方版本。只要您使用比 iText 5 更早的版本,我认为没有人会帮助您。
-
您应该得到创建该分叉的公司的支持。问题是,那家公司已经不存在了。或者问分叉的开发者,ymasory。问题是,他们可能不感兴趣。
-
@GuillaumeB 我的回答能回答你的问题吗?