質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Q&A

解決済

4回答

1526閲覧

bat(dosコマンド)でサーマルプリンタ(ESC/POS)の印字がしたい

yagiyogi

総合スコア5

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

0グッド

0クリップ

投稿2019/12/10 05:47

エプソンのHPにもネット上にもサンプルコードがなく基本的な部分がわかりません。

すみません基本的な部分が分かりませんので、一通りの流れがわかるサイトなどありましたら、ご教授お願いいたします。

主にわからないのは以下の点です。ESC/POSコマンド自体のサンプルコードはありましたので、そちら自体のコーディングはわかりそうです。
①印字処理の前に接続処理(もしくはプリンタ指定)があると思いますが、どのようにするのでしょうか?
②「GS」や「ESC」などのESC/POSコマンドですがbatファイルに直接書いて認識するのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

自己解決

「TM-T20Ⅲ」の仕様をメーカーに問い合わせた所、Windows用のプリンタドライバを入れればエクセル、ワードからでも普通に印刷出来るとの事でしたので今回はエクセルVBAで作ることにしました。
(一昔前のプリンターはわかりません)

上記方法ですとプリンタがデバイスとして認識できていればシリアルでもUSBでも関係なく印刷出来ますしQRコード等の画像や文字フォント変更も簡単に実装できます。

なお皆さんのご回答の通りDOSプロンプトでESC/POSコマンドを使うのは不可との事でした。

ありがとうございました。

投稿2019/12/24 08:59

編集2019/12/24 09:03
yagiyogi

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pepperleaf

2019/12/24 12:28

DOSプロンプトと質問にあった時、ドライバでなく、他の方法でやりたいと勝手に思い込んでたのが間違いって事ですね。 今時のプリンタはほぼ、例外なく、ドライバ使っての印刷が基本です。(当たり前過ぎて、確認忘れた、、、)
guest

0

②「GS」や「ESC」などのESC/POSコマンドですがbatファイルに直接書いて認識するのでしょうか?

GS, ESC は、バイナリコードのテキスト表記です。
ESC = 0x1B, GS = 0x1D, ....

直接、書いたら、"ESC"とか、"GS" の文字になるだけです。

まず、プリンタが受け付けるものは、バイナリデータという事を認識しましょう。
それが分からないと、道のりは長いです。

まあ、ESC/POSコマンドを書き込んだ バイナリファイル(Binaryです!) をプリンタにどう送るかです。 確か、TCP/IP だったら、Port 9100 で送れば、OK ?
その場合は、ftpで送りましょう。
この辺が分からないようだと、道のり長しです。
最近のプリンタだと、スペシャルコマンドのみ OKなんての多いようだし、、です。
なお、USBで送る方法は、一般的には無いようです。(Windowsの場合)

エプソンのHPにもネット上にもサンプルコードがなく

もう、メーカーも一般的手順を示す事が出来なったのではないかと思います。
(LPTは無いし、COMx: はほとんどのPCに無いし、USBは難しすぎ、、)

投稿2019/12/10 12:10

pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yagiyogi

2019/12/24 08:54

ご回答ありがとうございます。メーカーからの回答で自己解決しました。
guest

0

この質問が参考になりませんか。
PRINTコマンドを使うそうな。

投稿2019/12/10 06:50

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttyp03

2019/12/10 06:51

ああ、ごめんなさい。 解決はしていなかったようですね。 でも試してみる価値はあり。
yagiyogi

2019/12/10 08:48

ご回答ありがとうございます。 それ調べて出てきましたがレシートプリンタの場合、通常のプリンタとは違うようでした。
pepperleaf

2019/12/10 12:52

> レシートプリンタ I/F および、コマンド(ESC/Pos)が違うだけ、、と思う。
yagiyogi

2019/12/24 08:55

ご回答ありがとうございます。メーカーからの回答で自己解決しました。
guest

0

プリンタのデバイス名をまず調べましょう
おそらく、LPT1 とかの名前になってますんで、そいつに対して出力すればいいです

ああ、シリアル・ポート対応のものなら、COM1 とかそういうデバイス名になり、通信設定が必要となります

投稿2019/12/10 05:53

編集2019/12/10 05:55
y_waiwai

総合スコア87749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yagiyogi

2019/12/10 06:04

ご回答ありがとうございます。プリンタのデバイス名は「TM-T20Ⅲ」になります。LANポートかUSBのどちらかでの接続になります。 すみません基本的な通信方法がわかりませんので、それをどうやって指定するかわかりません。サンプルがありましたら出来ると思います。
y_waiwai

2019/12/10 06:10

Windowsプリンタとして使うものなら、コマンドプロンプトからは無理じゃないかと思いますねー
yagiyogi

2019/12/10 08:47

メーカーにも問い合わせ中ですが確かにコマンドプロンプトからはなさそうです。VC#,VBでは出来そうですが
y_waiwai

2019/12/10 09:34

まあ、C#ででも標準入力からプリンタへ送るコード書いてそれを介してやるかですね
Bull

2019/12/10 10:23

ESC/POS を検索すると、ESC/P の亜種のようなので、デバイス名がわかっていれば、プリンタをオープンして、WritePrinter() 関数でできそうですね。
pepperleaf

2019/12/10 12:13

問題は、どうプリンターに送るか? ではないでしょうか。 LPT?, COM? or ....
Bull

2019/12/10 12:29

以前 (Windows XP の時代) やった時は、OpenPrinter() でプリンタをオーブンして、WritePrinter() で直接プリンタにデータを送りました。ESC/P のプリンタはそれで印字できました。 現在の多くのプリンタは GDI プリンタなのでこの方法では無理ですが、エプソンのシリアルプリンタならできそうな気がします。
pepperleaf

2019/12/10 12:32

> エプソンのシリアルプリンタなら はたして今もそうか? 大半が、ドライバ前提となってる気がしてます。 そもそも I/F は? (USBは、もうダメ)
Bull

2019/12/10 12:33

書き忘れましたが、漢字コードなども自前で変換しなければなりません。多分カナや漢字のコードは JIS だったと思います。 探せば当時作った、サンプルソースが残っているかもしれません。
Bull

2019/12/10 12:40

ドライバはないとダメです。 プリンタがデバイスとして登録されているならば、ドライバはインストールされているのではないかと。 I/F は何でもいいはずです。それはドラバーの仕事なので、データさえ送れれば I/F は問わないはずです。 当時使っていたのは、パラレル(セントロニクス)でしたが、プログラムから直接プリンタポート (PRN: LPT:) などを開いていたわけではないです。あくまでも Windows のプリンターデバイスを開いていました。 USB 接続したプリンタを使ったことはないので、絶対にできるはずとまでは言えませんが。
yagiyogi

2019/12/24 08:56

ご回答ありがとうございます。メーカーからの回答で自己解決しました。
y_waiwai

2019/12/24 08:58

できればその解決法を自己解決の回答にでもして書いてくれると、あとの人たちの参考になると思います #私も知りたいところです
yagiyogi

2019/12/24 09:00

タイムラグがありましたが自己解決で書き込みました。すみません書いてる途中でした。
y_waiwai

2019/12/24 09:02

ああ、すみません。 ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問