【发布时间】:2015-06-23 10:12:18
【问题描述】:
使用 iText 5.5.5。
我通过PdfWriter 实例打开了com.itextpdf.text.Document。在构建文档的各个阶段,我需要添加静态 PDF 页面。静态页面以byte[] 的形式出现。
在关注itextpdf.com 上的各种示例后,我无法将他们的示例与我的用例联系起来。代码如下:
Document trunk = new Document();
PdfWriter writer = PdfWriter.getInstance(trunk, getTrunkStream());
writer.setPageEvent(geTrunkPageEvent());
trunk.open();
....
PdfReader reader = new PdfReader(bytes);
// graft == my static content
Document graft = new Document(reader.getPageSizeWithRotation(1));
PdfCopy copy = new PdfCopy(graft, getTrunkStream());
graft.open();
int count = reader.getNumberOfPages();
for(int page = 0; page < count;) {
copy.addPage(copy.getImportedPage(reader, ++page));
}
copy.freeReader(reader);
reader.close();
代码编译并运行无错误。但是移植页面无法与主干页面一起出现。
【问题讨论】:
-
您下载免费电子书The best iText Questions on StackOverflow了吗?它包含这个问题的答案Creating a PDF image in iText。在您的代码中,您使用了两次
getTrunkStream():一次使用PdfWriter从头创建文档,一次使用PdfCopy合并现有文档。这违背了所有的逻辑。你没看chapter 6 of my book吗? -
为什么光顾这个问题?
-
因为我是 iText 的赞助人。你飞过硅谷吗?然后你就会知道 SFO 机场位于一个叫 San Bruno 的地方:D
-
我明天要飞往圣何塞参加 PDF 的 ISO 会议。飞行前我总是很紧张。当我降落在以圣布鲁诺命名的城市时,我会很高兴。
-
尤其是当你飞那么远的时候。神速。