2011-01-31 13 views
7

Sto usando la libreria PurePDF open source nella mia applicazione Flex AIR. Il problema sono le prestazioni:come migliorare le prestazioni di purePDF?

Ci vuole il 100% di utilizzo della CPU e troppo tempo per generare un PDF.

  • ho fatto alcune analisi su di esso e scoprire che la scrittura del testo in pdf è costoso. Questo è il motivo per cui ho bisogno di sapere come I può migliorare le prestazioni. Sono ci sono caratteri per i quali la generazione di pdf è meno costosa, oppure c'è qualche impostazione o suggerimento che può rendere questo processo un po 'migliore in termini di prestazioni ?

  • in secondo luogo in caso di immagini la generazione ImageElement è molto costosa quando si scrive quell'elemento in PDF. C'è un modo per ridurre l'elaborazione?

Nel frattempo, ho trovato un modo per ridurre la generazione di trasformazione ImageElement ridimensionando l'immagine utilizzando flex e quindi il passaggio di dati bitmap del piccolo di immagine per l'elemento di immagine. Funziona bene, e ho ridotto il tempo di esecuzione in buona misura. Qualcun altro ha idee su altri problemi?

  • non v'è alcun modo per dire PDF per lavorare in pezzi o di dividere il lavoro in modo tale che essa può richiedere più tempo per completare, ma non bloccherà l'interfaccia grafica mentre viene generato il file PDF?

Please help - grazie in anticipo.

risposta

0

il modo per ottimizzare la generazione di file PDF con purePDF è per dividere il funzionamento della generazione di componenti purePDF in blocchi di creati ng i componenti di volta in volta e il problema maggiore risolto dal ridimensionamento delle immagini

Come le immagini impiegano tempo per essere incorporate in PDF e il tempo impiegato in questi processi è direttamente proporzionale alla dimensione dell'immagine.

Quindi in primo luogo ridurre le dimensioni dell'immagine e quindi incorporarle in PDF (tenere presente che se le dimensioni sono ridotte a una scala di grandi dimensioni ridurrà molto la qualità dell'immagine) continuare a sperimentare per ottenere la dimensione ottimale per avere abbastanza buono qualità e velocità per la generazione di PDF.

L'ultima cosa è evitare le immagini trasparenti in quanto hanno bisogno di più elaborazione utilizzare solo la trasparenza se necessario altrimenti utilizzare le immagini con sfondo bianco.

0

non v'è alcun modo per dire PDF per lavorare in pezzi o di dividere il lavoro in modo tale che essa può richiedere più tempo per completare, ma non rendere la GUI fermato fino a quando viene generato PDF

si potrebbe fare l'asincrona generazione da un thread ... il modo migliore che è venuta in mente di farlo in flash è con il codice:

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

come menzionato in Domanda che prende la CPU completa anche io lo faccio mentre chiedi di fare non posso mai gestire il purePDF lavorando come fa tutto il lavoro internamente – Badr

+0

Anche se hai purePDF facendo è lavoro in un thread separato, la GUI è bloccata? Anche se sta prendendo la CPU completa, se sta facendo qualcosa come scrivere un file, allora il thread dovrebbe essere interrotto di tanto in tanto in modo che il thread della GUI possa continuare ... – jswolf19

+0

in flex non c'è threading anche un processo asyc non è una diffusione la flessione del filo non fa anche la filettatura. alla fine ogni cosa finisce nei fotogrammi della timeline come in flash perché il flex è nel flash di fine esecuzione nel flash player .. – Badr

Problemi correlati