下面的方法可以将多个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从第几页开始获取
6:每个要合并的pdf从第几页结束获取