如何用PDFSharp复制所有内容(包括表格)?

问题描述 投票:0回答:1

目前正在使用 PDFSharp 编写一个小型 C# 程序,但我有一个似乎无法解决的问题。该程序用于加载包含许多表单的预制PDF,我想读取原始PDF,将其内容复制到新PDF中,然后填写新PDF中的表单。到目前为止我有以下代码:

inPDF = PdfReader.Open(sourceFile, PdfDocumentOpenMode.Import);
outPDF = new PdfDocument();

for (int idx = 0; idx < inPDF.PageCount; ++idx)
{
   outPDF.AddPage(inPDF.Pages[idx]);
}

但是新的PDF没有原始PDF中的任何表格,我如何复制原始PDF的内容(包括表格)?

谢谢,RBrNx

c# pdfsharp
1个回答
0
投票

我觉得我有点晚了,但你那几天就差点追回来了!

您有 2 个选项,使用

AddPage
InsertPage
。我遇到的主要问题是编码是强制性的(我不确定是否只有我如此),但这里有代码:

using System.Text;
using System.Windows;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;

Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);

sourceFile = "YourDirectory/YourOriginalDocument.pdf";
finalFile = "YourDirectory/YourFinalDocument.pdf";

var outPDF = new PdfDocument();
var inPDF = PdfReader.Open(sourceFile, PdfDocumentOpenMode.Import);

for (int idx = 0; idx < inPDF.PageCount; ++idx)
{
    //outPDF.InsertPage(idx, inPDF.Pages[idx]); // if you prefer....
    outPDF.AddPage(inPDF.Pages[idx]);
}

// Save
outPDF.Save(finalFile);

请注意,您忘记保存 pdf(使用方法

Save
),但正如我之前告诉您的,您已经非常接近了!

© www.soinside.com 2019 - 2024. All rights reserved.