【发布时间】:2018-01-11 15:54:54
【问题描述】:
我想编辑发票的外观并遵循此处https://magento.stackexchange.com/questions/41650/how-to-change-pdf-invoice-layout 和此处https://www.hummingbirduk.com/remove-tax-pdf-invoices-magento/ 提供的建议。
- Magento 版本为 1.9.3.7
- 我不是在寻找修改发票外观的模块。
我想要的是重新对齐列并使 TAX 列消失。对于简单的产品,我设法做到了。
问题在于可配置和捆绑产品仍然显示包含税列的组件,而其他组件仍然被替换。
code/local/mage/sales/model/order/pdf/Invoice.php(注释从第 77 行开始的行)
$lines[0][] = array(
'text' => Mage::helper('sales')->__('Tax'),
'feed' => 495,
'align' => 'right'
);
可以隐藏标题标签。
code/local/mage/sales/model/order/pdf/Items/Invoice/Default.php(从第 106 行开始注释此片段)
$lines[0][] = array(
'text' => $order->formatPriceTxt($item->getTaxAmount()),
'feed' => 495,
'font' => 'bold',
'align' => 'right'
);
将使税字段对简单产品隐藏,但不会对作为捆绑/可配置组件的简单产品的那些。
问题在于,这些文件都不负责可配置和捆绑包在 PDF 发票中的呈现方式。
我可以确定的是,这些产品是使用此功能呈现的
code/local/mage/sales/model/order/pdf/Abstract.php(第 760 行)
protected function _drawItem(Varien_Object $item, Zend_Pdf_Page $page, Mage_Sales_Model_Order $order)
{
$orderItem = $item->getOrderItem();
$type = $orderItem->getProductType();
$renderer = $this->_getRenderer($type);
$this->renderItem($item, $page, $order, $renderer);
$transportObject = new Varien_Object(array('renderer_type_list' => array()));
Mage::dispatchEvent('pdf_item_draw_after', array(
'transport_object' => $transportObject,
'entity_item' => $item
));
foreach ($transportObject->getRendererTypeList() as $type) {
$renderer = $this->_getRenderer($type);
if ($renderer) {
$this->renderItem($orderItem, $page, $order, $renderer);
}
}
return $renderer->getPage();
}
但我找不到可配置渲染器的定义位置。
【问题讨论】:
-
你为什么不在magento上问,你可能有更好的机会在那里得到答案。 (尽管那个社区相当不活跃)
-
@Edwin - 因为大多数人都在这里发帖和活跃,所有与 Mage 相关的问题在这里得到更快的结果