Zend_Pdf & Cirilica
Pastaruoju metu nemažai tenka dirbti su “Zend Framework” komponentais. Tad gal ir dažniau pasidalinsiu sunkumais ir sprendimais su kuriais susidūriau. Šiandien ant operacinio stalo Zend_Pdf komponentas.
Problema. Reikia sugeneruoti pdf’ą failą naudojant pdf šabloną, bei jį užpildyti kirilicos simboliai. Problema ta, kad ‘by default’ Zend_Pdf nepalaiko kirilica simbolių. Pavyzdinis kodas:
$pdf = new Zend_Pdf();
$pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
$pdfPage = $pdf->pages[0];
$pdfPage->setFont(
Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA), 12);
$pdfPage->drawText(’This is my text.’, 72, 740, ‘UTF-8′);
$pdf->save('/somehere/on/the/machine/document.pdf');
Sprendimas. embed’inti šriftus. Siūlau naudoti šiuos šriftus. Tada eilutę ‘Zend_Pdf_Font::fontWithName()’ keičiam į ‘Zend_Pdf_Font::fontWithPath(‘/var/blah/dah/FreeSerif.ttf’)’ ir vuolia
Po visos procedūros kodas tūrėtų atrodyti taip:
$pdf = new Zend_Pdf();
$pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
$pdfPage = $pdf->pages[0];
$pdfPage->setFont(
Zend_Pdf_Font::fontWithPath('/var/blah/dah/FreeSerif.ttf'), 12);
$pdfPage->drawText(’This is my text.’, 72, 740, ‘UTF-8′);
$pdf->save('/somehere/on/the/machine/document.pdf');
Viso šio sprendimo minusas yra tas, jog gautas failo dydis pakinta keliais šimtais kilobaitų. Tačiau, lyginant su prieš tai tūrėtomis alternatyvomis, tai gautas failo dydis vistiek buvo ženkliai mažesnis.
Naudoti šaltiniai:
-
http://medwezys.blogas.lt medwezys
-
http://www.virbicianskas.lt Andrius V.
-
http://www.virbicianskas.lt Andrius V.
-
Vaidas






