Zend_pdf文件抛出Magento的错误由于HTML内容存在(Zend_pdf document

2019-07-31 07:38发布

在magento1.7,只写以下在app \代码\核心\法师\收藏\助手\ Data.php(Data.php)文件中的行

  public function getpdf()
     {
     $pdf = new Zend_Pdf(); 
    $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);
    for($i=0; $i<5; $i++) {
    $page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
    $page->setFont($font, 24) ->drawText('Hello World page '.$i, 72, 720);
    $pdf->pages[] = $page;
     }
   $pdfString = $pdf->render();
   header("Content-Disposition: attachment; filename=myfile.pdf");
   header("Content-type: application/x-pdf");
   echo $pdfString;
   }

调用此函数

  <?php  Mage::helper('wishlist')->getpdf();?>

在应用程序\设计\前端\基\默认\模板\心愿\ view.phtml(view.phtml)文件之前<div class="my-wishlist">线。 现在运行在浏览器和登录Magento的。 然后点击我的心愿链接,它会显示在downlods文件夹myfile.pdf。 当它打开时,它抛出错误message.Now更换这些线路

   $pdfString = $pdf->render();
   header("Content-Disposition: attachment; filename=myfile.pdf");
   header("Content-type: application/x-pdf");
   echo $pdfString;

   $pdf->save("mydoc.pdf");

然后在magento1.7文件夹打开mydoc.pdf,它的开通对PDF文档的每一页没有错误,并显示“Hello World”。 现在比较这两个文件“myfile.pdf”,并在文本编辑器“mydoc.pdf”,你会看到的HTML内容存在于“myfile.pdf”。 我的问题是我不能够找到一种方法,从生成的PDF文档中删除这些HTML内容。 任何人可以帮助我解决这个问题。 请注意,上面的代码只是什么,我做了一个笔画演示。

Answer 1:

还有就是皮肤猫不止一种方法。 我想你想的wishist的一个很好的PDF。 考虑使用wkhtml2pdf做出来。 这将涉及造型在页面的打印版本 - 也就是获取用于添加CSS如果媒体=打印,这与wkhtml2pdf的情况。

wkhtml2pdf的reslts有很大的比什么“手绘”与Zend PDF的东西更好。

要开始安装wkhtml2pdf,只需在命令行中运行,与选择摆弄直到它出来像样的一半。

唯一的缺点是wkhtml2pdf你对分页无法控制。



Answer 2:

在您的末尾添加该代码Mage_Wishlist_IndexController::indexAction()

$sResponse = $this->getResponse()->getBody();
$sNewResponse = strstr($sResponse, '%PDF-1.4');
$this->getResponse()
    ->clearBody()
    ->appendBody($sNewResponse);

右后方$this->renderLayout()调用。



Answer 3:

为了从Magento的发送PDF字符串,并将它呈现在你需要做以下的浏览器:

$pdfString = $pdf->render();
$this->getResponse()->setHeader('Content-Type', 'application/pdf');
$this->getResponse()->setBody($pdfString);


文章来源: Zend_pdf document throws error in magento due to presence of html contents