您的位置:首页 > 其它

iTextSharp 合并PDF后删除合并文件

2017-04-21 16:51 501 查看
问题:之前开发的一个服务中,利用iTextSharp合并PDF文件后删除合并文件,提示合并文件被占用无法删除。解决:合并时记录PdfReader到一个集合中,合并后释放PdfReader集合中的全部资源。代码:/// <summary> 合并PDF </summary>/// <param name="fileList">PDF文件集合</param>/// <param name="outMergeFile">合并文件名</param>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();}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: