【问题标题】:Magento edit PDF renderer for configurable and bundle productsMagento 为可配置和捆绑产品编辑 PDF 渲染器
【发布时间】: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 相关的问题在这里得到更快的结果

标签: php magento pdf invoice


【解决方案1】:

复制文件到

local/Mage/Bundle/Model/Sales/Order/Pdf/Items

来自

core/Mage/Bundle/Model/Sales/Order/Pdf/Items

Invoice.php 评论行146&147

$tax = $order->formatPriceTxt($_item->getTaxAmount());
$line[] = array('text'  => $tax,'feed'  => 495,'font'  => 'bold',    'align' => 'right');

【讨论】:

  • 我想更改发票 PDF 中订购项目字段的位置。你对此有什么想法吗?
  • 您需要查看文件并使用“feed”参数并对齐。
  • 好的,谢谢。我想在 PDF 的新页面中打印数据的每个 div 标签。有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-18
  • 1970-01-01
  • 2011-02-26
  • 2013-07-19
  • 2013-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多