2012-10-08 56 views
6

Tengo el framework Symfony con el motor de plantillas TWIG. Estoy haciendo 1000 páginas pdf dentroEn Symfony, ¿hay alguna forma de crear páginas de archivos PDF a la vez?

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

Sin embargo, mientras que la escritura en el disco con ps_facade, me da error grave de memoria agotada. Entonces, ¿hay alguna forma de que pueda crear este pdf por 5 páginas por partes?

Después de la investigación encontré que el uso de una plantilla con valor de 5 páginas y luego escribirlo en un archivo debería funcionar. Pero de esa manera no podré agregar números de página, ya que el número de página debe ser de 1-1000. Mi código de pie de página se parece a esto,

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

Respuesta

2

se debe utilizar un sistema de mensajería para long processes like this. RabbitMQ podría hacer el trabajo.

  1. Sus solicitudes de los usuarios para el PDF
  2. Usted le dice al instante que su solicitud ha sido tenido en cuenta, y que recibirá un correo electrónico cuando el trabajo está hecho, o que él puede volver más tarde
  3. Un consumidor ve el trabajo y lanza la generación de pdf (no tiene que estar en php).

Pros: Dado que el proceso no está a cargo de la versión web de php, que no tiene los memory_limit y hora max_execution limitación Si el trabajo ya se está ejecutando, puede a su usuario para que en lugar de poner en marcha otra generación para el mismo pdf. Y dado que las personas a menudo actualizan la página cuando se impacientan, esto puede ser realmente un gran Pro para su servidor (menos uso de CPU).

Contras: Tendrá que configurar un servidor de mensajería y aprender algunas cosas. Pero, ¿esto es realmente una estafa?

+0

Gracias por la entrada, pero esto no es del todo responder a mi pregunta :). Conozco todos estos servicios y todo. Pero eso no es lo que estoy buscando. – doNotCheckMyBlog

Cuestiones relacionadas