【发布时间】:2012-04-09 12:20:16
【问题描述】:
我想在 java 中使用 iText 合并 2 个 pdf 文档,其中一个 pdf 是在运行时创建的,而另一个是我读入的现有 pdf,并使用 PdfStamper 函数将图像印在上面。然后我想合并这两个 pdf 并使用 servlet 显示它们。
我想知道这是否可行以及如何去做。
单独创建或标记它们没有问题,但我似乎无法弄清楚如何合并它们。
谢谢
【问题讨论】:
我想在 java 中使用 iText 合并 2 个 pdf 文档,其中一个 pdf 是在运行时创建的,而另一个是我读入的现有 pdf,并使用 PdfStamper 函数将图像印在上面。然后我想合并这两个 pdf 并使用 servlet 显示它们。
我想知道这是否可行以及如何去做。
单独创建或标记它们没有问题,但我似乎无法弄清楚如何合并它们。
谢谢
【问题讨论】:
我想这段代码可以帮助你。您必须为此导入 IText.Jar
public static void doMerge(List<InputStream> list,
OutputStream outputStream) throws DocumentException,
IOException {
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, outputStream);
document.open();
PdfContentByte cb = writer.getDirectContent();
float k = 0;
for (InputStream in : list) {
PdfReader reader = new PdfReader(in);
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
// document.newPage();
//import the page from source pdf
PdfImportedPage page = writer.getImportedPage(reader, i);
//add the page to the destination pdf
cb.addTemplate(page, 0, 0);
System.out.println(page.getHeight());
}
}
outputStream.flush();
document.close();
outputStream.close();
}
【讨论】: