2011-08-19 5 views
6

Tengo un PDF grande (6 páginas, 222 campos) rellenable que estoy utilizando como plantilla con iTextSharp PdfReader. Cuando este objeto crea una instancia, tarda 5 minutos o más. He tratado:Ejemplificación lenta de iTextSharp PdfReader con formato grande rellenable

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

, alternativamente, he tratado de leer el archivo en una secuencia de memoria y pasar la corriente de memoria para el constructor PdfReader. Además he intentado usar:

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

Ninguna de estas alternativas muestra ganancias significativas.

Esta es una aplicación ASP.Net, por lo que mi solución provisional es hacer esta creación al iniciar la aplicación y almacenar en caché el lector, luego verifico si obtengo un lector válido del caché y crea un nuevo lector ese lector. Ahora rutinariamente veo una respuesta de menos de 50 milisegundos desde este enfoque.

Mi preocupación es que esto no parece escalable si otros en mi grupo desean utilizar esta estrategia de "PDF que se puede llenar como plantilla con iTextSharp". ¿Alguien tiene alguna sugerencia para estrategias alternativas para equilibrar el rendimiento con la escalabilidad?

+0

Haga clic aquí para continuar. Desde entonces, he realizado más pruebas en otros entornos. Creé una aplicación de consola en mi estación de trabajo para hacer esencialmente la misma tarea y todo tomó menos de un segundo. Luego encontré otro servidor web para poner esto, y allí también se ejecuta en menos de un segundo. Ambos servidores web son Win2K3. –

+3

Si ese es el caso, supongo que es un problema de servidor (carga/otro). Cualquier forma fácil de verificar esto es crear una página de prueba simple en el servidor web problemático que ejemplifica un PdfReader con un archivo PDF pequeño, regular (sin campos de formulario) y ver cuánto tiempo lleva. – kuujinbo

Respuesta

0

Asegúrate de que el PDF que estás utilizando sea el mismo en el servidor y en el local.Algunas veces del control de código fuente se corrompen. [Tengo que enfrentar el problema con VSS con formularios PDF que he creado vía nitro.] También es mejor preguntar la pregunta y el foro relevante http://forum.pdfsharp.net

+0

El foro [http://forum.pdfsharp.net] (http://forum.pdfsharp.net) analiza las librerías PDFSharp y MigraDoc ** not ** * itextSharp *. – hdoghmen

Cuestiones relacionadas