如何在C#中使用itextsharp合并两个pdf文件而不丢失图层?

如何在C#中使用itextsharp合并两个pdf文件而不丢失图层?,itext,Itext,如何在C#中使用itextsharp将两个pdf文件与层合并,我尝试过但丢失了层 //步骤1:创建文档对象 文档=新文档() //步骤2:创建一个侦听文档的编写器 PdfCopy writer=newpdfcopy(文档,新文件流(outPutFilePath,FileMode.Create)); if(writer==null) { 返回; } //步骤3:我们打开文档 document.Open(); foreach(文件路径中的字符串文件名) { //我们为某个文档创建一个阅读器 PdfR

如何在C#中使用itextsharp将两个pdf文件与层合并,我尝试过但丢失了层 //步骤1:创建文档对象 文档=新文档()

//步骤2:创建一个侦听文档的编写器
PdfCopy writer=newpdfcopy(文档,新文件流(outPutFilePath,FileMode.Create));
if(writer==null)
{
返回;
}
//步骤3:我们打开文档
document.Open();
foreach(文件路径中的字符串文件名)
{
//我们为某个文档创建一个阅读器
PdfReader reader=新的PdfReader(文件名);
reader.consolidateNameDestinations();
//步骤4:我们添加内容

对于(int i=1;我可以请你展示一下你的代码吗?我遵循了上面的链接代码。你想要的东西在iText 5或更早版本中不受支持。由于iText 5正在逐步淘汰,没有计划在iText 5维护版本中支持它。我不知道iText 7是否支持它(可能;我没有测试它;你可能想测试它)。如果iText 7不支持此功能,我们可以将其放在未来版本的路线图上。请添加此功能
        // step 2: we create a writer that listens to the document
        PdfCopy writer = new PdfCopy(document, new FileStream(outPutFilePath, FileMode.Create));
        if(writer == null)
        {
            return;
        }

        // step 3: we open the document
        document.Open();

        foreach(string fileName in filesPath)
        {
            // we create a reader for a certain document
            PdfReader reader = new PdfReader(fileName);
            reader.ConsolidateNamedDestinations();
            // step 4: we add content
            for(int i = 1; i <= reader.NumberOfPages; i++)
            {

                PdfImportedPage page = writer.GetImportedPage(reader, i);
                page.ContentTagged = true;

                writer.AddPage(page);
            }

            PRAcroForm form = reader.AcroForm;
            if(form != null)
            {
                // writer.CopyDocumentFields(reader);
            }

            reader.Close();
        }

        // step 5: we close the document and writer
        writer.Close();
        document.Close();