Ich mache eine Massengenerierung von PDF-Dateien basierend auf Vorlagen und ich lief ziemlich schnell auf große Leistungsprobleme. Mein aktuelles Szenario ist wie folgt:Bulk-Vorlage basierte PDF-Generierung in PHP mit pdftk
- erhalten Daten von gefüllt werden db
- fdf erstellen basierend auf einzelne Datenreihe und PDF-Formular
- Schreib
.fdf
Datei auf der Festplatte - das pdf mit fdf fusionieren mit pdftk (fill_form mit flatten Befehl)
- weiter über Zeilen iterieren, bis alle
.pdf
's generiert werden - alle generierten Dateien zusammen in zusammengeführt werden das Ende und die einzelne pdf an den Client gegeben
I passthru
verwenden, um die Roh-Ausgabe an den Client (spart Zeit mit dem Schreiben-Datei), aber dies ist nur eine wenig Performance-Verbesserungen zu geben. Die Gesamtbetriebszeit beträgt ungefähr 50 Sekunden für 200 Aufzeichnungen und ich möchte auf irgendeine Weise auf mindestens 10 Sekunden herunterkommen. Das ideale Szenario wäre, all diese PDFs im Speicher zu betreiben und nicht jeden einzelnen in eine separate Datei zu schreiben, aber dann wäre die Ausgabe unmöglich, da ich diese Art von Daten nicht an ein externes Werkzeug wie pdftk weitergeben kann . Eine andere Idee war es, eine große .fdf
Datei mit all diesen Zeilen zu generieren, aber es sieht so aus, als wäre das nicht erlaubt.
Fehle mir hier etwas sehr Triviales?
Ich bin dankbar für jeden Hinweis.
PS. Ich weiß, dass ich eine gute Bibliothek wie Pdflib verwenden könnte, aber ich denke jetzt nur über offene lizensierte Bibliotheken nach.
EDIT:
Ich bin bis zu der Syntax, herauszufinden, eine .fdf
Datei mit mehreren Seiten erstellen die gleiche pdf als Vorlage verwenden, verbrachte einige Stunden und konnte keine gute Dokumentation.
können Sie einige Profiling-Tool wie xdebug mit webgrind verwenden und sehen, welche Sache tatsächlich dauert (und dann können Sie das lösen), fiel ich in der gleichen Situation ein paar Tage zurück, war ein Open Source Queueing-System, das war in meinem Fall Zeit nehmen. Ich habe dompdf verwendet, was wiederum eine Open-Source-Lösung ist. – amitchhajer
Ich habe das Profiling gemacht und die Hauptsache, die viel Zeit in Anspruch nimmt, ist das separate Schreiben von PDFs. –
Warum sollten Sie nicht einfach 6 oder 7 Pdfk-Konvertierungen parallel ausführen, die Ihre Gesamtzeit auf 10 Sekunden reduzieren sollten? –