Сер*_*гей 5 c# pdf itext itext7
我正在尝试从现有.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
Run Code Online (Sandbox Code Playgroud)
但.AddPage()它会抛出这个异常:
iText.Kernel.PdfException:“页面 iText.Kernel.Pdf.PdfPage 无法添加到文档 iText.Kernel.Pdf.PdfDocument,因为它属于文档 iText.Kernel.Pdf.PdfDocument。”
我怎样才能解决这个问题 ?
一个 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);
}
Run Code Online (Sandbox Code Playgroud)
(请注意,如果页面上有额外内容,您可能需要选择该方法的重载,该方法接受附加IPdfPageExtraCopier实例,例如对于 AcroForm 字段 a PdfPageFormCopier。)
| 归档时间: |
|
| 查看次数: |
9488 次 |
| 最近记录: |