Para reducir el tamaño de los archivos PDF que genera Magento, tales como las facturas (invoices), pedidos (orders), etc. se necesita usar una fuente (fonts) diferentes a las predeterminadas.
Los archivos PDF generados por Magento tienen un tamaño alrededor de 1.5 MB, esto se debe a que la fuente predeterminada es /lib/LinLibertineFont/LinLibertineC_Re-2.8.0.ttf
La cual por sí misma pesa 1.5 MB. La solución es reemplazar esta fuente por alguna estándar de Zend_Pdf, para hacer esto, solamente abre el archivo app/code/core/Mage/Sales/Model/Order/Pdf/Abstract.php
Busca la siguiente línea:
$font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/LinLibertineFont/LinLibertineC_Re-2.8.0.ttf'); # #
Y reemplázala con:
$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA); # #
Esto reducirá hasta en un 90% el tamaño de los archivos PDF generados en Magento
Si deseas aumentar el tamaño de las fuentes para las facturas, direcciones de envío, etc., puedes cambiar las líneas:
protected function _setFontRegular($object, $size = 7) protected function _setFontBold($object, $size = 7) protected function _setFontItalic($object, $size = 7)
Por:
protected function _setFontRegular($object, $size = 9) protected function _setFontBold($object, $size = 9) protected function _setFontItalic($object, $size = 9)
Como podrás ver, hemos tocado el core de Magento, para preservar las modificaciones para futuras actualizaciones de Magento, puedes colocar este código en app/local/Mage/Sales/Model/Order/Pdf/Abstract.php
, pero toma en cuenta que con el simple hecho de colocarlo en esta carpeta no quiere decir que vas a sobreescribir la clase, sino que simplemente es a manera de "backup" para que sepas que ahí puedes recolectar los cambios hechos al core de Magento cuando hagas una actualización de versión y repetir estos pasos para un futuro.
Ahora bien, si no quieres tocar el core de Magento, puedes extender la clase app/code/core/Mage/Sales/Model/Order/Pdf/Abstract.php
y entonces sobreescribir los métodos arriba mencionados. Por el momento no voy a tocar el tema de cómo extender módulos en Magento, pero te dejo unos links en inglés que te pueden servir:
http://blog.chapagain.com.np/magento-block-controller-model-helper-override/
http://www.webspeaks.in/2010/07/create-your-first-magento-module.html
Artículo original:
http://www.magpleasure.com/blog/change-fonts-and-reduce-file-size-for-pdf-invoice-in-magento.html
No hay comentarios:
Publicar un comentario