Me doy cuenta de que hay una gran cantidad de temas relacionados, pero parece que no puedo encontrar uno que sea igual y/o que incluya una solución que resuelva mi problema.
Estoy enviando un documento HTML a dompdf que incluye CSS incrustado e incluye declaraciones tipográficas y definiciones de clase. Las fuentes están en el mismo servidor y lo he intentado con rutas relativas y absolutas y parece que no puedo hacer que funcionen.
Incluyo lo siguiente en el encabezado del documento HTML que luego envío a dompdf.
<style type="text/css"> @font-face { font-family: "Roboto"; font-weight: normal; font-style: normal; src: url( "http://localhost/resources/fonts/Roboto/Roboto-Regular.ttf") format('truetype'); } .font_alpha { font-family: "Roboto";}` /* .... Other css rules here ... */ </style>Cuando hago eco del html en lugar de enviarlo a dompdf, puedo ver que la fuente para cualquier elemento con la clase .font_alpha aplicada es correcta, en el inspector también muestra que está usando el recurso de red cuando llamo a lo siguiente en el html , la fuente no se aplica.
//This is where I would display the html directly for testing //echo $report_html; exit; $dompdf = new DOMPDF(); $dompdf -> load_html( $report_html ); $dompdf -> set_paper( $this -> paper_size, $this -> paper_orientation ); $dompdf -> render(); $dompdf -> output();Los pdf se generan correctamente con todo el formato css del resto de las reglas que se aplican correctamente, excepto las fuentes.
Para ser honesto, no estoy seguro de si necesito instalar estas fuentes de una manera adicional, como usar cmd line load_font.php lib de terceros o no. Basado en lo que creo que puedo entender sobre la versión 0.8.0, no debería necesitarlo, ¿correcto?
¿Algún consejo o aporte?
La lógica de análisis de CSS de Dompdf puede ser un poco complicada. El espacio delante de la cadena de URL hace tropezar a Dompdf. Si modifica su CSS para leer src: url("http...") format('truetype'); debería funcionar como se esperaba.