将PDF与ITextSharp合并需要时间

时间:2016-01-14 11:12:29

标签: c# pdf itextsharp

我正在使用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();

我做错了什么吗? 如何改善合并时间?

1 个答案:

答案 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();
}

您还应该确保在使用后妥善处理您的信息流。