ESC/POS で大きな画像を印刷する
以前 ESC/POS で画像を印刷していたとき、特定の条件で謎の文字化けした羅列が印刷されてしまい困っていた。
よく調べたところ、画像を送信するコマンドが許容するサイズを超えた画素データを送ってしまった時にそうなるようだった。
これを回避するためちょっとずつ送るようにする
実装
まずチャンクのサイズを決める
GS ( L <fn=112> で送れるデータの最大長は 65535 バイト。そのうちヘッダに 10 バイト取られるので、65525 バイト送れる。
あとは画像の幅から何行ぶん送るか計算してちまちま送り、都度 GS ( L <fn=50> でバッファから印刷すればよい
#escpos