将PDF与ITextSharp合并

Lor*_*its 18 pdf merge itextsharp

在C#中将2个PDF文件与ITextSharp合并的最佳方法是什么?我正在使用ASP.NET/.NET3.5.

小智 27

public static void Merge(List<String> InFiles, String OutFile)
    {
        using (FileStream stream = new FileStream(OutFile, FileMode.Create))
        using (Document doc      = new Document())
        using (PdfCopy pdf       = new PdfCopy(doc, stream))
        {
            doc.Open();

            PdfReader reader     = null;
            PdfImportedPage page = null;

            //fixed typo
            InFiles.ForEach(file =>
            {
                reader = new PdfReader(file);

                for (int i = 0; i < reader.NumberOfPages; i++)
                {
                    page = pdf.GetImportedPage(reader, i + 1);
                    pdf.AddPage(page);
                }

                pdf.FreeReader(reader);
                reader.Close();
            });
        }
    }
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这个答案是错误的.它抛弃了所有交互性,如果不同的PDF包含相同的资源,它可能导致文件膨胀.唯一正确的答案是使用`PdfSmartCopy`的答案,这是iTextSharp中提供的另一个类. (2认同)