ESC/Pでグラフィック印刷

このQ&Aのポイント
  • ESC/Pコマンドを使用してグラフィックを印刷する方法について知りたいです。
  • 最近のプリンタにはコマンドの解説書がなく、ESC/Pの解説書の価格も高いため、専用のプログラムを使用してグラフィックを印刷する方法を教えてください。
  • 8ドットグラフィックモードと24ドットグラフィックモードでは印刷サイズが合わないため、16ドットグラフィックモードを使用したいのですが、その方法を教えてください。インターネットでの検索では解説のページが見つからないため、古いマニュアルを持っている方にアドバイスをお願いします。
回答を見る
  • ベストアンサー

ESC/Pでグラフィック印刷

ESC/Pのコマンドでグラフィックを印刷するにはどのようにコマンドを使えばいいでしょうか。最近のプリンタにはコマンドの解説書がついておらず、ESC/Pの解説書は買うとなると¥5000と法外です。 専用のプログラムを使用するのでプリンタドライバも使えません。調べたところでは、8ドットグラフィックモードというのと24ドットグラフィックモードというのがあるようなのですが、8ドットでは大きすぎ、24ドットでは小さすぎといった感じです。16ドットというのがあればちょうどよさそうなのですが、ないのでしょうか?インターネットもさんざん検索したのですが、解説のページは見つかりません。 どなたかご存知の方、古い(失礼)マニュアルをお持ちの方お教え願えませんか。

  • dabo
  • お礼率61% (44/72)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

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

dabo
質問者

お礼

ありがとうございます。 やはり16ドットは無いのですね。 下の方のお礼にも書きましたが、用途は800×600ドットの画面をハードコピーとして出力したいということです。縦横比がほぼ正しくなるようにして印刷すると結構小さくなります。なにかいい手はないかと考え中です。

その他の回答 (4)

回答No.5

>縦横比がほぼ正しくなるようにして印刷すると結構小さくなります。 >なにかいい手はないかと考え中です。 それなら、印刷字にドットデータを拡大してプリンタに送るしかないですね。 つまり、24ビットモードを使って印刷するけど画面上の横1縦12ドットをプリンタの横2縦24ドットに拡張しながら転送します。 さらにもう少し大きく印刷したい場合は、画面上の横1縦8ドットをプリンタの横3縦24ドットに拡張します。 実際、このようなハードコピーツールを10年前に開発しました。

noname#11476
noname#11476
回答No.3

ESC/P の他にも ESC/P スーパーとかESC/Pageとかありますよね。 ご存じのようにEPSONの独自規格で(他のメーカのプリンタで対応しているのは、単にEPSONから使用許諾してもらっているだけの筈です)、最近の仕様を知るにはEPSONに問い合わせるしかないのではないでしょうか。 ご確認済みと思いますが、使われるプリンタによってもどのコードが対応しているか違いがありますよね。 古くからある標準的なものならばどれでも使えるでしょうけど、特殊な物になるとプリンタが対応しているかどうかも調べる必要があると思いますよ。 (PMシリーズなんてESC/Pは搭載していないようだし、、、、) 私の手元には、ドットインパクト時代のESC/Pマニュアルがありますが、当然16ドットはありません。 (解像度が荒いからねぇ。) 力技で書くのであれば、24bitグラフィックで、うち16bit分を使うのでしょうね。 要するに、一度印刷イメージの画像をメモリに展開して、24bit分ずつプリンタに送ればよい。 その昔の常套手段です。 では。

dabo
質問者

お礼

ありがとうございます。プリンタは変わる可能性があるのでなるべく多くのプリンタで使えるということでESC/Pにしています。当然手元のプリンタは対応しています。 用途は800×600ドットの画面をハードコピーとして出力したいということです。800を24で割ると33ほどになりますが、A4用紙に出すと結構小さくなります。かといって隙間を空けては分割された画面になってしまいますので、ちょっと考えているところです。

  • quenista
  • ベストアンサー率28% (122/425)
回答No.2

グラフィック印字は、余りやった覚えが無いのですが...。 取りあえず、 ESC S:8Bit Dot列対応Graphic Mode ESC I:16Bit Dot列対応Graphic Mode ESC J:24Bit Dot列対応Graphic Mode となっている様でが、これの事ですか? 但し、このESCコードがお手持ちのプリンタで対応してるかは、マニュアル等で調べて見て下さい。 私の手元にも、ESC/Pのコマンドが載ってる資料が幾つか在りますので、又必要なら私の方でも調べますよ。

dabo
質問者

お礼

ありがとうございます。お答えいただいた分は、ESC/PではなくPC-PR(NEC)系の制御コードだと思われます。ESC/PではESC * で始まるみたいです。

  • yan2014
  • ベストアンサー率39% (414/1046)
回答No.1

こんな回答でお役に立つかどうか分かりませんが、ESC/Pなんて懐かしい文字が有りましたので・・・。 私が最初にPCに触れた時に購入したCanon BJ-330プリンタ(ESC/Pエミュレーション)の取説(正確にはコントロールカードの取説)を見ました。 取説の約半分が「制御コードによるプリンタの制御」と言う項目でいろいろ出ていますが・・・、16ドットはありません。8or24でした。 ESC/Pのコマンドを使用することもなかったためそれ以上の事は分かりかねますが、悪しからず。 こちらでお役に立てることが有りましたら補足要求入れてください。

dabo
質問者

お礼

ありがとうございます。やはりないのでしょうか。

関連するQ&A

  • LP-S2200にESC/Pモードで印刷したい

    LP-S4000からESC/Pモードを使って印刷していましたが、 プリンターをLP-S2200に変えたら、文字化け印刷や 何も印刷されない状態になります。 LP-S2200からESC/Pモードを使って印刷する方法を 教えてください。 OSはWindowsServer2008です。 ※OKWAVEより補足:「EPSON社製品」についての質問です。

  • ESC/Pで印刷開始位置を変更したい

    ESC/P制御コードで印刷開始位置(上にズラしたい)を変更したいのですが、ご存知の方はいらっしゃますでしょうか プリンタはLP-S310です ※OKWAVEより補足:「EPSON社製品」についての質問です。

  • エプソンVP-930のESC/Pの操作について

    VBでPrinterオブジェクトを仕様してエプソンのVP-930のプリンターから出力するプログラムを作成しているのですが、どうしてもできない表示があったのでESC/Pに変更しようと思っています。 そこでESC/Pのサンプルや説明があるサイトをご存知の方がいましたら教えて頂けないかと思っています。よろしくお願いします。 先ほどのどうしても出来なかったことは、フォントサイズが24のとき文字の高さだけを2倍にして表示したいのです。 Printerオブジェクトではできないように思えたので投稿しました。もしできるようでしたら教えてください。

  • プリントアウト/ドットの羅列のみ印刷される

    プリンタ:EPSON MJ-5100C OS  :Win2000 ドライバ:Win2000付属のMJ-5100Cドライバ      (EPSON MJ-5100C ESC/P R for Windows 2000) 上記の環境で、各種アプリからプリントアウトしてみても、 内容が印刷されず、ただドットの羅列、又は濃淡のある横線しか プリントアウトされません。 プリンタのケーブルを抜いて、マニュアルに書いてある通りの セルフチェックを行ったところ、漢字はきちんと出、改行もされ、 特に問題はなさそうです。 ヘッドのクリーニングも、カラー・白黒共に何度も行いましたが、 事態は変わらずでした。 ドライバは間違っていないとは思うのですが、症状的には プリンタドライバを間違ったとき(例えばPS用なのにESC/P用にしてしまった ような)のような出力になっております。 宜しく解決法をご教授下さい。。お願い致します。

  • ESC/Pモード対応のプリンタ機種を教えて

    ESC/Pモードに対応しているプリンタには、 どのような機種がありますか。 ※OKWAVEより補足:「EPSON社製品」についての質問です。

  • ESC/Pのテキスト印字の制御コードについて

    こんにちは。 ドットインパクトプリンターに直接印刷する処理を作ります。 プリンタ制御コードはESC/P準拠です。 文字のデザインの制御コードに、ANK文字用と漢字用があるようですが、 出力する文字がANKかどうかを区別して、制御コードを使い分けなければならないのでしょうか? この制御コードの使い分けを避けるためには、ANK文字を全角に変換して、 全てを漢字として漢字用制御コードで扱うことになるのでしょうか? よろしくお願いいたします。

  • esc/pのプログラミングの仕方がわかりません

    EPSON VP-4300を使っていますが、印刷の細かい設定をしたいと思っています、マニュアル等を見ると、ESC/P を利用すれば出来ると思うのですが、使い方・設定の仕方がまるでわかりません。 当方のOSはWindows10で、今回考えているのは、Basic98 for Windowsを使って、Basic言語でプログラミングしたいと思っております。どうか、ご教示下さい。 ※OKWaveより補足:「EPSON社製品」についての質問です。

  • VP-F2000 ESC/P 横印刷が縦に印刷

    VP-F2000 ESC/P で連票印刷時 PDF EXCEL の横印刷が縦に印刷される 余白 PAGE 等設定してあるPDFなので 向きが変わると困る <利用環境> PC WIN10 ネットワークプリンタ ※OKWAVEより補足:「EPSON社製品」についての質問です。

  • 5P以上だと印刷できない

    宜しく御願いします。 Excelのマクロで印刷を行うようにしていますが、4Pまでだと印刷できるのですが、5P以上だとExcelが異常終了して、再起動します。 デバッグで動かすと5P異常でも印刷されます。 データ量の問題なのでしょうか? PCは最近購入したもの、プリンタは古いドットプリンタです。 どなたか分かる人がいたら御願いします。

  • ESC/Pで漢字の印字について

    ESC/Pモードの文字列を生成して出力して印字しているのですが、漢字の部分が 文字化けのようになってしまいます。 環境は、 windows XP からlpt1出力でEPSON PLQ-20S にESC/Pを送ってテストしています。 PLQ-20Sをダンプモードにすると、送ったデータのみ生データとして行っています。 また、半角のA-Zや数字等はちゃんと印字されます。 FS(0x1c) & に続いてJISに変換した漢字「日」(0x46 0x7c) そして FS(0x1c) . そして改行コード を送っています。 ダンプを取ると、ちゃんとプリンターにデータが来ています。 0x1c 0x26 0x46 0x7c 0x1c 0x2e 0x0d 0x0a ですが「日」のところは、FS &がないときと同じ文字化けに似た印字になるので、反応していないようです。 ESC @ で初期化してからにしても同様です。 他に手順が必要なのでしょうか? 一通りのダンプ、データを教えて頂けますでしょうか? よろしくお願いします。

専門家に質問してみよう