首页 文章

具有大型可填写形式的iTextSharp PdfReader的缓慢实例化

提问于
浏览
6

我有一个大的(6页,222个字段)可填写的PDF,我用作iTextSharp PdfReader的模板 . 当此对象实例化时,需要5分钟或更长时间 . 我试过了:

string pdfPath = Path.Combine(context.Server.MapPath("~/apps/ssgenpdf/App_Data"), "07-2011 Worksheets.pdf");
reader = new PdfReader(pdfPath);

或者我尝试将文件读入内存流并将内存流传递给PdfReader构造函数 . 另外我尝试过使用:

reader = new PdfReader(new RandomAccessFileOrArray(pdfPath), null);

这些替代方案都没有显着的收益 .

这是一个ASP.Net应用程序,因此我的临时解决方案是在应用程序启动和缓存读取器时执行此创建,然后检查是否从缓存中获取有效读取器并从该读取器实例化新读取器 . 现在我经常看到这种方法的响应时间不到50毫秒 .

我担心的是,如果我的小组中的其他人想要使用这个“可填写的PDF作为模板与iTextSharp”策略,这似乎不可扩展 . 有没有人对替代策略有任何建议来 balancer 性能和可扩展性?

1 回答

  • 0

    确保你使用的PDF在服务器和local.sometime从服务器上都是相同的 . 它们已经损坏了 . [我已经面临VSS的问题,可填写的pdf表格是我通过nitro创建的 . ]另外更好的问一下问题和相关论坛http://forum.pdfsharp.net

相关问题