FillPDF

Permite a los usuarios rellenar formularios PDF editables con datos de entidades Drupal.

fillpdf
2,247 sites
61
drupal.org

Install

Drupal 11, 10 v5.2.1
composer require 'drupal/fillpdf:^5.2'
Drupal 9 v5.1.1
composer require 'drupal/fillpdf:^5.1'

Overview

FillPDF es un módulo potente que permite rellenar automáticamente formularios PDF editables con datos de tu sitio Drupal. Soporta mapeo de campos basado en tokens, permitiendo mapear campos de formularios PDF a datos de entidades como nodos, usuarios, webforms y cualquier otra entidad de contenido.

El módulo proporciona opciones flexibles de backend PDF incluyendo PDFtk (instalación local), FillPDF LocalServer (API basada en Docker) y FillPDF Service (API remota). Los PDFs generados pueden descargarse directamente, guardarse en el sistema de archivos o redirigirse automáticamente.

Las capacidades clave incluyen soporte para imágenes en campos PDF, transformaciones/reemplazos de texto, configuraciones de seguridad PDF (encriptación y permisos vía PDFtk), y la capacidad de exportar/importar configuraciones de formularios entre sitios.

Features

  • Rellenar formularios PDF editables con datos de entidades desde nodos, usuarios, webforms y otros tipos de contenido usando mapeo de campos basado en tokens
  • Soporte para múltiples backends de procesamiento PDF: PDFtk (local), FillPDF LocalServer (Docker) y FillPDF Service (API remota)
  • Generar PDFs de muestra mostrando nombres de campos para fácil identificación y mapeo
  • Almacenar PDFs generados en el sistema de archivos (público o privado) o enviar directamente al navegador para descarga
  • Soporte de tokens para patrones dinámicos de nombres de archivo y rutas de destino
  • Reglas de transformación/reemplazo de texto para modificar valores antes de insertarlos en PDFs
  • Características de seguridad PDF incluyendo encriptación (128-bit o 40-bit) y permisos de usuario (vía backend PDFtk)
  • Exportar e importar configuraciones de formularios FillPDF y mapeos de campos entre sitios
  • Duplicar configuraciones existentes de formularios FillPDF
  • Soporte para campos de imagen en plantillas PDF
  • Integración con el módulo Webform para rellenar PDFs desde envíos de formularios
  • Integración con Views para gestionar formularios y campos FillPDF
  • Hooks para alterar el comportamiento del formulario y el contexto de población del PDF

Use Cases

Generación de contratos/acuerdos

Rellenar automáticamente PDFs de contratos con datos de clientes desde nodos o perfiles de usuario. Crea un formulario FillPDF desde tu plantilla de contrato, mapea campos a node:title, user:name, etc., y genera contratos personalizados vía URLs como /fillpdf?fid=1&entity_id=node:42.

Envío de Webform a PDF

Convertir envíos de webform en documentos PDF rellenados. Sube una versión PDF editable de tu webform, mapea campos a tokens webform_submission, y permite a los usuarios descargar su envío como un PDF profesional.

Generación de certificados

Generar certificados con nombres de usuario y fechas. Crea una plantilla de certificado con campos editables para nombre, título del curso, fecha de finalización, etc., y mapea a tokens de usuario y fecha para generación automática.

Pre-llenado de formularios de solicitud

Pre-llenar PDFs de solicitud con datos conocidos del usuario. Mapea campos PDF a tokens del perfil de usuario para que los usuarios recurrentes puedan descargar formularios de solicitud con su información ya completada.

Generación de facturas/recibos

Crear facturas rellenadas con datos de pedidos desde comercio o entidades personalizadas. Mapea nombres de productos, cantidades, precios e información del cliente para generar facturas descargables.

Fusión de documentos multi-entidad

Combinar datos de múltiples entidades en un solo PDF. Usa parámetros URL como /fillpdf?fid=1&entity_ids[]=node:10&entity_ids[]=user:7 para fusionar datos de diferentes fuentes.

Tips

  • Usa la función 'PDF de muestra' para generar un PDF mostrando todos los nombres de campos - esto hace el mapeo de campos mucho más fácil.
  • Al crear PDFs editables, usa nombres de campos simples sin caracteres especiales para un mapeo de tokens más fácil.
  • Por seguridad, usa el esquema de almacenamiento private:// para PDFs generados que contienen datos sensibles.
  • Exporta las configuraciones de tus formularios FillPDF antes de hacer cambios importantes - puedes importarlas de vuelta si es necesario.
  • El parámetro URL &download=1 fuerza una descarga incluso cuando el PDF está configurado para guardarse en disco.
  • Usa el parámetro &flatten=0 para generar PDFs editables que los usuarios pueden continuar rellenando.
  • Prueba la población de tu PDF con una entidad por defecto antes de desplegar a producción.
  • Para el backend PDFtk, usa encriptación de 128-bit y establece contraseñas de propietario/usuario para documentos sensibles.
  • Las transformaciones de valores se procesan en orden - coloca reemplazos más específicos antes de los generales.

Technical Details

Admin Pages 7
Configuración de FillPDF /admin/config/media/fillpdf

Configurar el backend de procesamiento PDF y las opciones de almacenamiento para FillPDF. Aquí es donde seleccionas qué herramienta de manipulación PDF usar y configuras sus ajustes específicos.

FillPDF /admin/structure/fillpdf

Página principal de resumen para gestionar formularios FillPDF. Lista todas las plantillas PDF subidas y proporciona la interfaz para subir nuevas plantillas.

Editar formulario FillPDF /admin/structure/fillpdf/{fillpdf_form}

Editar la configuración de un formulario FillPDF y gestionar los mapeos de campos. Configura cómo se rellena el PDF con datos de entidades.

Editar campo del formulario FillPDF /admin/structure/fillpdf/{fillpdf_form}/{fillpdf_form_field}

Configurar el mapeo para un campo específico del formulario PDF, incluyendo el patrón de llenado (tokens) y transformaciones de valores.

Exportar configuración del formulario FillPDF /admin/structure/fillpdf/{fillpdf_form}/export

Exportar la configuración del formulario FillPDF y los mapeos de campos como código JSON para importar en otro sitio.

Importar configuración del formulario FillPDF /admin/structure/fillpdf/{fillpdf_form}/import

Importar mapeos de campos desde otro formulario FillPDF. Útil para copiar configuraciones entre sitios.

Duplicar formulario FillPDF /admin/structure/fillpdf/{fillpdf_form}/duplicate

Crear una copia de un formulario FillPDF existente incluyendo todos sus mapeos de campos.

Permissions 3
Administrar PDFs

Permite el uso de las pantallas de administración de FillPDF. Los usuarios con este permiso pueden gestionar plantillas PDF, configurar mapeos de campos y acceder a la configuración de FillPDF.

Publicar PDFs propios

Permite rellenar y descargar PDFs con el contenido propio del sitio del usuario. Los usuarios solo pueden rellenar PDFs con entidades que poseen o a las que tienen acceso.

Publicar todos los PDFs

Permite rellenar y descargar PDFs con cualquier contenido del sitio. Los usuarios pueden rellenar PDFs con cualquier entidad independientemente de la propiedad.

Hooks 2
hook_fillpdf_form_form_pre_form_build_alter

Permite alterar un FillPdfFormForm antes de construir su formulario de edición. Útil para establecer valores por defecto o modificar el comportamiento del formulario.

hook_fillpdf_populate_pdf_context_alter

Permite alterar el array de contexto durante la población del PDF en HandlePdfController::populatePdf(). Puede modificar IDs de entidades, flags o agregar datos adicionales.

Troubleshooting 7
Los campos PDF no se detectan después de subir

Asegúrate de que tu PDF contiene campos de formulario editables reales (creados en Adobe Acrobat o similar). Las anotaciones de texto regulares no son campos editables. Usa el enlace 'PDF de muestra' para verificar la detección de campos.

El backend PDFtk muestra error 'no está instalado correctamente'

Verifica que pdftk está instalado en tu servidor y es accesible. Intenta especificar la ruta completa (ej., /usr/bin/pdftk) en la configuración de FillPDF. Ejecuta 'pdftk --version' en la línea de comandos para probar.

No se puede contactar con FillPDF LocalServer

Verifica que el contenedor Docker está ejecutándose y que la URL del endpoint es correcta. El endpoint por defecto para Docker local es http://127.0.0.1:8085. Verifica que la configuración del firewall permite la conexión.

El nombre del PDF generado muestra 'untitled.pdf'

Establece un patrón de nombre de archivo en la página de edición del formulario FillPDF. El patrón soporta tokens - usa tokens como [node:title] para nombres de archivo dinámicos.

Los valores de tokens no aparecen en el PDF generado

Verifica que el tipo de entidad correcto está especificado en los parámetros URL. Comprueba que la sintaxis del token es correcta. Usa el navegador de tokens en el formulario de edición de campo para seleccionar tokens válidos.

Las imágenes no aparecen en los campos PDF

El soporte de imágenes requiere los backends FillPDF Service o LocalServer. El backend PDFtk no soporta campos de imagen. Asegúrate de que el token de imagen resuelve a una ruta de archivo válida.

El esquema de almacenamiento no está disponible después de la migración del servidor

El esquema de almacenamiento previamente configurado puede ya no existir. Ve a la configuración de FillPDF y actualiza el template_scheme. Puede que necesites mover los archivos de plantilla PDF a la nueva ubicación manualmente.

Security Notes 6
  • El permiso 'publish all pdfs' permite a los usuarios acceder a datos de cualquier entidad a través de la generación de PDF. Otorga este permiso con cuidado.
  • El almacenamiento de archivos públicos (public://) no proporciona control de acceso. Usa private:// para PDFs que contienen información sensible.
  • La encriptación PDF vía PDFtk solo funciona con el backend pdftk. Otros backends no soportan encriptación.
  • Siempre establece una contraseña de propietario cuando uses encriptación - de lo contrario cualquiera puede cambiar la configuración de seguridad.
  • FillPDF Service transmite datos PDF a través de la red. Usa HTTPS y considera la sensibilidad de los datos antes de usar backends remotos.
  • Valida que los controles de acceso de entidades están correctamente configurados - FillPDF respeta el acceso de entidades pero con el permiso 'publish all pdfs', los usuarios pueden generar PDFs para cualquier entidad.