DOMPDF does not support some characters

1

I am generating PDFs from HTML content through the DOMPDF library.

What happens is that I need characters like these:

However the PDF does not recognize them, I change them to the sign ?

My HTML is well created and has the correct encoding, for example:

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>Lecturas</title>
</head>

<body>
  <font color="red"><b>≡ PRIMERA LECTURA</b>&nbsp;&nbsp;&nbsp;&nbsp;Jb 19, 21-27<br /><br /></font>Del libro de Job<br /><br />
  <font color="red">Yo sé que está vivo mi Vengador</font><br /><br />Dijo Job: <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;«¡Piedad, piedad, amigos míos, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;que me ha herido la mano de Dios! <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;¿Por qué me
  perseguís como Dios <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y no os hartáis de escarnecerme? <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;¡Ojalá se escribieran mis palabras! <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;¡Ojalá se grabaran en cobre, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con
  cincel de hierro y con plomo <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;se escribieran para siempre en la roca! <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;Yo sé que mi redentor vive <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y que al fin se alzará sobre el polvo:
  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;después que me arranquen la piel, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ya sin carne, veré a Dios. <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Yo mismo lo veré, y no otro; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mis
  propios ojos lo verán. <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;¡Tal ansia me consume por dentro!<br /><br />
  <font color="red"><b>≡ SALMO</b>&nbsp;&nbsp;&nbsp;&nbsp;Sal 26, 7-8a. 8b-9abc. 13-14<br /><br /></font>Salmo<br /><br />
  <font color="red">Espero gozar de la dicha del Señor en el país de la vida</font><br /><br />
  <font color="red">℣. </font>&nbsp;&nbsp;&nbsp;&nbsp;Escúchame, Señor,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;que te llamo;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ten piedad, respóndeme.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Oigo en mi corazón:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;«Buscad
  mi rostro».
  <font color="red"> ℟.</font><br /><br />
  <font color="red">℣. </font>&nbsp;&nbsp;&nbsp;&nbsp;Tu rostro buscaré, Señor,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no me escondas tu rostro.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No rechaces con ira a tu siervo,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;que tú
  eres mi auxilio;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no me deseches.
  <font color="red"> ℟.</font><br /><br />
  <font color="red">℣. </font>&nbsp;&nbsp;&nbsp;&nbsp;Espero gozar de la dicha del Señor<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;en el país de la vida.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Espera en el Señor, sé valiente,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ten
  ánimo, espera en el Señor.
  <font color="red"> ℟.</font><br /><br />
  <font color="red"><b><br />≡ EVANGELIO</b>&nbsp;&nbsp;&nbsp;&nbsp;Lc 10, 1-12<br /><br /></font>Del Santo Evangelio según san Lucas<br /><br />
  <font color="red">Vuestra paz descansará sobre ellos</font><br /><br />En aquel tiempo, designó el Señor otros setenta y dos, y los mandó delante de él, de dos en dos, a todos los pueblos y lugares adonde pensaba ir él. <br /><br />Y les decía: <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;«La
  mies es abundante y los obreros pocos; rogad, pues, al dueño de la mies que envíe obreros a su mies. <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;¡Poneos en camino! Mirad que os envío como corderos en medio de lobos. No llevéis bolsa, ni alforja, ni sandalias;
  y no saludéis a nadie por el camino. <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;Cuando entréis en una casa, decid primero: “Paz a esta casa”. Y si allí hay gente de paz, descansará sobre ellos vuestra paz; si no, volverá a vosotros. Quedaos en la misma casa,
  comiendo y bebiendo de lo que tengan: porque el obrero merece su salario. No andéis cambiando de casa en casa. <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;Si entráis en una ciudad y os reciben, comed lo que os pongan, curad a los enfermos que haya en ella,
  y decidles: “El reino de Dios ha llegado a vosotros”. <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;Pero si entráis en una ciudad y no os reciben, saliendo a sus plazas, decid: “Hasta el polvo de vuestra ciudad, que se nos ha pegado a los pies, nos lo sacudimos
  sobre vosotros. De todos modos, sabed que el reino de Dios ha llegado”. <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;Os digo que aquel día será más llevadero para Sodoma que para esa ciudad.<br /><br /><small><center>Textos litúrgicos oficiales<br /><font color="red">©</font> Conferencia Episcopal Española</center></small></body>

</html>

But in the PDF as I say, I change those characters by ? :

This is the PHP code where I generate the PDF (I'm using cURL ):

function get_pdf($url,$dompdf) {
    set_time_limit(0);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    $r = curl_exec($ch);
    curl_close($ch);
    $dompdf->load_html($r);
    $dompdf->render();
    $dompdf->stream("test.pdf", array('Attachment'=>'0'));
}

Do you know any way to show those special characters?

    
asked by A. Cedano 04.10.2018 в 18:46
source

1 answer

3

For your problem:

Dompdf does not include fonts with special characters by default like the ones you try to use. If you do not specify a source , then dompdf relies on one of the main sources (Helvetica, Times Roman, Courier) that only supports ANSI encoding of Windows strong>.

Therefore, always make sure to apply style to your texts with a font that supports Unicode encoding and has the characters you need to display.

<style>
  body { font-family: DejaVu Sans, sans-serif; }
</style>

For example, the source DejaVu Sans already brings it to dompdf, it does accept unicode characters.

    
answered by 04.10.2018 / 19:57
source