有很多第三方插件,我这里介绍的是用的iTextSharp
1.nuget iTextSharp
2.写个方法
fileList pdf数组
outMergeFile 导出合并PDF路径
public void mergePDFFiles(List<string> fileList, string outMergeFile) { List<PdfReader> readerList = new List<PdfReader>();//记录合并PDF集合 //Rectangle rec = new Rectangle(1660, 1000); Rectangle rec = new Rectangle(0, 0, 615, 395); //创建一个新的文档对象 Document document = new Document(rec); //保存文档的地址设置 FileStream output = new FileStream(outMergeFile, FileMode.Create); PdfWriter writer = PdfWriter.GetInstance(document, output); document.Open(); PdfContentByte cb = writer.DirectContent; PdfImportedPage newPage; //循环读取文件 for (int i = 0; i < fileList.Count; i++) { PdfReader reader = new PdfReader(fileList[i]); int iPageNum = reader.NumberOfPages; for (int j = 1; j <= iPageNum; j++) { document.NewPage(); //PdfImportedPage newPage = writer.GetImportedPage(reader, j); newPage = writer.GetImportedPage(reader, j); cb.AddTemplate(newPage, 0, 0); } readerList.Add(reader); } document.Close(); writer.Close(); output.Close(); foreach (var item in readerList) { item.Close(); item.Dispose(); } }
3.调用方法即可。在使用时候,发现有时候删除,会报错,图片正在被进程资源占用,释放所有图片资源。