6

HTML5キャンバスベースの署名/描画ボックスの作成に取り組んでいます。現在、キャンバスをPNGとしてサーバーに保存していますが、base64文字列をデータベースに簡単に保存できます。ここで問題となるのは、印刷されたレシートに署名をどのように含めるかです。

現在、画像の印刷を処理するために^ GFフィールドを使用していますが、問題は、PNGファイルをプリンター用にどの形式にする必要があるかです。Base64でエンコードされた文字列を単純に含めることはできますか?または、ASCII 16進文字列に変換する必要がありますか?それとも、最初にそれをビットマップに変換する必要がありますか?

この特定のプリンターがPNGファイルを処理するかどうか、またはそれらを送信する方法についてのドキュメントを実際に見つけていません。私が見つけた唯一の情報は、それをB64またはZ64ビットマップとして送信することですが、どこにでもpngを送信することへの参照があります。

4

1 に答える 1

6

送信する必要のあるデータはPNGではありません。画像を取得して白黒に変換し、データをプリンタに送信する必要があります。たとえば、40x50pxの画像がある場合は、その画像を取得し、色情報を取り除いて、合計2000ビットのデータを取得します。次に、ZPLを^ GFB、250,250,5、{2000ビットのデータ}のように送信します。

私は250バイトを得るために2000ビット/8(ビット/バイト)を取ることによって250を得ました。40を8で割ると5になります。行数は自動的に計算されます。

Zebraプリンターを扱うときに役立つと思うのは、ビットの観点から考えることです。すべてのグラフィックはビットレベルで行われます。

送信する画像は、プリンタのDPIに応じてサイズが変わることに注意してください。203 DPIプリンターは、私の例を約.2inx.25inで表示します。300 DPIプリンターでは、約.13inx.16inで表示されます。これは、プリンターが生データをフォーマットに配置するだけであり、ピクセル数が画像のドット数であるためです。

この助けを願っています!

参考資料:[1] ZPLマヌエル(208ページ)(^ GFページ2)。

于 2012-03-15T19:44:53.313 に答える