- ベストアンサー
ESC/Pでグラフィック印刷
- ESC/Pコマンドを使用してグラフィックを印刷する方法について知りたいです。
- 最近のプリンタにはコマンドの解説書がなく、ESC/Pの解説書の価格も高いため、専用のプログラムを使用してグラフィックを印刷する方法を教えてください。
- 8ドットグラフィックモードと24ドットグラフィックモードでは印刷サイズが合わないため、16ドットグラフィックモードを使用したいのですが、その方法を教えてください。インターネットでの検索では解説のページが見つからないため、古いマニュアルを持っている方にアドバイスをお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ESC/Pには16ドットのモードは有りません。 8ドットモード、24ドットモード共に横方向の密度が違うモードがあります。 マニュアルのサンプルプロを転記します。各モードで横100ドットを印刷します。 グラフィックの縦をつなぐに場合は、300行の改行幅指定を行います。 100 ' Bit Image 110 LPRINT CHR$(27);"@"; 120 N=100 130 FOR I=1 TO 11 140 READ M 150 LPRINT M;CHR$(13);" "; 160 LPRINT CHR$(27);"*";CHR$(M); 170 LPRINT CHR$(N MOD 256); 180 LPRINT CHR$(INT(N/256)); 190 FOR J=1 TO N 200 LPRINT CHR$(&HFF); 210 IF M<7 THEN GOTO 230 220 LPRINT CHR$(&HFF);CHR$(&HFF); 230 NEXT J 240 LPRINT 250 NEXT I 260 END 270 DATA 0,1,2,3,4,6.32,33,38,39,40 290 ' 24/180インチ改行設定 300 LPRINT CHR$(27);"3";CHR$(24);
その他の回答 (4)
- Hayashi_Trek
- ベストアンサー率44% (366/818)
>縦横比がほぼ正しくなるようにして印刷すると結構小さくなります。 >なにかいい手はないかと考え中です。 それなら、印刷字にドットデータを拡大してプリンタに送るしかないですね。 つまり、24ビットモードを使って印刷するけど画面上の横1縦12ドットをプリンタの横2縦24ドットに拡張しながら転送します。 さらにもう少し大きく印刷したい場合は、画面上の横1縦8ドットをプリンタの横3縦24ドットに拡張します。 実際、このようなハードコピーツールを10年前に開発しました。
ESC/P の他にも ESC/P スーパーとかESC/Pageとかありますよね。 ご存じのようにEPSONの独自規格で(他のメーカのプリンタで対応しているのは、単にEPSONから使用許諾してもらっているだけの筈です)、最近の仕様を知るにはEPSONに問い合わせるしかないのではないでしょうか。 ご確認済みと思いますが、使われるプリンタによってもどのコードが対応しているか違いがありますよね。 古くからある標準的なものならばどれでも使えるでしょうけど、特殊な物になるとプリンタが対応しているかどうかも調べる必要があると思いますよ。 (PMシリーズなんてESC/Pは搭載していないようだし、、、、) 私の手元には、ドットインパクト時代のESC/Pマニュアルがありますが、当然16ドットはありません。 (解像度が荒いからねぇ。) 力技で書くのであれば、24bitグラフィックで、うち16bit分を使うのでしょうね。 要するに、一度印刷イメージの画像をメモリに展開して、24bit分ずつプリンタに送ればよい。 その昔の常套手段です。 では。
お礼
ありがとうございます。プリンタは変わる可能性があるのでなるべく多くのプリンタで使えるということでESC/Pにしています。当然手元のプリンタは対応しています。 用途は800×600ドットの画面をハードコピーとして出力したいということです。800を24で割ると33ほどになりますが、A4用紙に出すと結構小さくなります。かといって隙間を空けては分割された画面になってしまいますので、ちょっと考えているところです。
- quenista
- ベストアンサー率28% (122/425)
グラフィック印字は、余りやった覚えが無いのですが...。 取りあえず、 ESC S:8Bit Dot列対応Graphic Mode ESC I:16Bit Dot列対応Graphic Mode ESC J:24Bit Dot列対応Graphic Mode となっている様でが、これの事ですか? 但し、このESCコードがお手持ちのプリンタで対応してるかは、マニュアル等で調べて見て下さい。 私の手元にも、ESC/Pのコマンドが載ってる資料が幾つか在りますので、又必要なら私の方でも調べますよ。
お礼
ありがとうございます。お答えいただいた分は、ESC/PではなくPC-PR(NEC)系の制御コードだと思われます。ESC/PではESC * で始まるみたいです。
- yan2014
- ベストアンサー率39% (414/1046)
こんな回答でお役に立つかどうか分かりませんが、ESC/Pなんて懐かしい文字が有りましたので・・・。 私が最初にPCに触れた時に購入したCanon BJ-330プリンタ(ESC/Pエミュレーション)の取説(正確にはコントロールカードの取説)を見ました。 取説の約半分が「制御コードによるプリンタの制御」と言う項目でいろいろ出ていますが・・・、16ドットはありません。8or24でした。 ESC/Pのコマンドを使用することもなかったためそれ以上の事は分かりかねますが、悪しからず。 こちらでお役に立てることが有りましたら補足要求入れてください。
お礼
ありがとうございます。やはりないのでしょうか。
お礼
ありがとうございます。 やはり16ドットは無いのですね。 下の方のお礼にも書きましたが、用途は800×600ドットの画面をハードコピーとして出力したいということです。縦横比がほぼ正しくなるようにして印刷すると結構小さくなります。なにかいい手はないかと考え中です。