I am using the DOMPDF library to create an invoice in PDF. This document can be in French, Russian or English, but I am having trouble printing Russian characters.
First, I tried to use UTF-8 encoding and placed the meta
tag in the head of the HTML page to be converted:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
But that didn't work.
Then I inserted this meta
tag inside the BODY
tag, and it helped solve the problem with French characters.
But Russian characters still don't work. I have also tried to convert Russian characters into HTML entities, but that too does not work.
I use R&OS CPDF class, not PDFLib as a backend.
Can anyone help?
In accepted answer link is broken and it contained old version of DOMPDF.
To work with unicode symbols in DOMPDF 0.6 you have two alternatives: use existed fonts or create your own font.
Use existed font (applied for DOMPDF 0.6):
/dompdf/lib/fonts/
.dompdf_font_family_cache.dist.php
with snippet 1.font-family: times;
.Snippet 1:
/* ... */
'times' => array (
'normal' => DOMPDF_FONT_DIR . 'times',
'bold' => DOMPDF_FONT_DIR . 'timesbd',
'italic' => DOMPDF_FONT_DIR . 'timesi',
'bold_italic' => DOMPDF_FONT_DIR . 'timesbi'
),
'times-roman' => array (
'normal' => DOMPDF_FONT_DIR . 'times',
'bold' => DOMPDF_FONT_DIR . 'timesbd',
'italic' => DOMPDF_FONT_DIR . 'timesi',
'bold_italic' => DOMPDF_FONT_DIR . 'timesbi'
),
/* ... */
If you want to use your own TTF font (say, Arial.ttf
):
ttf2afm -o Arial.afm Arial.ttf
. (I did it in Ubuntu.)ttf2ufm -a -F Arial.ttf
. (I did it in Windows using exe from UFPDF, but I guess you can use /dompdf/lib/ttf2ufm/bin/ttf2ufm.exe
.)Arial.*
files in /dompdf/lib/fonts/
.dompdf_font_family_cache.dist.php
snippet 2.font-family: arial;
.Snippet 2:
/* ... */
'arial' => array (
'normal' => DOMPDF_FONT_DIR . 'Arial',
'bold' => DOMPDF_FONT_DIR . 'Arial',
'italic' => DOMPDF_FONT_DIR . 'Arial',
'bold_italic' => DOMPDF_FONT_DIR . 'Arial'
)
/* ... */