问题
How to set UTF-8 encoding in php library named FPDI? Here's library: https://www.setasign.com/products/fpdi/manual/
The code:
$pdf = new Fpdi();
$pdf->AddPage();
$pdf->setSourceFile('PdfDocument.pdf');
$tplIdx = $pdf->importPage(1);
$pdf->useTemplate($tplIdx, 10, 10, 100);
$pdf->SetFont('Helvetica');
$pdf->SetTextColor(255, 0, 0);
$pdf->SetXY(30, 30);
$pdf->Write(0, 'Zażółcić gęślą jaźń');
$pdf->Output();
[SOLUTION]
FIRST: I had to add new font with proper letters
$pdf->AddFont('DejaVu','','DejaVuSansCondensed.php');
$pdf->SetFont('DejaVu', '', 10, '', false);
SECOND: In regard to FPDF library that is user by FPDI: There possible encodings:
cp1250 (Central Europe)
cp1251 (Cyrillic)
cp1252 (Western Europe)
cp1253 (Greek)
cp1254 (Turkish)
cp1255 (Hebrew)
cp1257 (Baltic)
cp1258 (Vietnamese)
cp874 (Thai)
ISO-8859-1 (Western Europe)
ISO-8859-2 (Central Europe)
ISO-8859-4 (Baltic)
ISO-8859-5 (Cyrillic)
ISO-8859-7 (Greek)
ISO-8859-9 (Turkish)
ISO-8859-11 (Thai)
ISO-8859-15 (Western Europe)
ISO-8859-16 (Central Europe)
KOI8-R (Russian)
KOI8-U (Ukrainian)
The string that was sent by me to pdf was in UTF-8 (I checked it by mb_detect_encoding
function) and there was need to convert on cp1250.
$str = iconv('UTF-8', 'cp1250', 'zazółcić gęślą jaźń');
ANOTHER SOULUTION try to use:
$pdf->SetFont('freeserif', '', 14, '', true);
来源:https://stackoverflow.com/questions/46772714/how-to-set-encoding-in-php-fpdi-library