我正在使用ITextSharp来合并PDF。 我的问题是当我合并巨大的PDF时,需要很长时间才能完成(很多分钟)。它似乎需要所有这些时间在" document.close()"。
上这是我的代码:
iTextSharp.text.Document doc = new iTextSharp.text.Document();
PdfCopy copy = new PdfCopy(doc, msOutput);
copy.SetMergeFields();
doc.Open();
byte[] byteArray = Convert.FromBase64String("someString");
PdfReader reader = new PdfReader(byteArray);
copy.AddDocument(reader);
doc.Close(); // <== It takes time here !
byte[] form = msOutput.ToArray();
我做错了什么吗? 如何改善合并时间?
答案 0 :(得分:0)
您缺少一些Close()调用 - 这可能有助于缩短您的时间:
byte[] form
using (var msOutput = new MemoryStream())
{
iTextSharp.text.Document doc = new iTextSharp.text.Document();
byte[] byteArray = Convert.FromBase64String("someString");
PdfCopy copy = new PdfCopy(doc, msOutput);
copy.SetMergeFields();
doc.Open();
PdfReader reader = new PdfReader(byteArray);
copy.AddDocument(reader);
reader.Close();
copy.Close();
doc.Close();
form = msOutput.ToArray();
}
您还应该确保在使用后妥善处理您的信息流。