0

我必须在 pdf 文件中打印购物车内容并下载。

我尝试了一些使用 pdfinvoicecontroller.php 的代码

  1. 我创建了新的控制器 - controllers/front/CartprintController.php

    类 CartprintControllerCore 扩展 FrontController { protected $display_header = false; 受保护的 $display_footer = false;

        public $content_only = true;
    
    protected $template;
    public $filename; 
    
    public function postProcess()
    { 
    if (!$this->context->customer->isLogged() && !Tools::getValue('secure_key'))
    Tools::redirect('index.php?controller=authentication&back=cartprint'); 
    } 
    
    public function display()
    {   
          $displayproducts = $this->context->cart->getProducts();   
    
    $pdf = new PDF($displayproducts, PDF::TEMPLATE_INVOICE_CART, $this->context->smarty, $this->context->language->id);
    
    $pdf->render(); 
    } 
    public function getTemplate()
    { 
    $template = _PS_THEME_PDF_DIR_.'/cartprint.tpl'; 
    
    return $template;
    } 
    }
    
  2. 添加

    const TEMPLATE_INVOICE_CART = '购物车';

在 classes/pdf/PDF.php 中的行

3.然后在pdf/cartprint.tpl中创建了一个HTML模板文件

<table id="cart_summary" class="std">
<thead>
<tr>
<th class="cart_product first_item">{l s='Product'}</th>
<th class="cart_description item">{l s='Description'}</th>

<th class="cart_unit item">{l s='Unit price'}</th>
<th class="cart_quantity item">{l s='Qty'}</th>
<th class="cart_total item">{l s='Total'}</th>

</tr>
</thead>
{foreach  $displayproducts  item=prodpef name=prodpef }
<tr>
<td class="cart_product first_item">{$prodpef.name}</td>
<td class="cart_description item">{$prodpef.description_short}</td>

<td class="cart_unit item">{$prodpef.price}</td>>
<td class="cart_quantity item">{$prodpef.cart_quantity}</td>>
<td class="cart_total item">{$prodpef.total}</td>> 

</tr>
{/foreach}

</table>

4.在购物车页面我创建了一个链接

<a href="{$link->getPageLink('cartprint', true, NULL)}" title="{l s='Invoice'}" class="_blank"><img src="{$img_dir}icon/pdf.gif" alt="{l s='Invoice'}" class="icon" /></a>

但我仍然没有得到 pdf 输出。

有什么帮助吗?

4

1 回答 1

0

首先,最好覆盖 PDF 类,其次您需要在 classes 目录中创建一个 HTMLTemplateCartPrint.php 文件或覆盖 classes 目录以生成 pdf 文件。

此致。

于 2013-08-14T05:23:07.647 回答