C#合并多个PDF的指定页成一个新文档

下面的方法可以将多个PDF文件合并成一个PDF文件
public static void CombFiles(string[] InputFileNames, string OutPutFileName, int Page_S, int Page_E){if (File.Exists(OutPutFileName)){File.Delete(OutPutFileName);}iTextSharp.text.Document document = new iTextSharp.text.Document();PdfWriter writer = iTextSharp.text.pdf.PdfWriter.GetInstance(document, new FileStream(OutPutFileName, FileMode.CreateNew));document.Open();iTextSharp.text.pdf.BaseFont bfChinese = iTextSharp.text.pdf.BaseFont.CreateFont("C:\WINDOWS\Fonts\simsun.ttc,1", iTextSharp.text.pdf.BaseFont.IDENTITY_H, iTextSharp.text.pdf.BaseFont.NOT_EMBEDDED);iTextSharp.text.Font Titlefont = new iTextSharp.text.Font(bfChinese, 16, iTextSharp.text.Font.BOLD, new iTextSharp.text.Color(0, 0, 0));for (int i = 0; i < InputFileNames.Length; i){PdfReader reader = new PdfReader(InputFileNames[i]);int 开始页 = Page_S;int 结束页 = Page_E;if (开始页 == -1){开始页 = 1; 结束页 = reader.NumberOfPages;}PdfContentByte cb = writer.DirectContent;PdfImportedPage newPage;for (int j = 开始页; j <= 结束页; j){document.NewPage();newPage = writer.GetImportedPage(reader, j);cb.AddTemplate(newPage, 0, 0);}}document.Close();}

使用方法:

string handlenames = new string[]{ "a.pdf", "b.pdf", "c.pdf"}string thefilename = Application.StartupPath"\合并.pdf";CombFiles(handlenames, pdfname, 5, 6);

参数说明:

handlenames:要处理的pdf文件名称字符串数组,注意路径!
pdfname:合成后的PDF文件名及路径
5:每个要合并的pdf从第几页开始获取
【C#合并多个PDF的指定页成一个新文档】6:每个要合并的pdf从第几页结束获取

通过以上函数我们就能快速地将多个PDF按指定页合并成一个文件

相关经验推荐