2011-01-31 8 views
7

Estoy usando la biblioteca PurePDF de código abierto en mi aplicación Flex AIR. El problema es el rendimiento:cómo mejorar el rendimiento de purePDF?

Toma 100% de uso de la CPU y demasiado tiempo para generar un PDF.

  • me han hecho algunos análisis en él y encontrar que la escritura de texto en formato PDF es caro. Es por eso que necesito saber cómo I puede mejorar el rendimiento. ¿Hay fuentes para las cuales la generación de pdf es menos costosa, o hay alguna configuración o sugerencia que puede hacer que este proceso sea algo mejor en términos de rendimiento de ?

  • En segundo lugar en el caso de las imágenes ImageElement La generación es muy costosa al escribir ese elemento en PDF. ¿Hay alguna forma de reducir el procesamiento?

Mientras tanto, he encontrado una manera de reducir la generación de transformación ImageElement cambiando el tamaño de la imagen mediante la flexión y para entonces pasar los datos de mapa de bits de la pequeña imagen al elemento de imagen. Funciona bien, y he reducido el tiempo de ejecución en buena medida. ¿Alguien más tiene ideas sobre otros problemas?

  • ¿hay alguna manera de saber PDF para trabajar en trozos o dividir el trabajo de tal manera que puede tomar más tiempo para completar, pero no bloqueará la interfaz gráfica de usuario mientras se genera el PDF?

Por favor ayuda - gracias de antemano.

Respuesta

0

la manera de optimizar la generación de PDF con purePDF es para dividir el trabajo de generación de componentes purePDF en fragmentos por creati ng los componentes de vez en cuando y el principal problema se resuelve mediante el cambio de tamaño de la imagen

Como las imágenes tardan en insertarse en PDF y el tiempo empleado en este proceso es directamente proporcional al tamaño de la imagen.

Así que primero reduzca el tamaño de la imagen y luego inserte en PDF (tenga en cuenta si los tamaños se reducen a gran escala reducirá la calidad de la imagen mucho) siga experimentando para obtener el tamaño óptimo para tener lo suficientemente bueno calidad y velocidad para la generación de PDF.

Lo último es evitar las imágenes transparentes, ya que necesitan más procesamiento, solo usan transparencia si es necesario, de lo contrario, deben usar imágenes con fondo blanco.

0

¿hay alguna manera de saber PDF para trabajar en trozos o dividir el trabajo de tal manera que puede tomar más tiempo para completar, pero no hacer que la interfaz gráfica de usuario se detuvo hasta que se genera PDF

se podría hacer que la generación asíncrona por generar un subproceso ... la mejor manera que he llegado con hacerlo en flash es con el código:

import flash.utils.setTimeout; 
import flash.events.Event; 
import flash.events.EventDispatcher; 
... 
    setTimeout(function():void { 
     //TODO asynchronous schtuff 
     dispatchEvent(new Event(Event.COMPLETE)); 
    }, 0); 
+0

como se menciona en la Pregunta que se necesita la CPU completa incluso lo hago como pides nunca puedo manejar el purePDF trabajando como lo hace todo el trabajo internamente – Badr

+0

Incluso si tienes purePDF haciendo su trabajo en un hilo separado, la GUI está detenida? Incluso si está tomando la CPU completa, si está haciendo algo así como escribir un archivo, entonces su hilo debe detenerse ocasionalmente para que su hilo GUI pueda continuar ... – jswolf19

+0

en flex no hay subprocesos, incluso un proceso asyc no es un spread thread flex no también se está enhebrando. al final, todo termina en marcos de línea de tiempo como en flash causa flex está en el flash final corriendo en flash player .. – Badr

Cuestiones relacionadas