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:
- Use las reglas CSS @font-face para cargar una fuente en tiempo de ejecución.
- Desde la línea de comandos, use dompdf/load_font.php.
- 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:
-
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
-
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';
-
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:
-
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
-
Abra load_font.php con un editor de texto (por ejemplo, vim). Cambio
require_once "autoload.inc.php";
pararequire_once "vendor/autoload.php";
-
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.