Я создаю приложение, которое должно генерировать тысячи PDF-файлов за раз. Я использую ITextSharp для этого, и кажется, что PdfReader замедляет процесс. Ниже мой код.Itextsharp PdfReader is slow
using (MemoryStream foutput = new MemoryStream())
{
using (PdfReader pdf = new PdfReader(templateByteArray)) // slow
{
using (PdfStamper stamper = new PdfStamper(pdf, foutput))
{
AcroFields form = stamper.AcroFields;
form.SetField(_dic[@"1,1"], "some string1");
form.SetField(_dic[@"1,2"], "some string2");
stamper.FormFlattening = true;
}
pdf.RemoveUsageRights();
}
EnqueueFile(foutput.ToArray());
}
У меня есть отдельный потребительский поток, который принимает каждый массив байтов и записывает документы PDF на жесткий диск из очереди. После того, как я перепутал код, кажется, что узкое место находится в классе PdfReader. Есть ли альтернативный способ делать то, что я пытаюсь сделать, или у вас есть какие-то предложения?
У меня такая же проблема, заполняя некоторые формы и сплющивая их. Я профилировал программу и PdfStampler.Close и get_AcroFields являются самыми медленными. Использование FieldCache не имеет никакого значения в моем случае. Вы в конечном итоге использовали itext 7? Спасибо – costa
Я преобразовал свою программу в itext 7, и она медленнее! Буду признателен, если вы сможете поделиться своим опытом. – costa