用magento中的tcpdf创建一个pdf

时间:2013-12-13 09:46:43

标签: php magento pdf tcpdf

我正在尝试使用magento中的TCPDF创建pdf,我需要导入图像或pdf并进行修改。我在firefox中的代码运行良好,但在chrome或互联网上不起作用。

我把我的一些代码放了一遍:

我的控制员:

  public function printAction()
{
    if (($cardCode = $this->getRequest()->getParam('code'))) {
        $this->loadLayout('print');

        $this->getResponse()->clearHeaders()
                            ->setHeader('Content-Type', 'application/pdf');
        $this->renderLayout();
    } else {
        $this->_redirect('/');
    }
}

我的phtml:

require_once('tcpdf/tcpdf.php');

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8',       false);
$pdf->SetFont('helvetica', '', 15);

$pdf->AddPage();

$pdf->setJPEGQuality(100);
$fileName = Mage::getConfig()->getOptions()->getMediaDir()."/pdf/Gutschein-v2.jpg";

$pdf->Image($fileName, 0, 0, 210, 266, 'JPG', '', '', true, 150, '', false, false, 1,  false, false, false);

if ($giftCard->getMailTo()) { 
$name = $this->helper('core')->escapeHtml($giftCard->getMailTo(), null);
}
if ($giftCard->getMailFrom()) { 
$from = $this->helper('core')->escapeHtml($giftCard->getMailFrom(), null);
}
$code=$giftCard->getCardCode();
$currency= Mage::helper('core')->currency($giftCard->getCardAmount(), true, false);

$pdf->MultiCell(80, 5, $name."\n", 1, 'J', 1, 1, 60, 102, true);
$pdf->MultiCell(80, 5, $from."\n", 1, 'J', 1, 1, 60, 123, true);
$pdf->MultiCell(80, 5, $currency."\n", 1, 'J', 1, 1, 60, 145, true);
$pdf->MultiCell(80, 5, $code."\n", 1, 'J', 1, 1, 60, 166, true);

$pdf->lastPage();
ob_start();
$pdf->Output('example_009.pdf', 'I');
ob_end_flush();

我可以在firefox中完美地看到pdf,但不能从我的电脑下载并打开它。 错误:pdf已损坏。

在互联网和谷歌浏览器中,我看不到PDF格式。

我不知道我做错了。 谢谢。

1 个答案:

答案 0 :(得分:0)

您可以通过以下步骤轻松地在magento中添加tcpdf。

第1步:here下载最新的tcpdf

步骤2:在magento的magento lib目录中创建目录 TCPDF (路径如/ lib / TCPDF)。 (如果没有创建目录的权限,那么从cPanel创建它)

第3步:在目录&中复制 tcpdf.php tcpdf.php 重命名为 TCPDF.php

第4步:复制 tcpdf_autoconfig.php 文件。同时复制字体&打开TCPDF.php并将类名更改为类TCPDF_TCPDF {folder

第5步:打开 TCPDF.php 并将类名更改为类TCPDF_TCPDF {

第6步:使用以下示例代码进行测试:

$tcpdf = new TCPDF_TCPDF();

//your htmls here
$html = '<h1> hello world </h1>';

$tcpdf->AddPage();

$tcpdf->writeHTML($html, true, false, true, false, '');

$tcpdf->lastPage();

$tcpdf->Output('report_per_route_'.time().'.pdf', 'I');

或在var / report中保存pdf文件

$fn = Mage::getBaseDir('base').'/var/report/report_'.time().'.pdf';
$tcpdf->Output($fn, 'F');