将页面从pdf文件复制到新文档

我正在尝试从现有.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。”


我怎样才能解决这个问题 ?


慕无忌1623718
浏览 245回答 1
1回答

千巷猫影

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。)
打开App,查看更多内容
随时随地看视频慕课网APP