目前正在使用 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
我觉得我有点晚了,但你那几天就差点追回来了!
您有 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
),但正如我之前告诉您的,您已经非常接近了!