本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

締切済み
※ ChatGPTを利用し、要約された質問です(原文:自由な長さのラベルをプログラムしたい。)

自由な長さのラベルをプログラムしたい

2023/10/18 06:29

このQ&Aのポイント
  • 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件目)

2023/06/25 19:34
回答No.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/06/26 07:26

iyonohanamuko様、コマンドリファレンスに関するお問い合わせページをお教え頂きありがとうございました。不定長ラベルの印刷を半ばあきらめかけていました、問い合わせて進めてみます。

質問者

補足

2023/07/09 15:05

お礼と報告です。ESC/Pでのプリントを考えていたのですが、問い合わせページ周辺を見ている時にラスター印刷の方が良さそうと気付きそちらを調べました、TD-4100Nのラスターコマンドリファレンスは公開されておらずお教え頂いたページから問い合わせながら、公開されていた後継機かと思われるTD-4510Dのラスターコマンドリファレンスを参考にプログラムしました、ページ長の設定個所は明示されていませんでしたが0x1efからの2バイトに300分の1インチ単位でセットされていました。なおRS-232C経由での印刷データー転送に時間がかかった為、githubで見つけたRawPrinterHelperを参考にプリンタドライバ経由USB接続で可変長プリントしました。解決へのきっかけを頂き感謝しております、有難うございました。

質問者

このQ&Aは役に立ちましたか?

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。