El modulo entity print en Drupal 8 nos permite generar un PDF desde un nodo llegando a una ruta compuesta por los siguientes elementos: (entityprint/[entity_type]/[entity_id]).
El uso de este módulo es para mostrar una versión PDF de un nodo, otra característica de este módulo es que su peso es muy ligero en comparación al módulo print.
La instalación de este módulo consta en los siguientes pasos:
-
Ejecutar el siguiente comando:
composer require "dompdf/dompdf:0.7.0-beta3"
Este comando debe ser ejecutado en la raíz de Drupal, para que el motor PDF este habilitado en el proyecto. -
Instalar el módulo entity_print de la forma que gustes, podría ser usando drush o drupal console.
-
Posicionar el campo “View PDF” en la sección “Gestionar presentación” de el tipo de contenido que se requiera, esto mostrará un enlace que dirigirá a la versión PDF de la entidad.
-
El paso anterior podría evitarse si no fuese necesario y para ver la versión PDF debe visitar la siguiente URL : example.com/entityprint/[entity_type]/[entity_id]
El módulo nos da la posibilidad de usar un view mode especial llamado "PDF view mode", y tenemos disponible el template entity-print.html.twig para manejar ahí el marcado.
El CSS es un tanto especial por lo que la forma más segura de utilizarlo es registrandolo en nuestro libraries de igual forma como esta en el ejemplo del módulo. Como se puede apreciar, el css no especifica el tipo de medio debido a que debe usarse esos mismos estilos para la visualización previa en la siguiente ruta: example.com/entityprint/[entity_type]/[entity_id]/debug
all:
version: VERSION
css:
theme:
css/entityprint-all.css: {}
El motor PDF soportado en Drupal 8 por ahora es Dompdf, este es un convertidor de HTML a PDF que sigue las siguientes características:
- De acuerdo a la documentación oficial soporta muchas propiedades CSS 2.1 con algunas pocas de CSS3. (En mi experiencia, el renderizado de algunas propiedades CSS3 siempre han arrojado error.)
- Soporta atributos de HTML 4.0
- Soporta tablas complejas que incluyen filas y columnas (La mejor manera de definir una estructura que se mantenga desde el HTML al PDF).
- No tiene dependencias de alguna librería PDF externa.
Temas importantes a considerar:
Es importante usar las propiedades adecuadas de CSS en los estilos que se quieran establecer, si esto no se sigue correctamente la generación del PDF se dentendrá mostrando un error. Esto ocurre mucho al usar propiedades CSS3 y el módulo nos dice que esto no es soportado.
Para las estructuras en el marcado, se opta por usar tablas en este caso para conservar las mismas en el documento PDF. Esta conclusión se llega debido a las propiedades de display (inline, block, inline-block...) no funcionan correctamente y también los float (left, right). Es muy importante tener eso en cuenta para poder manejar la presentación.
Otro detalle que es muy importante es el tema de la caché. Siguiendo el proceso para la habilitación del twig Debug y la deshabilitación del caché el cambio no se refleja inmediatamente. No hay información clara acerca de ese tema por lo que aún es necesario limpiar la caché.
Me pareció interesante el artículo
Añadir nuevo comentario