このQ&Aは役に立ちましたか?
自由な長さのラベルをプログラムしたい
2023/10/18 06:29
- TD-4100Nに長尺ロール紙RD102mmをセットして印刷長さに応じたページ長さで自動カットするプログラムを作成したいです。
- USB接続でのページ長変更が上手く行かず、RS232C経由のESC/Pを試していますが、メディア長がゼロのままで印刷できません。
- Windows10のVisual Studio 2017のC#でプログラムを書いています。アドバイスを頂けると助かります。
自由な長さのラベルをプログラムしたい。
2023/06/25 18:46
■製品名を記入してください。
【TD-4100N】
■どのようなことでお困りでしょうか?
相談したいこと、トラブルに至った経緯、試したこと、エラーなどを教えてください。
【TD-4100Nに長尺ロール紙RD102mmをセットして印刷長さに応じたページ長さで自動カットするプログラムをwindows10 Visual studio 2017のC#で書こうとしています。
当初 USB接続でWindowsプリンタドライバのページ長変更を試みましたが上手く行かず、現在RS232C経由のESC/Pを試しています。
下記のようにページ長をセットしてみましたが、プリンタステータスを読み出してみるとメディア長がゼロのままでカット位置以前に印刷もできません。
アドバイスを頂けましたら有難いです。
serialPort1.PortName = System.Configuration.ConfigurationManager.AppSettings["PortName"];
serialPort1.Open();
serialPort1.ReadTimeout = 500; //500mse 読み込みタイムアウト時間
serialPort1.WriteTimeout = 500; //500msec書き込みタイムアウト時間
// TD-4100N 初期化
SendData[0] = 0x1B; // ESC
SendData[1] = 0x40; // (byte)('@');
serialPort1.Write(SendData, 0, 2);
// テスト用にページ長を400dotにセットする(33.87mm)
SendData[0] = 0x1B; // ESC
SendData[1] = 0x28; // (byte)('(');
SendData[2] = 0x43; // (byte)('C');
SendData[3] = 2;
SendData[4] = 0;
SendData[5] = 144; // mL ページ長
SendData[6] = 1; // mH
serialPort1.Write(SendData, 0, 7);
// TD-4100N プリンタステータス要求
SendData[0] = 0x1B; // ESC
SendData[1] = (byte)('i');
SendData[2] = (byte)('S');
serialPort1.Write(SendData, 0, 3);
while (true)
{
if (serialPort1.BytesToRead >= 32)
break;
}
rcv_count = serialPort1.Read(reciveData, 0, 32);
0x80 ヘッドマーク
0x20 サイズ
0x42 「ブラザー」コード
0x35 シリーズコード
0x32 機種コード TD-4100N
0x30 国別コード
0x00 本体情報
0x00 予約
0x00 エラー情報1
0x00 エラー情報2
0x66 メディア幅
0x4a メディア種類
0x00 色数
0x00 メディア長(上位バイト)
0x3f メディアセンサ値
0x00 モード
0x00 濃度
0x00 メディア長(下位バイト)
0x00 ステータス種類
0x00 フェーズ種類
0x00 フェーズ番号上位バイト
0x00 フェーズ番号下位バイト
0x00 通知番号
0x00 拡張部バイト数
0x00 予約
0x00 予約
0x00 予約
0x00 予約
0x00 予約
0x00 予約
0x00 予約
0x00 予約
】
■お使いの環境について教えてください。
・パソコンもしくはスマートフォンのOSは何ですか?
(例)Windows10/8.1/7・MacOS・iOS・Android
【Windows10】
・どのように接続されていますか?
(例)有線LAN・無線LAN・USBケーブル・bluetooth
【RS232C】
・関連するソフト・アプリがあれば教えてください。
【VS2017】
・電話回線の種類は何ですか?
(例)アナログ回線・ISND回線・ひかり回線・IP電話
【アナログ回線】
※OKWAVEより補足:「ブラザー製品」についての質問です。
回答 (1件中 1~1件目)
コマンドリファレンスに関するお問い合わせでしたら、以下ページの要領で対処してみてはいかがでしょうか?
https://faq.brother.co.jp/app/ask_105
https://support.brother.co.jp/j/s/es/dev/ja/command/reference/index.html?c=jp&lang=ja&prod=es_td4100njp&navi=offall&redirect=on#cr_inquiry
補足
2023/07/09 15:05
お礼と報告です。ESC/Pでのプリントを考えていたのですが、問い合わせページ周辺を見ている時にラスター印刷の方が良さそうと気付きそちらを調べました、TD-4100Nのラスターコマンドリファレンスは公開されておらずお教え頂いたページから問い合わせながら、公開されていた後継機かと思われるTD-4510Dのラスターコマンドリファレンスを参考にプログラムしました、ページ長の設定個所は明示されていませんでしたが0x1efからの2バイトに300分の1インチ単位でセットされていました。なおRS-232C経由での印刷データー転送に時間がかかった為、githubで見つけたRawPrinterHelperを参考にプリンタドライバ経由USB接続で可変長プリントしました。解決へのきっかけを頂き感謝しております、有難うございました。
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
お礼
2023/06/26 07:26
iyonohanamuko様、コマンドリファレンスに関するお問い合わせページをお教え頂きありがとうございました。不定長ラベルの印刷を半ばあきらめかけていました、問い合わせて進めてみます。