我正在使用 iText(特别是 iTextSharp 4.1.6),我想通过组合现有 PDF 中的页面来创建 PDF,同时插入从图像创建的新页面。
我分别使用 PdfCopy 和 PdfWriter 让这两个部分分别工作。从图像创建页面的代码如下所示:
PdfWriter pw = PdfWriter.GetInstance(doc, outputStream);
Image img = Image.GetInstance(inputStream);
doc.Add(img);
doc.NewPage();
现在,由于 PdfCopy 继承自 PdfWriter,我想我可以使用相同的技术将这样的“图像页面”添加到我的 PdfCopy 对象中,但它不起作用(如果在上面的示例中实例化 PdfCopy 而不是 PdfWriter ,页面上什么也没有出现)。
通过快速浏览源代码,我注意到当 PdfCopy 的构造函数调用超类构造函数时,它使用一个新的 Document 对象,而不是传入的对象,所以我想这就是原因。
有没有更好的方法来解决这个问题?目前我最好的猜测是使用 PdfWriter 从图像中创建单页 Pdf,然后使用 PdfCopy 将其添加到文档中,但这似乎是一种解决方法。