環境:VS2019 + Win10 + .NET Framework3.5
依賴於: itextsharp.dll
源碼,封裝接口:
/// <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(); }); } } } }
調用者代碼:
// 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(); }); } } } }