なぜ私の請求書PDF> 1MBがあるのか
質問
クリックしてMagentoの管理パネルに請求書を印刷すると、900Kから1.3MBの間のファイルをダウンロードします(バリエーションはランダムに見えますが、その理由はわかりません)。これは非常に単純な請求書であり、おそらく1〜6回のラインアイテムが上にあるため、最大100k以上を占めるべきものはありません。
埋め込まれたフォントはありますか?
それはサーバーサイドの何かでしょうか?
それを減らすために私ができる簡単な調整はありますか?
私は現代のブロードバンドなどではそれが本当に重要ではありませんが、それは少し不必要なようです。
解決
実際、埋め込まれたフォントはファイルサイズに責任があります。
フォントを組み込まれた1つに置き換えると、単純な請求書のファイルサイズが約4kbになります。
それをするために、それは少し乱雑になります。拡張されたクラスを書き直す必要があります Mage_Sales_Model_Order_Pdf_Abstract
と Mage_Sales_Model_Order_Pdf_Items_Abstract
次に、すべての呼び出しを交換します
$font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/LinLibertineFont/LinLibertine_Re-4.4.1.ttf');
と
$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);
選択できる内蔵フォントは次のとおりです。
Zend_Pdf_Font::FONT_COURIER
Zend_Pdf_Font::FONT_COURIER_BOLD
Zend_Pdf_Font::FONT_COURIER_OBLIQUE
Zend_Pdf_Font::FONT_COURIER_ITALIC
Zend_Pdf_Font::FONT_COURIER_BOLD_OBLIQUE
Zend_Pdf_Font::FONT_COURIER_BOLD_ITALIC
Zend_Pdf_Font::FONT_HELVETICA
Zend_Pdf_Font::FONT_HELVETICA_BOLD
Zend_Pdf_Font::FONT_HELVETICA_OBLIQUE
Zend_Pdf_Font::FONT_HELVETICA_ITALIC
Zend_Pdf_Font::FONT_HELVETICA_BOLD_OBLIQUE
Zend_Pdf_Font::FONT_HELVETICA_BOLD_ITALIC
Zend_Pdf_Font::FONT_SYMBOL
Zend_Pdf_Font::FONT_TIMES_ROMAN (or Zend_Pdf_Font::FONT_TIMES)
Zend_Pdf_Font::FONT_ZAPFDINGBATS
たとえば、あなたのためにそれを行う拡張機能がたくさんあります https://github.com/firegento/firegento-pdf (また Magento Connect)組み込まれたものを使用します FONT_HELVETICA
.
Firegento_PDF拡張機能は、PDFのカスタマイズにより、その点でより心地よくカスタマイズされます(さらに、デフォルトのPDFの外観はすでに良くなります)。
他のヒント
これは、スキーとイエルの「マゼント!」のシェイクフィストの1つです。瞬間。それは、その******* linlibertineフォントが埋め込まれるためです。見る:
このフォントを変更することは、コアクラスのローカルコードプールオーバーライドのまれな正当なユースケースの1つであるIMOです。私は、フォントが乾燥しているため、フォントをリセットする目的で、すべての販売PDFクラスの「適切な」書き換えに対するそのアプローチを好みます。
それは私のために働いています!!
このバグは、PHP 5.4以降のMagentoインストールで私のために起こっているようです。
変化する
abstract public function __construct();
に
abstract public function __construct($filePath);