我需要将两个pdf大小A8和A4合并为一个PDF。当我们开发合并的PDF包含相同的大小时。谁能告诉我们如何用不同尺寸的A8和A4尺寸来实现这一目标。
答案 0 :(得分:2)
使用PdfWriter
类合并文档违反了官方文档中给出的所有建议,尽管有非官方的示例可能会引诱您进入写坏代码。我希望你明白我发现这些不好的例子比你更烦人。
请查看chapter 6中的表6.1。它为您提供了一个概述,显示何时使用哪个类。在这种情况下,您应该使用PdfCopy
:
String[] files = { MovieLinks1.RESULT, MovieHistory.RESULT };
// step 1
Document document = new Document();
// step 2
PdfCopy copy = new PdfCopy(document, new FileOutputStream(RESULT));
// step 3
document.open();
// step 4
PdfReader reader;
int n;
// loop over the documents you want to concatenate
for (int i = 0; i < files.length; i++) {
reader = new PdfReader(files[i]);
// loop over the pages in that document
n = reader.getNumberOfPages();
for (int page = 0; page < n; ) {
copy.addPage(copy.getImportedPage(reader, ++page));
}
copy.freeReader(reader);
reader.close();
}
// step 5
document.close();
如果您使用的是最近版本的iText,您甚至可以使用addDocument()
方法,在这种情况下,您不需要遍历所有页面。如果涉及表格,您还需要特别小心。有几个例子证明了Sandbox中的新功能(可以追溯到本书编写之后)。