2017-09-25 174 views
0

我想將我們的內部參考號碼作爲條形碼添加到mailalert。Prestashop。如何將訂單條形碼添加到mailalert模塊?

我可以插入到PDF發票,與此代碼

<tr> 
<td style="width: 17%"></td> 
<td style="width: 83%"> 

{assign var=black value=[0,0,0]}{assign var=white value=[255,255,255]} 
{assign var=stuff value=['position'=>'S', 'border'=>false, 'padding'=>4, 
'fgcolor'=>$black, 'bgcolor'=>$white, 'text'=>false, 'font'=>'helvetica', 
'fontsize'=>8, 'stretchtext'=>4]} 
{assign var=params value=TCPDF::serializeTCPDFtagParameters(array($order- 
>getUniqReference(), 'C39', '', '', 40, 15, 0.4, $stuff, 'N'))} 
<tcpdf method="write1DBarcode" params="{$params}" /> 

</td> 

,但我想的訂單確認郵件中插入。 如何將訂單號轉換爲條形碼?在mmy php/html中使用... 謝謝

回答

0

我認爲你在這裏有幾個選擇。由於我不知道PHP或Prestashop,我不能給你代碼,但我想提出一些想法。

條形碼字體

有條形碼字體,這將允許你嵌入條形碼爲普通文本。這裏的問題是您的確認電子郵件的收件人可能沒有安裝這些字體,所以如果您可以使用這個字體取決於具體情況。

  • 如果你知道的確認電子郵件提前接受者(如經常與一組有限的客戶的B2B的情況下),你最終也可以指導用戶安裝所需的字體。

  • 如果您正在處理未知收件人,您可以嘗試將字體嵌入到HTML中。我知道現在大多數瀏覽器都正確處理嵌入字體,但我不確定電子郵件客戶端是否也是如此。它可能取決於收件人使用的電子郵件客戶端。

鑑於此,使用條碼字體將是理想的從視圖(重量輕,速度快,自然的文本以某種方式)技術的角度,但不幸的是,總會有不有安裝的字體誰也人或者誰正在使用過時的電子郵件客戶端。

條形碼作爲圖片

我敢肯定,有庫在那裏它可以生成條碼爲圖像。幾乎所有的電子郵件客戶端都能正確處理嵌入的圖像,並且能夠以內聯方式顯示它們,所以這是我可能採用的路線。

如果您絕對找不到這樣的庫,您仍然可以生成只包含條形碼(來自您的問題,我們知道您能夠這樣做)的PDF,然後將該PDF轉換爲圖像。我個人知道有很多庫可以做後者。

然後將該圖像作爲嵌入圖像嵌入到HTML電子郵件中。

其他解決方案

我深信,有對這個問題有更多的解決方案。例如,您可能可以使用某個庫以SVG格式輸出條形碼。大多數瀏覽器都正確顯示內聯SVG,但與嵌入字體一樣,我不確定電子郵件客戶端。您可能會遇到與其他解決方案/格式類似的問題。

0

我發現轉換訂單號條碼圖像解決方案與此腳本

https://www.codeproject.com/Articles/146336/Creating-a-Code-39-Barcode-using-HTML-CSS-and-Java

但我有問題,將其插入上Mailalert郵件內。

我試圖插入腳本直接郵件,但probabily就是應該modifiy mailalert.php

<script type="text/javascript" src="code39.js"></script> 
    <style type="text/css"> 
    #barcode {font-weight: normal; font-style: normal; line-height:normal; sans-serif; font-size: 12pt} 
    </style> 
</head> 
<body> 


Input : {order_name}<br /> 


<div id="externalbox" style="width:5in"> 
<div id="inputdata" >{order_name}</div> 
</div> 


<br /> 


<script type="text/javascript"> 
/* <![CDATA[ */ 
    function get_object(id) { 
    var object = null; 
    if (document.layers) { 
    object = document.layers[id]; 
    } else if (document.all) { 
    object = document.all[id]; 
    } else if (document.getElementById) { 
    object = document.getElementById(id); 
    } 
    return object; 
    } 
get_object("inputdata").innerHTML=DrawCode39Barcode(get_object("inputdata").innerHTML,0); 
/* ]]> */ 
</script> 

誰能幫助我嗎?謝謝