您的位置:首页 > 其它

iTextSharp 合并PDF后,无法删除已经合并的单个文件

2017-05-16 09:36 381 查看
private void MergePDFFiles(string[] fileList, string outMergeFile)
{
List<PdfReader> readerList = new List<PdfReader>();//记录合并PDF集合
iTextSharp.text.Document document = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4.Rotate());
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(outMergeFile, FileMode.Create));
document.Open();

PdfContentByte cb = writer.DirectContent;
PdfImportedPage newPage;
for (int i = 0; i < fileList.Length; i++)
{
if (!string.IsNullOrEmpty(fileList[i]))
{
PdfReader reader = new 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);
}
readerList.Add(reader);
}
}
document.Close();


  

foreach (var rd in readerList)
{
rd.Dispose();
}


原文链接:http://blog.csdn.net/hebbers/article/details/70332015 关键点在与

PdfReader的循环释放,定义局部变量后独立释放引用并不能完全释放,需要单独循环释放。

List<PdfReader> readerList = new List<PdfReader>();

foreach (var rd in readerList)
{
rd.Dispose();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: