2012-10-08 6 views
6

Ich habe Symfony Framework mit TWIG Template Engine. Ich bilde 1000 Seite pdf innerhalbIn Symfony, gibt es eine Möglichkeit, PDF-Dateien gleichzeitig zu erstellen?

<dynamic-page>...content in for-loop...</dynamic-page>` 

jedoch während mit ps_facade auf der Festplatte geschrieben, es gibt mir Speicher erschöpft fatalen Fehler. Gibt es also Möglichkeiten, wie ich dieses PDF um 5 Seiten pro Stück erstellen kann?

Nach der Recherche habe ich festgestellt, dass die Verwendung von Vorlage mit 5 Seiten im Wert von Daten und dann auf Datei schreiben sollte funktionieren. Aber auf diese Weise kann ich keine Seitenzahlen hinzufügen, da die Seitennummer 1-1000 sein sollte. Mein Footer Code sieht wie folgt aus,

<placeholders> 
    <footer> 
     <div height="30px" width="100%"> 
     <hr/> 
     <div float="left">Blah Blah</div> 
     <div float="left" margin-left="350px"><page-info format="Page %s of %s"></div> 
     </div> 
    </footer> 
</placeholders> 

Antwort

2

Sie ein Messaging-System für long processes like this verwenden sollten. RabbitMQ könnte den Job machen.

  1. Ihre Benutzeranforderungen für die pdf
  2. Sie sagen ihm sofort, dass sein Antrag berücksichtigt wurde, und dass er eine E-Mail erhalten, wenn die Arbeit erledigt ist, oder dass er zurückkommen
  3. später kann
  4. Ein Konsument sieht den Job und startet die PDF-Generierung (muss nicht in PHP sein).

Vorteile: Da der Prozess nicht durch die Web-Version von PHP ausgeführt wird, es hat nicht die memory_limit und max_execution Zeitbegrenzung Wenn der Auftrag bereits ausgeführt wird, können Sie Ihre Benutzer sagen kann, so stattdessen eine andere der Einführung Generation für das gleiche PDF. Und da die Leute die Seite oft aktualisieren, wenn sie ungeduldig werden, kann dies wirklich ein riesiger Pro für Ihren Server sein (weniger CPU-Auslastung).

Nachteile: Sie müssen einen Messaging-Server einrichten und ein paar Dinge lernen. Aber ist das wirklich eine Con?

+0

Danke für die Eingabe, aber das ist nicht ganz meine Frage beantworten :). Ich kenne all diese Messanging-Dienste und alles. Aber das ist nicht das, wonach ich suche. – doNotCheckMyBlog

Verwandte Themen