C# 使用itextsharp合并PDF时链接不起作用

C# 使用itextsharp合并PDF时链接不起作用,c#,pdf,merge,itext,C#,Pdf,Merge,Itext,我的任务是将多个pdf合并为单个pdf,我可以实现合并pdf,但我面临的问题是,内部链接(命名目的地)与第二个pdf的内容(第一个pdf中的内容)不一致。我的问题与下面的帖子相似 但我没有做到这一点 我的代码如下 class Program { static void Main(string[] args) { Document document = new Document(); string[] fi

我的任务是将多个pdf合并为单个pdf,我可以实现合并pdf,但我面临的问题是,内部链接(命名目的地)与第二个pdf的内容(第一个pdf中的内容)不一致。我的问题与下面的帖子相似

但我没有做到这一点

我的代码如下

class Program
    {
        static void Main(string[] args)
        {
            Document document = new Document();

            string[] fileNames = @"D:\PDF_Protect\ToMerge\Test\pdf1.pdf;D:\PDF_Protect\ToMerge\Test\pdf2.pdf;D:\PDF_Protect\ToMerge\Test\pdf3.pdf;".Split(';');
            string outFile = @"D:\PDF_Protect\ToMerge\output\merged.pdf";

           //merge one
            PdfCopy pdf = new PdfCopy(document, new FileStream(outFile, FileMode.Create));
            document.Open();
            foreach (string fileName in fileNames)
            {
                PdfReader reader = new PdfReader(fileName);
                reader.ConsolidateNamedDestinations();
                var pdfDestination = new PdfDestination(PdfDestination.FIT);
                //var pdfAction = PdfAction.GotoLocalPage(1, pdfDestination, pdf);
                //pdf.SetOpenAction(pdfAction);
                pdf.AddDocument(reader);
                reader.Close();
            }
            document.Close();
        }
    }

请指导我如何重新生成合并pdf中的链接。

为什么每次添加新文档时都要设置打开操作。那没有道理,是吗?此外,您还合并了命名目的地,但我看不到您在任何地方使用
AddNamedDestinations()
方法将原始文档的命名目的地添加到
PdfCopy
实例。在这种情况下,目的地“不工作”是正常的。你没有添加它们@BrunoLowagie感谢您的快速回复。我不熟悉链接/书签,现在我对操作部分进行了评论,我已将此链接引用到addnamed destinations。据我所知,他们正在从第二个pdf中提取指定目的地并添加到第一个pdf中,对吗?但我必须处理更多的pdf文件。有可能吗?是的,有可能。只需修改代码。确保始终使用正确的偏移量。不是页面大小,而是页数。是否确定
false
是正确的参数?另外:你知道你实际上在做什么吗?原始PDF里面有什么?你确定它是指定的目的地吗?如果它们实际上是本地转到操作呢?如果您不知道其中的区别,我无法帮助您。为什么每次添加新文档时都要设置打开操作。那没有道理,是吗?此外,您还合并了命名目的地,但我看不到您在任何地方使用
AddNamedDestinations()
方法将原始文档的命名目的地添加到
PdfCopy
实例。在这种情况下,目的地“不工作”是正常的。你没有添加它们@BrunoLowagie感谢您的快速回复。我不熟悉链接/书签,现在我对操作部分进行了评论,我已将此链接引用到addnamed destinations。据我所知,他们正在从第二个pdf中提取指定目的地并添加到第一个pdf中,对吗?但我必须处理更多的pdf文件。有可能吗?是的,有可能。只需修改代码。确保始终使用正确的偏移量。不是页面大小,而是页数。是否确定
false
是正确的参数?另外:你知道你实际上在做什么吗?原始PDF里面有什么?你确定它是指定的目的地吗?如果它们实际上是本地转到操作呢?如果你不知道区别,我帮不了你。