多个PDF的页大小要一致
/// <summary>
/// 合并多个pdf
/// </summary>
/// <param name="fileList">pdf文件路径集合</param>
/// <param name="outPath">最终pdf的输出目录</param>
/// <param name="width">pdf页宽,mm</param>
/// <param name="height">pdf页高,mm</param>
public static void 合并PDF(List<string> fileList, string outPath, float width, float height) {
width = (float)(width * 2.83462677);//PDF的mm与实际mm有所区别
height = (float)(height * 2.83462677);
iTextSharp.text.pdf.PdfReader reader;
iTextSharp.text.Document document = new iTextSharp.text.Document(new iTextSharp.text.Rectangle(0, 0, width, height), 0, 0, 0, 0);
using (FileStream fs = new FileStream(outPath, FileMode.Create)) {
using (iTextSharp.text.pdf.PdfWriter writer = iTextSharp.text.pdf.PdfWriter.GetInstance(document, fs)) {
document.Open();
iTextSharp.text.pdf.PdfContentByte cb = writer.DirectContent;
iTextSharp.text.pdf.PdfImportedPage newPage;
for (int i = 0; i < fileList.Count; i++) {
using (reader = new iTextSharp.text.pdf.PdfReader(fileList[i])) {
int iPageNum = reader.NumberOfPages;
for (int j = 1; j <= iPageNum; j++) {
document.NewPage();
newPage = writer.GetImportedPage(reader, j);
cb.AddTemplate(newPage, 0, 0);
}
}
}
document.Dispose();
}
}
}