2017-09-25 10 views
0

内部参照番号を取り、バーコードとしてmailalertに追加したいと思います。Prestashop。 mailalertモジュールに注文バーコードを追加するには?

私はこのコード

<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> 

で、PDFの請求書に挿入することができますが、私は注文確認メール内に挿入したいと思います。 注文番号をバーコードに変換するにはどうすればよいですか? 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 IS 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> 

誰も私を助けてくださいことはできmodifiy必要がありますか?感謝

関連する問題