.net 将PDF与PDF格式字段相结合

.net 将PDF与PDF格式字段相结合,.net,merge,pdfsharp,.net,Merge,Pdfsharp,我正在尝试使用PDFSharp和以下代码(我发现的代码)将两个创建的PDF文件连接到一个新的PDF: //打开输出文档 PdfDocument outputDocument=新PdfDocument(); //迭代文件 foreach(文件中的字符串文件) { //打开文档以从中导入页面。 PdfDocument inputDocument=PdfReader.Open(文件,PdfDocumentOpenMode.Import); //迭代页面 int count=inputDocument.

我正在尝试使用PDFSharp和以下代码(我发现的代码)将两个创建的PDF文件连接到一个新的PDF:

//打开输出文档
PdfDocument outputDocument=新PdfDocument();
//迭代文件
foreach(文件中的字符串文件)
{
//打开文档以从中导入页面。
PdfDocument inputDocument=PdfReader.Open(文件,PdfDocumentOpenMode.Import);
//迭代页面
int count=inputDocument.PageCount;
for(int idx=0;idx
第二个PDF有我填写的表单字段,也使用PDFSharp。我遇到的问题是,当合并到新的PDF中时,表单字段显示为空白

在创建并保存第二个PDF之后,我打开了它,表单字段显示的文本很好

我是遗漏了什么,还是PDFSharp在这个问题上有某种缺陷?在我看来,如果我能很好地打开和查看PDF,那么组合它们应该不会有任何问题


提前感谢您的帮助

PDFsharp不完全支持表单字段。我没有对此进行检查,但在将PDF文件与填充表单字段组合时可能会出现错误。我们继续维护和改进PDFsharp,但没有计划改进表单字段的处理

如果您尝试另一种方式,它可能会起作用:打开第二个PDF进行修改,打开第一个PDF进行导入,并将第一个文件的页面添加到第二个文件的开头(如果两个文件都包含填充的表单字段,则这可能不起作用)。

如果必须保留原始文件,请先创建第二个文件的副本。

谢谢您的回复。我已经试过你的建议,把第一页加在第二页的开头,但是没有成功。这似乎是PDF版本的一个问题:我们最终使用iTextSharp的一些东西解决了这个问题(请参阅)。然而,我现在正在用不同的PDF解决同一问题,这种解决方法似乎无法解决问题=SI还没有找到一个很好的解决方案。然而,经过多次尝试之后,最终起作用的是确保两个pdfdocuments都具有acroform属性,并且还确保“/NeedAppearances”设置为true。returnDocument.AcroForm.Elements[“/needAppearancess”]=new PdfBoolean(true)。您也不能只添加acroform。您可能需要使用表单从和现有pdf初始化pdf文档。
        // Open the output document
        PdfDocument outputDocument = new PdfDocument();
        // Iterate files
        foreach (string file in files)
        {
            // Open the document to import pages from it.
            PdfDocument inputDocument = PdfReader.Open(file, PdfDocumentOpenMode.Import);

            // Iterate pages
            int count = inputDocument.PageCount;
            for (int idx = 0; idx < count; idx++)
            {
                // Get the page from the external document...
                PdfPage page = inputDocument.Pages[idx];
                // ...and add it to the output document.
                outputDocument.AddPage(page);
            }
        }
        // Save the document...
        string filename = Path.Combine(this.tempFolder, "MyPDF.pdf");
        outputDocument.Save(filename);