Top 5: Librerías de generación de PDF para PHP


La creación automática de archivos PDF es uno de los puntos más importantes de un proyecto (comercial o no). Como es probable, los archivos PDF generados no son para usted ni para su equipo, sino para sus clientes exigentes, debe proporcionar una solución que cumpla con todas las expectativas y requisitos.

En algunos casos, no debido a los requisitos exagerados de los clientes, sino a la biblioteca que utiliza para generar archivos PDF, se encontrará limitado y es muy probable que tenga problemas para proporcionar una solución para el cliente.

En este artículo, mostraremos 5 de las bibliotecas de generación de PDF más importantes que lo ayudarán a lograr esos PDF complejos y extensos.

Esta parte superior se basa en diferentes puntos, según la facilidad de implementación, los casos de uso, los usuarios de la biblioteca, las funciones y el estado de desarrollo.

5. FPDF

Ejemplos

FPDF es una clase de PHP que permite generar archivos PDF con PHP puro, es decir, sin utilizar la biblioteca PDFlib. F de FPDF significa Gratis: puede usarlo para cualquier tipo de uso y modificarlo para que se adapte a sus necesidades.

FPDF tiene otras ventajas: funciones de alto nivel, entre sus características principales están:
  • Elección de unidad de medida, formato de página y márgenes.
  • Gestión de encabezado y pie de página.
  • Salto de página automático.
  • Línea automática y justificación de texto.
  • Soporte de imagen (JPEG, PNG y GIF).
  • Colores.
  • Campo de golf.
  • TrueType, Type1 y soporte de codificación.
  • Compresión de página.
  • FPDF no requiere ninguna extensión (excepto Zlib para habilitar la compresión y GD para el soporte GIF). La última versión requiere al menos PHP 5.1.
El siguiente fragmento muestra un PDF básico generado con FPDF:
  <?php
    require('fpdf/fpdf.php');

    $pdf = new FPDF();
    $pdf->AddPage();
    $pdf->SetFont('Arial','B',16);
    $pdf->Cell(40,10,'Hello World!');
    $pdf->Output();
  ?>

4. mPDF

mPDF es una clase de PHP que genera archivos PDF a partir de HTML codificado en UTF-8. Se basa en FPDF y HTML2FPDF , con una serie de mejoras. mPDF fue escrito por Ian Back y se lanzó bajo la licencia GNU GPL v2 .

Antes de comenzar a utilizarlo, le recomendamos que lea la documentación que se encuentra en https://mpdf.github.io/ .

El siguiente fragmento muestra un PDF básico después de una instalación de compositor con mPDF:
   <?php
    require_once __DIR__ . '/vendor/autoload.php';

    $mpdf = new mPDF();

  // Escribe algo de código HTML:
    $mpdf->WriteHTML('<h1>Hello World</h1><br><p>Mi primer PDF con mPDF</p>');
  // Produce un archivo PDF directamente al navegador
    $mpdf->Output();
  ?>


3. DOMPDF

Dompdf es (en su mayoría) un motor de diseño y representación HTML compatible con CSS 2.1 escrito en PHP. Es un procesador de 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.

Caracteristicas

  1. Maneja la mayoría de CSS 2.1 y algunas propiedades de CSS3, incluidas las reglas @import, @media y @page
  2. Soporta la mayoría de los atributos de presentación HTML 4.0
  3. Admite hojas de estilo externas, ya sea locales o a través de http / ftp (a través de fopen-wrappers)
  4. Admite tablas complejas, que incluyen filas y columnas, modelos de bordes separados y contraídos, estilo de celda individual
  5. Soporte de imágenes (gif, png (8, 24 y 32 bits con canal alfa), bmp y jpeg)
  6. Sin dependencias de bibliotecas PDF externas, gracias a la clase PDF de R&OS
  7. Soporte PHP en línea
  8. Soporte básico de SVG

Requerimientos

  • PHP versión 5.3.0 o superior
  • Extensión DOM
  • Extensión GD
  • Extensión MBString
  • php-font-lib
  • php-svg-lib

recomendaciones

  1. OPcache (OPcache, XCache, APC, etc.): mejora el rendimiento
  2. Extensión IMagick o GMagick: mejora el rendimiento del procesamiento de imágenes
El siguiente fragmento de código muestra cómo generar un PDF simple y generar una descarga directa utilizando Dompdf:
   <?php
   require_once 'dompdf/autoload.inc.php';
   // referencia el espacio de nombres Dompdf
   use Dompdf\Dompdf;

   // instanciar y usar la clase dompdf
   $dompdf = new Dompdf();
   $dompdf->loadHtml('<h1>DOMPDF Demo</h1><br><p>Hello World !</p>');

   // (Opcional) Configure el tamaño y la orientación del papel.
   $dompdf->setPaper('A4', 'portrait');

   // Render el HTML como PDF
   $dompdf->render();

   // Salida del PDF generado al navegador
   $dompdf->stream();

2. Snappy (wkhtmltopdf)

Github Snappy Library  | Github wkhtmltopdf

Snappy es una biblioteca PHP5 que permite la generación de miniaturas, instantáneas o PDF desde una url o una página html. Utiliza los excelentes wkhtmltopdf y wkhtmltoimage basados ​​en webkit disponibles en OSX, Linux, Windows. Deberá descargar wkhtmltopdf 0.12.x para utilizar Snappy .

wkhtmltopdf y wkhtmltoimage son herramientas de línea de comandos de código abierto (LGPLv3) para representar HTML en PDF y varios formatos de imagen utilizando el motor de renderizado Qt WebKit. Estos se ejecutan completamente "sin cabeza" y no requieren una pantalla o servicio de visualización.

Incluso puede descargar una distribución de wkhtmltopdf como una dependencia del compositor y hacer referencia dinámica al Binario en su proyecto.

El siguiente fragmento muestra un PDF básico de HTML usando wkhtmltopdf en Windows con la página de inicio de Github:

   <?php

   require __DIR__ . '/vendor/autoload.php';

   use Knp\Snappy\Pdf;

   // Por ejemplo, en Windows use el archivo ejecutable wkhtmltopdf
   $snappy = new Pdf('wkhtmltopdf.exe');

   // Descarga el PDF transmitido
   header('Content-Type: application/pdf');
   header('Content-Disposition: attachment; filename="file.pdf"');
   echo $snappy->getOutput('http://www.github.com');

1. TCPDF

Github | Página principal

TCPDF es una biblioteca de PHP para generar documentos PDF sobre la marcha fácilmente y con un par de líneas. Admite la personalización y una gran cantidad de características clave cuando trabaja con la creación de archivos PDF.

Esta biblioteca admite fuentes Unicode y es mantenida activamente por Nicola Asuni en el repositorio de Github.

Tiene una extensa colección de ejemplos y fragmentos de código listos para probar en su página oficial . TCPDF tiene como características principales:


  • No se requieren bibliotecas externas para las funciones básicas .
  • todos los formatos de página estándar, formatos de página personalizados, márgenes personalizados y unidades de medida.
  • Lenguajes UTF-8 Unicode y de derecha a izquierda.
  • TrueTypeUnicode, OpenTypeUnicode v1, TrueType, OpenType v1, Type1 y CID-0.
  • subconjunto de fuentes.
  • Métodos para publicar algunos códigos XHTML + CSS, Javascript y formularios.
  • Imágenes, gráficos (figuras geométricas) y métodos de transformación.
  • admite imágenes JPEG, PNG y SVG de forma nativa, todas las imágenes compatibles con GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) y todas las imágenes compatibles a través de ImagMagick ( http://www.imagemagick.org/ script / format.php )
  • Códigos de barras 1D y 2D: CÓDIGO 39, ANSI MH10.8M-1983, USD-3, 3 de 9, CÓDIGO 93, USS-93, Estándar 2 de 5, Intercalado 2 de 5, CÓDIGO 128 A / B / C, 2 y Extensión basada en UPC de 5 dígitos, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANETA, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (índice de Klant - Índice de clientes), código de barras de correo inteligente, código de usuario, USPS-B-3200, CODABAR, CÓDIGO 11, PHARMACODE, PHARMACODE TWO-TRACKS, Datamatrix, QR-Code, PDF417.
  • Perfiles JPEG y PNG ICC, escala de grises, RGB, CMYK, colores planos y transparencias.
  • Gestión automática de encabezados y pies de página.
  • Codificación de documentos hasta 256 bit y certificaciones de firma digital.
  • Transacciones a comandos UNDO.
  • Anotaciones en PDF, incluyendo enlaces, texto y archivos adjuntos.
  • Modos de renderizado de texto (relleno, trazo y recorte).
  • Modo de columnas múltiples.
  • regiones de página sin escritura.
  • Marcadores, destinos con nombre y tabla de contenido.
  • guión del texto.
  • Estiramiento de texto y espaciado (seguimiento).
  • Salto de página automático, salto de línea y alineaciones de texto, incluida la justificación.
  • Numeración automática de páginas y grupos de páginas.
  • Mueve y borra páginas.
  • Compresión de página (requiere extensión php-zlib).
  • Plantillas de XOBject.
  • Capas y visibilidad de objetos.
  • Soporte PDF / A-1b.

El siguiente ejemplo de cómo representar HTML como PDF con TCPDF:
   <?php 
   // Incluya la biblioteca TCPDF principal (busque la ruta de instalación).
   require_once('tcpdf_include.php');

   // crear nuevo documento PDF
   $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

   // configurar la información del documento
   $pdf->SetCreator(PDF_CREATOR);
   $pdf->SetAuthor('Our Code World');
   $pdf->SetTitle('Example Write Html');

   // establecer datos de encabezado predeterminados
   $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 006', PDF_HEADER_STRING);

   // establecer las fuentes de encabezado y pie de página
   $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
   $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

   // establecer fuente predeterminada monoespaciada
   $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

   // establecer márgenes
   $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
   $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
   $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

   // establecer saltos de página automáticos
   $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

   // establecer el factor de escala de la imagen
   $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

   // añadir una página
   $pdf->AddPage();

   $html = '<h4>PDF Example</h4><br><p>Bienvenido a la jungla</p>';
 
   $pdf->writeHTML($html, true, false, true, false, '');
   // añadir una página
   $pdf->AddPage();

   $html = '<h1>Hey</h1>';
   // generar el contenido HTML
   $pdf->writeHTML($html, true, false, true, false, '');

   // restablecer puntero a la última página
   $pdf->lastPage();
   //Cerrar y generar documento PDF
   $pdf->Output('example_006.pdf', 'I');

TCPDF en primer lugar, ¿por qué ?. Teóricamente, el primer lugar debe ser wkhtmltopdf, ya que usa el kit de web para representar su HTML y probablemente será más útil para representar cosas como lienzos, SVG, etc. Sin embargo, debe saber que no todos los desarrolladores pueden incluir binarios (aplicaciones o ejecutables) en sus proyectos o disfrute de los privilegios de hacer lo que quiera con el servidor, es cuando TCPDF se convierte en la primera opción para la mayoría de los desarrolladores.

TCPDF está en el primer lugar de esta parte superior, ya que es la biblioteca PHP más fácil de usar para crear PDF y, sin embargo, es la más completa y extensa, ya que no requiere archivos ejecutables, ya que todo funciona con Plain PHP. Cubre los requisitos básicos de todos los proyectos que requieren la función de generación de PDF.

Si conoce otra biblioteca de PHP impresionante para generar PDF, compártala con la comunidad en el cuadro de comentarios de abajo, diviértase. !
Top 5: Librerías de generación de PDF para PHP Top 5: Librerías  de generación de PDF  para PHP Reviewed by codeAb on 8:57 Rating: 5

No hay comentarios:

Con la tecnología de Blogger.