Sto facendo una generazione di massa di file PDF basati su modelli e ho incontrato grandi problemi di prestazioni piuttosto velocemente. mio scenario attuale è la seguente:Generazione di PDF basato su modello di massa in PHP utilizzando pdftk
- ottenere i dati da compilare da db
- creare DFF sulla base di un'unica riga di dati e la forma pdf
- scrittura
.fdf
file su disco - unire il pdf con fdf utilizzando pdftk (fill_form con il comando Appiattisci)
- continuano iterare sopra le righe fino a quando tutte
.pdf
's sono generate - tutti i file generati vengono uniti insieme in la fine e l'unico PDF è dato al cliente
Io uso passthru
per dare l'uscita prima al cliente (risparmio di tempo del file di scrittura), ma questo è solo un po 'di miglioramenti delle prestazioni. Il tempo di operazione totale è di circa 50 secondi per 200 record e mi piacerebbe scendere a almeno 10 secondi in qualche modo.
Lo scenario ideale sarebbe utilizzare tutti questi PDF in memoria e non scrivere ognuno di essi per separare il file, ma l'output sarebbe impossibile da eseguire poiché non posso passare questo tipo di dati a uno strumento esterno come pdftk . Un'altra idea era quella di generare un grande file .fdf
con tutte quelle righe, ma sembra che non sia permesso.
Mi manca qualcosa di molto banale qui?
Sono felice per qualsiasi consiglio.
PS. So che potrei usare qualche buona libreria come pdflib ma sto considerando solo le librerie con licenza aperta ora.
EDIT:
Sono fino a capire la sintassi per creare un file .fdf
con più pagine che utilizzano lo stesso formato pdf come modello, ha trascorso qualche ora e non abbiamo trovato nessuna buona documentazione.
puoi usare qualche strumento di profilatura come xdebug con webgrind e vedere cosa sta effettivamente richiedendo del tempo (e poi puoi risolverlo), sono caduto nella stessa situazione pochi giorni fa, stavo usando un sistema di accodamento open source che era prendendo tempo nel mio caso. Stavo usando dompdf che è di nuovo una soluzione open source. – amitchhajer
Ho fatto la profilazione e la cosa principale che richiede molto tempo è la scrittura di pdf separati più e più volte. –
Perché non eseguire solo 6 o 7 conversioni pdftk in parallelo che dovrebbero impiegare il tempo totale fino al limite di 10 secondi. –