2012-10-08 10 views
6

Possiedo un framework Symfony con motore di template TWIG. Sto facendo 1000 pagine pdf entroIn Symfony, esiste un modo per creare pagine di file pdf alla volta?

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

Tuttavia durante la scrittura sul disco con ps_facade, mi dà errore fatale esaurito la memoria. Quindi c'è un modo per creare questo pdf di 5 pagine un chunk?

Dopo la ricerca ho scoperto che l'utilizzo di un modello con 5 pagine di dati validi per poi scriverlo su file dovrebbe funzionare. Ma in questo modo non potrò aggiungere numeri di pagina, dato che il numero di pagina dovrebbe essere 1-1000. Il mio codice piè di pagina si presenta così,

<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> 

risposta

2

si dovrebbe usare un sistema di messaggistica per long processes like this. RabbitMQ potrebbe fare il lavoro.

  1. vostre richieste degli utenti per il PDF
  2. Digli subito che la sua richiesta è stata presa in considerazione, e che riceverà una e-mail quando il lavoro è fatto, o che può tornare più tardi
  3. Un utente vede il lavoro e avvia la generazione di PDF (non deve essere in PHP).

Pro: Dal momento che il processo non è gestito dalla versione web di PHP, esso non ha il memory_limit e il tempo max_execution limitazione Se il lavoro è già in esecuzione, è possibile comunicare al vostro utente così invece di lanciare un altro generazione per lo stesso pdf. E poiché le persone spesso aggiornano la pagina quando diventano impazienti, questo può davvero essere un enorme Pro per il tuo server (minore utilizzo della CPU).

Contro: Dovrai configurare un server di messaggistica e imparare alcune cose. Ma è davvero una truffa?

+0

Grazie per l'input, ma questa non è proprio la risposta alla mia domanda :). Conosco tutti questi servizi di messaggistica e tutto il resto. Ma non è quello che sto cercando. – doNotCheckMyBlog

Problemi correlati