Saltar al contenido

Dompdf y establecer diferentes familias de fuentes

No olvides que en la informática un error casi siempre tiene más de una resoluciones, pero nosotros mostraremos lo mejor y más eficiente.

Solución:

Los documentos PDF admiten internamente las siguientes fuentes: Helvetica, Times-Roman, Courier, Zapf-Dingbats y Symbol (todas con codificación ANSI de Windows). dompdf incrustará cualquier fuente a la que se haga referencia en el PDF siempre que se haya cargado previamente o sea accesible para dompdf y se haga referencia en un CSS @font-face regla. El proceso de carga es necesario para producir las métricas de fuente utilizadas para la configuración de tipo.

dompdf admite las mismas fuentes que la clase R&OS PDF subyacente: Tipo 1 (.pfb) y TrueType (.ttf), siempre que las métricas de fuentes (.afm/.ufm) estén disponibles. El paquete php-font-lib basado en PHP brinda soporte para cargar y subconfigurar fuentes.

El proceso para cargar una fuente varía según sus necesidades y el acceso al servidor. Hay tres formas de cargar una fuente:

  1. Use las reglas CSS @font-face para cargar una fuente en tiempo de ejecución.
  2. Desde la línea de comandos, use dompdf/load_font.php.
  3. Vaya a dompdf/www/fonts.php en el sitio de administración incluido.

Use las reglas CSS @font-face para cargar una fuente en tiempo de ejecución

No se requiere acceso a la línea de comandos. Siempre que la fuente que desea cargar esté disponible en línea, puede cargarla fácilmente a través de CSS.

@font-face 
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: normal;
  src: url(http://themes.googleusercontent.com/static/fonts/opensans/v8/cJZKeOuBrn4kERxqtaUH3aCWcynf_cDxXwCLxiixG1c.ttf) format('truetype');

Desde la línea de comando, use dompdf/load_font.php

Si tiene acceso a la línea de comando, cargar una fuente es tan simple como:

[php] load_font.php "NeutraText-Book" /path/to/neutratext.ttf

Ejecute el comando sin ningún parámetro para ver el texto de ayuda. Rápidamente, sin embargo, los parámetros son: nombre de la fuente, archivo de fuente normal, archivo de fuente en negrita, archivo de fuente en cursiva, archivo de fuente en negrita-cursiva

Vaya a dompdf/www/fonts.php en el sitio de administración incluido

Se explica por sí mismo (muestra). Lo único que debe hacer es asegurarse de haber modificado la combinación de nombre de usuario y contraseña del administrador.


Nota: load_font.php y el sitio de administración no se incluirán de forma predeterminada a partir de dompdf 0.7.0

Adaptado del wiki de dompdf (Unicode How-To, About Fonts and Character Encoding) y otras fuentes.

Tengo un problema similar y llevo 2 días buscando una solución… Con la nueva versión, la respuesta aceptada ya no funciona.

La respuesta de @jay-bienvenu es correcta. La nueva versión de DomPDF no incluye todo y además hay una documentación muy pobre.

Así que tendrás que:

  1. descarga load_font.php y colócalo en el directorio raíz de tu proyecto:
    curl -o load_font.php https://raw.githubusercontent.com/dompdf/utils/master/load_font.php

  2. luego abra load_font.php con su editor y coloque la ruta correcta a su autoload.inc.php, por ejemplo require_once 'lib/dompdf/autoload.inc.php';

  3. Abra la línea de comando, vaya a la carpeta raíz de su proyecto y ejecute la utilidad con el nombre de la fuente que está registrando y la ruta al archivo TFF, por ejemplo. php load_font.php SourceSansPro ./pathToYourFolder/lib/dompdf/SourceSansPro-Regular.ttf ./pathToYourFolder/lib/dompdf/SourceSansPro-Bold.ttf

Ahora la fuente está instalada. Puede usarlo como lo haría normalmente como fuente web en html:



    
    


Your code here ....

y para hacer el pdf en php:

require_once 'lib/dompdf/autoload.inc.php';

use DompdfDompdf;

// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml($html, 'UTF-8');

// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4');

$dompdf->set_option('defaultMediaType', 'all');
$dompdf->set_option('isFontSubsettingEnabled', true);

// Render the HTML as PDF
$dompdf->render();

EDITAR: hice una publicación de blog sobre cómo usar dompdf y aplicar fuentes personalizadas para que las cosas puedan ser más detalladas: https://www.blog.lab21.gr/using-domdpf-create-pdf-php

Acerca de las fuentes y la codificación de caracteres de Dompdf dice que la utilidad de fuentes está incluida, pero no le dice cómo obtenerla y ejecutarla. Así es cómo:

  1. Descarga load_font.php al directorio raíz de tu proyecto. curl -o load_font.php https://raw.githubusercontent.com/dompdf/utils/master/load_font.php

  2. Abra load_font.php con un editor de texto (por ejemplo, vim). Cambio require_once "autoload.inc.php"; para require_once "vendor/autoload.php";

  3. Ejecute la utilidad con el nombre de la fuente que está registrando y la ruta al archivo TFF. Por ejemplo: php load_font.php 'Brush Script MT' https/fonts/brush-script-mt.ttf

Lea el código de load_font.php para obtener más información sobre cómo usar este comando.

Nos puedes asentar nuestro quehacer mostrando un comentario o valorándolo te estamos eternamente agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *