Prestashop 1.7.4.2-TCDPF在发票错误中生成条形码

时间:2018-12-18 10:45:52

标签: php tcpdf prestashop-1.7 invoice

我正在使用TCDPF生成发票中的条形码。因此,当我通过单击“订单”页面上的“查看发票”下载发票时,应该下载带有生成的条形码的发票。目前,我正在测试一个随机数。

在HTMLTemplateInvoice.php中,我添加了以下代码:

// Random number for testing
$barcodeobj = new TCPDFBarcode('1234567890123', 'C39');

// Assign to template
   // All other unnecessary variables not displayed
   'barcode' => base64_encode($barcodeobj->getBarcodePNG(1, 30, array(255,255,255))),
);

出于测试目的,我在invoice.addresses.tab.tpl中添加了以下代码

<img src="data:image/png;base64,{$barcode}>">

显示条形码。不幸的是,它是作为页面布置的,并且不是在发票中生成的。发票也不会下载。

Barcode generated as page

我正在使用Prestashop 1.7.4.2,并已升级到PHP 7.2。

1 个答案:

答案 0 :(得分:0)

我已经尝试过此代码

$barcodeobj = new TCPDFBarcode("123456789123", 'C39');       
$Barcode = $barcodeobj->getBarcodePngData(2, 40, array(0,0,0));

然后我创建了一个新的pdf:

$Barcode_pdf = new TCPDF('P', 'mm', 'A5', true, 'UTF-8', false);
$Barcode_pdf->SetMargins(7, 10.4, 8);
$Barcode_pdf->setImageScale(0.5);
$Barcode_pdf->AddPage();
$Barcode_pdf->Image('@'.$Barcode,'10','20','60' );
$Barcode_pdf->Output('Barcode.pdf', 'I')

如果需要,可以将其附加到电子邮件中,但将输出类型更改为“ S” :

$Barcode_attachment = array();
$Barcode_attachment['content'] = $Barcode_pdf->Output('Barcode.pdf', 'S');
$Barcode_attachment['name'] = 'Barcode.pdf'; // getting pdf file name
$Barcode_attachment['invoice']['mime'] = 'application/pdf';
$Barcode_attachment['mime'] = 'application/pdf';

,然后将$Barcode_attachment添加到您的电子邮件中。