随笔 - 493  文章 - 0  评论 - 97  阅读 - 239万

【C#】pdf文件合并

环境:VS2019 + Win10 + .NET Framework3.5

依赖于: itextsharp.dll

 

源码,封装接口:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/// <summary>
/// 合并pdf文件至输出文件
/// </summary>
/// <param name="fileList">要合并的pdf文件列表(全路径)</param>
/// <param name="outMergeFile">输出文件全路径</param>
public void mergePdfFiles(List<string> fileList, string outMergeFile)
{
    using (var stream = new FileStream(outMergeFile, FileMode.Create))
    {
        using (var doc = new iTextSharp.text.Document())
        {
            using (var pdf = new PdfCopy(doc, stream))
            {
                doc.Open();
                fileList.ForEach(file =>
                {
                    var reader = new PdfReader(file);
                    for (int i = 0; i < reader.NumberOfPages; i++)
                    {
                        var page = pdf.GetImportedPage(reader, i + 1);
                        pdf.AddPage(page);
                    }
                    pdf.FreeReader(reader);
                    reader.Close();
                });
            }
        }
    }
}

  调用者代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// using iTextSharp.text.pdf;
 
        /// <summary>
        /// 合并pdf文件至输出文件
        /// </summary>
        /// <param name="fileList">要合并的pdf文件列表(全路径)</param>
        /// <param name="outMergeFile">输出文件全路径</param>
        public void mergePdfFiles(List<string> fileList, string outMergeFile)
        {
            using (var stream = new FileStream(outMergeFile, FileMode.Create))
            {
                using (var doc = new iTextSharp.text.Document())
                {
                    using (var pdf = new PdfCopy(doc, stream))
                    {
                        doc.Open();
                        fileList.ForEach(file =>
                        {
                            var reader = new PdfReader(file);
                            for (int i = 0; i < reader.NumberOfPages; i++)
                            {
                                var page = pdf.GetImportedPage(reader, i + 1);
                                pdf.AddPage(page);
                            }
                            pdf.FreeReader(reader);
                            reader.Close();
                        });
                    }
                }
            }
        }

 

posted on   清清飞扬  阅读(1189)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2011-03-14 VC++中,CTime 与CString转换
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示