¿Cuál es la mejor manera de generar un archivo PDF a partir de HTML y CSS?

Convirtiendo HTML a PDF.

Al convertir HTML con css a pdf, las personas a menudo se encuentran con problemas, ya sea el procesamiento de fuentes, css-float, los elementos de posicionamiento a problemas con la memoria en el lado del servidor. La pregunta principal es a menudo, ¿cómo realmente necesito escribir CSS para PDF? ¿Tiene algunas características ocultas que harán que todo funcione?

Bueno, la respuesta es que no hay atajos. Algunas bibliotecas harán la mayor parte del trabajo por usted si mantiene html simple, pero cuando necesite cambiar algo a algo más complicado, probablemente encontrará resultados diferentes con el renderizado, el tiempo de conversión, el uso de memoria, etc.

La gente a menudo usa convertidores en el lado del servidor porque tiene más bibliotecas, y puede almacenar datos de manera más fácil y directa en un servidor, o pasar encabezados adicionales para mostrar el contenido de PDF en el navegador. No hay muchos convertidores del lado del cliente. Dado que los convertidores son caros si está utilizando HTML simple, sería mejor usar un script del lado del cliente para liberar recursos del servidor. En este ejemplo, solo vamos a examinar los convertidores del lado del servidor.

Empecemos.

Examinaremos el tiempo de conversión, el consumo de memoria y el aspecto visual de algunos renderizadores HTML.
Vamos a usar 3 plantillas en este ejemplo. Uno es bastante simple y los otros dos son más complejos con respecto a la estructura del código, css o la cantidad de datos que deben convertirse. Vamos a calificar los resultados de la escala 1 a 5, 1 es el resultado deficiente y 5 es el resultado excelente. Todas las pruebas se realizaron en la misma máquina (ejecutando Linux OS) un par de veces, y se tomaron resultados promedio para cada grupo de datos. Solo valoraremos los convertidores PDF de código abierto gratuitos

Puede obtener una vista previa de las plantillas HTML que utilizamos en nuestras pruebas
HTML simple
HTML complejo
HTML largo

Instalación

DOMPDF:
(Os: universal, se ejecuta en php) Instalación muy fácil (menos de un minuto). Utiliza el compositor para descargar e instalar dependencias. También tiene un archivo zip si no desea usarlo con el compositor. Es principalmente un motor de diseño y renderización HTML compatible con CSS 2.1 escrito en PHP. Es un renderizador basado en el estilo: descargará y leerá hojas de estilo externas, etiquetas de estilo en línea y los atributos de estilo de elementos HTML individuales. También es compatible con la mayoría de los atributos HTML de presentación.

wkhtmltopdf:
(sistema operativo: Windows, Mac OS, Linux, “SmartOS”, “OpenBSD”). Fácil descarga e instalación, en menos de un minuto. Utiliza el motor de renderizado Qt WebKit. “Estos se ejecutan completamente” sin cabeza “y no requieren una pantalla o servicio de visualización”. En esta demostración vamos a utilizar la versión de 64 bits.

mPDF:
(os: universal, se ejecuta en php). Fácil descarga e instalación, en menos de un minuto. Utiliza el compositor para descargar e instalar dependencias. mPDF es una clase PHP que genera archivos PDF a partir de HTML codificado UTF-8. Se basa en FPDF y HTML2FPDF, con varias mejoras.

TCPDF:
(os: universal, se ejecuta en php). Fácil descarga e instalación, en menos de un minuto. No se requiere dependencia para generar HTML simple. NOTA: Hay una nueva versión de TCPDF en desarrollo, pero estaba teniendo dificultades para ejecutar esta nueva versión de desarrollo.

Entrar en detalles.

Como se ve en los resultados, si va a usar html simple, por ejemplo, facturas simples para generar PDF, probablemente preferirá mpdf. Proporcionó excelentes resultados, con 16 mb de uso, wkhtmltopdf también hizo un trabajo decente, generando en el medio tiempo de mpdf, pero usó el doble de memoria que mpdf. DOMPDF y tcpdf requerirían una optimización html para obtener los resultados deseados.

Para un html complejo definitivamente recomendamos wkhtmltopdf. Aunque utiliza gran cantidad de memoria, los resultados fueron excelentes. Quizás ejecutarlo como un servicio separado es una buena opción, pero eso depende de la frecuencia con la que espere generar archivos PDF complejos. También me llevó un tiempo generar PDF, alrededor de 18 segundos, pero si ese es el costo para tener un resultado excelente, lo tomaré. Mpdf estaba luchando por representar correctamente los tamaños de columna, y carece de algunos detalles de CSS, pero bueno, si no los necesita, también puede vivir con mpdf porque solo usó 23 MB de memoria en comparación con wkhtmltopdf que usaba 108. Otras bibliotecas no son Vale la pena ser mencionado aquí.

En un ejemplo largo, utilizamos html bastante simple, suficiente para generar alrededor de 15 páginas. Peple a menudo necesita generar archivos PDF grandes pero simples. Por ejemplo, alguna exportación de base de datos. Una vez más, wkhtmltopdf y mpdf arrojaron buenos resultados. Wkhtmltopdf se llevó la victoria en velocidad y memoria con solo 654 ms para generar pdf y 21 mb de RAM, mientras que mpdf tardó aproximadamente 7 segundos y un poco más de memoria en 80 mb, ambos arrojaron excelentes resultados. Parece que tcpdf se ejecutaría para siempre, pero alrededor de 2 minutos de ejecución arrojaron buenos resultados con solo 6 MB de RAM, pero ese tiempo es simplemente demasiado para que cualquiera pueda esperar y parece divertido cuando miramos medio segundo para wkhtmltopdf. Dompdf produjo una excepción de memoria, que a menudo es el problema con DOMPDF como puedo ver en stackoverflow.

Vale la pena mencionar que wkhtmltopdf tiene algunas otras características como ejecutar Javascript en su interior, y puede obtener el número de página de wkhtmltopdf donde puede inyectar el número de página en cierto elemento html que elija. También puede proporcionar encabezados y pies de página como en la biblioteca tcpdf. Wkhtmltopdf ofrece aún más variables para jugar con él.

Conclusión.

Aunque los resultados varían de muchas maneras, es seguro decir que mpdf y wkhtmltopdf lo llevarán a donde lo necesita rápidamente y con buenos resultados. Para DOMPDF, le tomará algún tiempo agregar, por ejemplo, fuentes a PDF y satisfacer html para tener un PDF atractivo. Usamos dompdf en algunas representaciones simples, pero rápidamente lo cambiamos a wkhtmltopdf cuando se trata de soluciones más complejas. Por supuesto, quizás haya algunos mejores convertidores de PDF en línea, pero diría que buscando en Google estos convertidores de 4 a 5 pdf se encuentran principalmente en conversaciones.

Detalles y prueba sobre: Cómo transferir eficientemente HTML a PDF – Plava tvornica

Si bien puede que no sea el tipo de respuesta que está buscando, diría que en una Mac, la forma más fácil es abrir el archivo HTML en un navegador web y elegir imprimirlo, luego guardarlo como PDF.

En MacOS Yosemite:

Una forma muy manual, pero muy simple.

He trabajado con PDF en algunos proyectos web, y hay un montón de bibliotecas de código abierto para este propósito, en muchos idiomas, algunas están cubiertas en las otras respuestas. Sin embargo, la pregunta podría usar algunos detalles, como si estamos hablando de aplicaciones o bibliotecas de códigos, manuales o de automatización, generación masiva o no, etc., así como a qué plataformas y dispositivos estamos apuntando.

Si desea crear su propia aplicación o complemento para convertir documentos HTML a PDF, la mejor opción es EVO HTML to PDF Converter o Winnovative HTML to PDF Converter. Puede leer más en este blog HTML a PDF donde también puede encontrar ejemplos de código y ejemplos listos para usar. Las características principales del software son:

  • La biblioteca no se basa en herramientas o servicios externos y no requiere instalación o cambios en la configuración del servidor, lo que admite una implementación de copia simple.
  • Ha sido diseñado y probado para funcionar de manera confiable en entornos multiproceso y en sitios web de alto tráfico.
  • El convertidor tiene soporte completo para etiquetas HTML, CSS y JavaScript y para funciones avanzadas de HTML5 como CSS3, SVG y fuentes web.
  • El renderizado es extremadamente preciso y el PDF resultante conserva todos los gráficos, imágenes, textos, fuentes y diseño del documento HTML original, sin importar cuán complejo sea.
  • El convertidor incluye automatizaciones avanzadas para crear una tabla de contenido y marcadores jerárquicos basados ​​en la estructura del documento HTML y para transformar formularios HTML en formularios PDF rellenables.
  • Con EVO HTML to PDF Converter no solo puede crear excelentes documentos PDF nuevos, sino que también puede editar, fusionar, dividir y llenar documentos PDF existentes. El convertidor se puede combinar con las otras herramientas PDF para .NET en EVO PDF Toolkit para ofrecerle capacidades adicionales para ver documentos PDF o extraer el texto y las imágenes de documentos PDF existentes.

Según mi requisito, quiero un gran soporte de CSS con todas sus propiedades y en cada página de pdf. Probé cuatro pero DOMPDF demostró ser el mejor para mí. Entonces aquí está la lista.

PrinceXML : es compatible con casi todas las propiedades CSS pero te deja con una firma en pdf. Para deshacerse de él, si lo compra, es demasiado caro (aprox. US $ 3800).

wkhtmlpdf: configurarlo es una tarea un poco aburrida ya que necesita un servidor X en una versión anterior y usa Composer para instalarlo. Admite casi todas las propiedades de CSS, pero no le permite establecer el margen en cada página de pdf en caso de que su HTML genere varias páginas de pdf.

DOMPDF: no admite la propiedad Display: bloque en línea y propiedad flotante con cierta combinación de otras propiedades. Pero le permite establecer el margen en cada página. Si desea una herramienta HTML + CSS a pdf gratuita y fácil, puede buscarla. Pero con esto, debe estar listo con CSS alternativo y además le brinda un editor donde puede verificar ¿ ESTÁ CONVERTIDO CORRECTAMENTE (HTML Y CSS)?

mpdf: tiene un problema con la propiedad de alineación de texto en la etiqueta td.

Si está buscando una API basada en la nube, eche un vistazo a Screen.rip (descargo de responsabilidad: soy el creador)

Puede pasar cualquier URL de página web para generar un PDF de la misma. Puedes controlar:

  • Ya sea para usar impresión o hoja de estilo de pantalla
  • Imágenes de fondo
  • Nombre del archivo
  • Tamaño de papel
  • Márgenes

Verifique el ejemplo en la página de inicio. Puede modificarlo para probar en una URL de su sitio.

El servicio actualmente cuesta $ 7 por 10,000 solicitudes.

Convierta una página web en un PDF imprimible cuando el usuario haga clic en un botón. Descargue la biblioteca mpdf y aquí está el código que estoy usando en mi página. Para generar el informe como un html y luego convertirlo a pdf usando la biblioteca mpdf están disponibles.

Para obtener más información, visite: Convertir HTML a PDF con la biblioteca mPDF

Saludos,
Prasanna (Desarrollador web)
InstaSoft

La API HTMLtoPDF es la mejor manera de convertir su archivo HTML a PDF. Solo necesita adjuntar un archivo html que debe convertirse a PDF en su llamada curl.

  • Convierte HTML a PDF con CSS (el mejor)
  • Convertidor HTML / CSS a PDF escrito en Python
  • WeasyPrint convierte documentos HTML / CSS a PDF

La mejor manera de crear PDF a partir de HTML es usar PDF Creator:

  1. Abra PDF Creator y arrastre y suelte los archivos de la página web en su interfaz.
  2. Presiona “Convertir” para iniciar la conversión de páginas web a PDF en Mac.

Lo mejor de PDF Creator es que permite a los usuarios crear PDF a partir de archivos en una amplia gama de formatos diferentes, incluso fusionar estos archivos en un solo PDF en cuestión de segundos.

Para convertir HTML a PDF, debe usar las mejores herramientas para convertir HTML a PDF en línea.
El software que elija debe ser tal que satisfaga sus requisitos y mejore la funcionalidad del documento para que pueda utilizarlo por completo.
El proceso de conversión comienza con la descarga del software. El software descargado ahora está instalado en la computadora. El archivo a convertir se carga y se siguen los pasos prescritos por el proveedor de software. El documento convertido se guarda para su uso futuro. El pdf experto es el mejor entre todos los que he usado. Puedes consultar los detalles aquí

http://www.html-to-pdf.net/free-…

Si tiene Adobe CS (cualquier versión reciente) y MS Word, puede cargar su documento HTML en Word y luego convertirlo a PDF utilizando el complemento Acrobat. Funciona bastante bien y le permite adjuntar un archivo CSS. No conozco ningún software gratuito que funcione bien, pero, de nuevo, no uso software libre ya que generalmente obtienes lo que pagas.

Por supuesto, ProSooner PDF Converter, es el mejor y más conveniente convertidor en línea que he usado, solo pruébalo. ProSooner convertidor de pdf | pdf a word | software de convertidor de pdf

Utiliza wkhtmltopdf.