关于 php:使用 Zend Framework 将自定义图像插入 Magento Invoice 或 Packingslip PDF

Insert custom image into Magento Invoice or Packingslip PDF using Zend Framework

我正在尝试将新图像插入到我的 Magento 发票或装箱单中,并且我找到了以下代码:(来自 /app/code/core/Mage/Sales/Model/Order/Pdf/Abstract.php)

1
2
3
4
5
6
7
8
9
10
11
12
    protected function insertLogo(&$page, $store = null)
{
    $image = Mage::getStoreConfig('sales/identity/logo', $store);
    if ($image) {
        $image = Mage::getStoreConfig('system/filesystem/media', $store) . '/sales/store/logo/' . $image;
        if (is_file($image)) {
            $image = Zend_Pdf_Image::imageWithPath($image);
            $page->drawImage($image, 25, 758, 170, 860);
        }
    }
    //return $page;
}

我在我的本地文件夹 /app/code/core/Mage/Sales/Model/Order/Pdf/Shipment.php 中制作了一份副本,这是我要修改的文件。我尝试了各种方法来指向我服务器上的文件(不是通过管理员上传,只是通过 FTP),但我无法让它指向另一个文件 - 它只是拒绝创建 PDF 或什么都不做......

这是我目前所处的位置:

1
2
3
4
5
            $image = Mage::getStoreConfig('system/filesystem/media/Chris-Sig.gif');
            if (is_file($image)) {
                $image = Zend_Pdf_Image::imageWithPath($image);
                $page->drawImage($image, $x, $y, $x+30, $y+15);
            }

有什么想法吗?


要使 Mage::getStoreConfig('system/filesystem/media/Chris-Sig.gif') 起作用,需要一个名为 system/filesystem/media/Chris-Sig.gif 的设置,它不是文件位置。试试这个更简单但不可配置的片段:

1
$image = Mage::getConfig()->getOptions()->getMediaDir().DS.'Chris-Sig.gif';

当您确信它有效时,您可以尝试配置设置。