网上找了许多.net的PDF合并的文章,但是尝试了以后,发现PDF的样式被修改了,不符合我的需求。
后来,无意中找到了不改变原PDF的样式的方法,故记录之。该方法用的组件也是“iTextSharp”,记得引用哈。
/// <summary>
/// 合并PDF(直接拼接,不改变文件的尺寸、样式)
/// </summary>
/// <param name="files">需要合并的pdf的绝对路径集合(D:\test1.pdf)</param>
/// <param name="saveFileName">保存合并文件的绝对路径(D:\merge.pdf)</param>
public static void MergePdf(List<string>files,string saveFileName)
{
Document doc = new Document();
PdfCopy pdfCopy = new PdfCopy(doc, new FileStream(saveFileName, FileMode.Create));
try
{
doc.Open();
for (int i = 0; i < files.Count; i++)
{
PdfReader reader = new PdfReader(files[i]);
int pageNum = reader.NumberOfPages;
for (int j = 0; j <= pageNum; j++)
{
PdfImportedPage importPage = pdfCopy.GetImportedPage(reader, j);
pdfCopy.AddPage(importPage);
}
reader.Close();
}
doc.Close();
}
catch (Exception ex)
{
throw ex;
}
finally
{
doc.Close();
}
}