基于iText7 将多个PDF文件合并,支持指定页面,C#,.net Core(同时支持.NETFramework)

Nuget安装的依赖库

itext7 (版本为8.0.3)

itext7.bouncy-castle-adapter (版本为8.0.3)

核心代码

/// <summary>
/// 合并多个PDF文档
/// NuGet包为iText7,该库满足跨平台需求
/// </summary>
/// <param name="fileList">要合并PDF文档的地址</param>
/// <param name="outFile">合并后文档的位置 如 F:\1.pdf</param>
/// <returns></returns>
public void MergePdf(string[] fileList, string outFile)
{
    try
    {

        using (PdfWriter writer = new PdfWriter(outFile))
        using (PdfDocument pdf = new PdfDocument(writer))
        {
            PdfMerger merger = new PdfMerger(pdf);
            for (int i = 0; i < fileList.Length; i++)
            {
                PdfReader reader = new PdfReader(fileList[i]);
                PdfDocument pdfDocument = new PdfDocument(reader);
                merger.Merge(pdfDocument, 1, pdfDocument.GetNumberOfPages());//从第1页开始,总页数为 PDF文档总页数
                //merger.Merge(pdfDocument,new int[] { 1, 3 });//指定页面,第1页和第3页
                pdfDocument.Close();
            }
        }

    }
    catch (Exception e)
    {
        throw;
    }
}

方法调用

string[] paths = new string[]
{
    "F:\\1.pdf","F:\\2.pdf"
};
MergePdf(paths, "F:\\55.pdf");

本文来自 www.luofenming.com