2012-03-08 18 views
-1

私はHengstler C56サーマルレシートプリンタを持っています。私は長い間、プリンタでロゴを印刷しようとしていました。しかし、私はそれがどのように失敗しているのか理解できません。Cを使用してレシートプリンタで画像を印刷

印刷しようとしている画像は、* .bmpタイプと50x50です。プリンタAPIはC言語で記述され、プリンタはunsigned charバイト配列を書き込みバッファとして受け取ります。

これを行うためのアイデアはありますか?

+0

あなたを持っています[お使いのプリンタのマニュアル](http://www.hengstler.com/en/products/shop.php?catID=1008)をお読みください。また、多言語ソースファイルを作成しようとしないでください:それは不必要なトラブルの多くです。 – pmg

+0

[Emulation Command Set Manual](https://www.telpar.com/files/drivers_support/manuals/D-684-017-C56-EmulationCommandSet_31-Mar-2009.pdf)を確認しましたか?すべての必要なコマンドがリストされています。 – nabulke

+0

こんにちは@pmg、私は彼らの全ドキュメントを読んで、私はそれらも郵送しました。しかし、それからの助けはありません。ここで誰かが同じプリンタ用にすでにプログラムされていることを願っています。多言語のソースはどういう意味ですか? – san

答えて

0

このプリンタでテキストを印刷するには、ASCII文字をRS-232またはUSB(USB経由でRS-232ですか - 私はすべてを読み取るわけではありません)で送信し、セクション3.1.32 " GS & + [m] + [x] + [y1] + [y2] + [d1] .. [dn]イメージデータ "through"の登録3.1.34 GS '+ [m] + [n] 「C-56 EMULATION COMMAND SET」文書の「データ」をロゴイメージを適切にエンコードし、デバイスのフラッシュメモリに記録して印刷します。いくつかの簡単な画像から始めましょう。

+0

こんにちはアレックス、プリンターはUSBポート経由で接続されています。私は通常のテキストファイルを印刷することができます。しかし私は画像をエンコードするのに悩まされています。私が読むことができる明確な文書やサンプルはありますか? – san

+1

あなたが持っているドキュメンテーションに基づいて、エンコードの可能な、論理的な単純な方法が存在し、単に実験してデータがどのように変わるのかを見てみませんか?つまり、試行錯誤はプログラマーのパンとバターです。 –

1

レコードイメージ#1:ダブル幅とダブル高さ

fwrite("\x1D\x26\x01\x01\x08\x00" "\x00\x66\x66\x00\x00\x42\x3C\x00", 
     1, 14, printer_stream); 

印刷イメージ#1:

fwrite("\x1D\x27\x01\x03" 
     1, 4, printer_stream); 

私は素敵なデータに何かを作ってみました

 
bit 7 6 5 4 3 2 1 0 
    .. .. .. .. .. .. .. .. 00 
    .. ## ## .. .. ## ## .. 66 
    .. ## ## .. .. ## ## .. 66 
    .. .. .. .. .. .. .. .. 00 
    .. .. .. .. .. .. .. .. 00 
    .. ## .. .. .. .. ## .. 42 
    .. .. ## ## ## ## .. .. 3C 
    .. .. .. .. .. .. .. .. 00 
+0

素敵な仲間。簡単な疑問がある、 'printer_stream'はファイルポインタか開いているプリンタ番号ですか? – san

+0

この例では、 'printer_stream'は書き込み/追加用に開かれた' FILE * 'です。 'FILE * 'を使ってプリンタに書き込めない場合は、コードを修正する必要があります。 – pmg

関連する問題