我正在尝试从现有.pdf文件复制一页并将其粘贴到新文档中,如下所示: using (var writer = new PdfWriter(OutputFile)) { var reader = new PdfReader("Templates//PDF_Template_Empty.pdf"); PdfDocument template = new PdfDocument(reader); var titlepage = template.GetPage(1); using (var pdf = new PdfDocument(writer)) { pdf.AddPage(titlepage); // exception但是.AddPage()它抛出了这个异常:iText.Kernel.PdfException:“页面iText.Kernel.Pdf.PdfPage无法添加到文档iText.Kernel.Pdf.PdfDocument,因为它属于文档iText.Kernel.Pdf.PdfDocument。”我怎样才能解决这个问题 ?
1 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
PDF页面对象通常具有许多相关对象。如果仅将页面本身添加到新文档中,而不是将相关对象添加到新文档中,则结果页面将是不完整的。
因此,iText 7会检查AddPage相关页面是否已在目标文档中创建,在后一种情况下,将抛出异常以防止丢失相关对象。
要跨文档复制页面,有一种PdfDocument方法CopyPagesTo有很多重载。对你来说
PdfDocument template = new PdfDocument(reader);
using (var pdf = new PdfDocument(writer))
{
// copy template pages 1..1 to pdf as target page 1 onwards
template.CopyPagesTo(1, 1, pdf, 1);
}
(请注意,如果页面上还有其他功能,您可能希望选择该方法的重载,该方法可以接受其他IPdfPageExtraCopier实例,例如AcroForm字段a PdfPageFormCopier。)
- 1 回答
- 0 关注
- 244 浏览
添加回答
举报
0/150
提交
取消