显示PDF数据但未下载文件

时间:2016-12-02 16:26:54

标签: php pdf prestashop tcpdf prestashop-1.6

我想使用以下代码预览并下载订单发票pdf:

canonical xml sort

使用以下代码调用它: $ xmllint --c14n File1.xml > 1.xml $ xmllint --c14n File2.xml > 2.xml $ diff 1.xml 2.xml

我在浏览器控制台上打印了pdf数据但未下载。 enter image description here

如何操作该数据以下载pdf文件?

2 个答案:

答案 0 :(得分:1)

PrestaShop使用TCPDF。

以这种方式编辑generatePDF:

public function generatePDF($object, $template)
{
    $pdf = new PDF($object, $template, Context::getContext()->smarty);
    $pdf->Output('name.pdf', 'I');
}

答案 1 :(得分:0)

我们建议您创建一个单独的控制器来呈现PDF文件,并始终在新选项卡中打开该控制器。它将帮助您使用DOMPDF库获得单独的逻辑。

发票控制器如下(invoice.php)

include_once(_PS_MODULE_DIR_.'supercehckout/libraries/dompdf/dompdf_config.inc.php');

class SuperCheckoutInvoiceModuleFrontController extends ModuleFrontController
{
    public function initContent()
    {
                parent::initContent();
                $this->generateInvoice(ORDER_ID);
    }
}

注意:SuperCheckout是示例模块名称。

generateInvoice()函数将如下:

function generateInvoice($order_id)
{
        $dompdf = new DOMPDF();
        $html = utf8_decode(INVOICE_HTML);
        $dompdf->load_html(INVOICE_HTML);
        $dompdf->render();
}