php - convertir - Cómo generar archivos pdf_with_ utf-8 caracteres multibyte utilizando Zend Framework
utf8 php mysql (4)
Creo que Zend_Pdf recibió soporte para UTF-8 en 1.5. ¿Qué versión de Zend Framework está ejecutando?
Además, ¿con qué fuente intentas renderizar? ¿Has probado fuentes alternativas?
Tengo un "pequeño" problema con Zend Framework Zend_Pdf class. Los caracteres multibyte se eliminan de los archivos pdf generados. Por ejemplo, cuando escribo aąbcčdeę se convierte en abcd con letras lituanas despojadas.
No estoy seguro si es particularmente un problema Zend_Pdf o php en general.
El texto fuente está codificado en utf-8, así como el archivo fuente php que hace el trabajo.
Gracias de antemano por su ayuda ;)
PD: ejecuto Zend Framework v. 1.6 y uso FONT_TIMES_BOLD fuente. FONT_TIMES_ROMAN funciona
ZF v. 1.6, TIMES_BOLD (¿entiendo que es la única forma de hacer que el texto sea en negrita?)
¿Se ha asegurado de que está configurando la codificación de caracteres como este ejemplo del manual?
// Draw the string on the page
$pdfPage->drawText($unicodeString, 72, 720, ''UTF-8'');
Si está atrapado en tener que usar una fuente en negrita , ¿puede probar con alguna de las otras fuentes en negrita?
Zend_Pdf_Font::FONT_COURIER_BOLD
Zend_Pdf_Font::FONT_TIMES_BOLD
Zend_Pdf_Font::FONT_HELVETICA_BOLD
Zend_Pdf
compatible con UTF-8 en la versión 1.5 de Zend Framework. Sin embargo, las fuentes estándar de PDF admiten solo el juego de caracteres Latin1. Esto significa que no puede usar Zend_Pdf_Font::FONT_TIMES_BOLD
ni ninguna otra fuente "incorporada". Para usar caracteres especiales, debe cargar otra fuente TTF que incluya caracteres de otros conjuntos de caracteres.
Uso Mac OS X, así que probé el siguiente código y produce un documento PDF con los caracteres correctos.
$pdfDoc = new Zend_Pdf();
$pdfPage = $pdfDoc->newPage(Zend_Pdf_Page::SIZE_LETTER);
// load TTF font from Mac system library
$font = Zend_Pdf_Font::fontWithPath(''/Library/Fonts/Times New Roman Bold.ttf'');
$pdfPage->setFont($font, 36);
$unicodeString = ''aąbcčdeę'';
$pdfPage->drawText($unicodeString, 72, 720, ''UTF-8'');
$pdfDoc->pages[] = $pdfPage;
$pdfDoc->save(''utf8.pdf'');
Ver también este registro de errores: http://framework.zend.com/issues/browse/ZF-3649