生のASCIIデータをサーマルプリンターに印刷しようとしています。これを行うには、次のコード例を使用します:http ://support.microsoft.com/kb/322091しかし、プリンターは常に1文字しか印刷せず、フォームフィードボタンを押すまでこれは印刷されません。メモ帳で何かを印刷すると、プリンターは自動的にフォームフィードを実行しますが、テキストは印刷されません。
プリンターは、lpt2usbアダプターを介してusb経由で接続され、Windows7は「Generic->Generic/TextOnly」ドライバーを使用します。
何が悪いのか誰もが知っていますか?いくつかの単語を印刷し、いくつかのフォームフィードを実行するにはどうすればよいですか?送信する必要のある制御文字はありますか?はいの場合:どうすれば送信できますか?
編集14.04.201021:51
私のコード(C#)は次のようになります:
PrinterSettings s = new PrinterSettings();
s.PrinterName = "Generic / Text Only";
RawPrinterHelper.SendStringToPrinter(s.PrinterName, "Test");
フォームフィードボタンを押すと、このコードは「T」を返します(この小さな黒いボタン:swissmania.ch/images/935-151.jpg-申し訳ありませんが、2つのハイパーリンクの評判が十分ではありません)
編集15.04.201016:56
私は今ここでコードフォームを使用しています:c-sharpcorner.com/UploadFile/johnodonell/PrintingDirectlytothePrinter11222005001207AM/PrintingDirectlytothePrinter.aspx
次のコードを使用できるように少し変更しました。
byte[] toSend;
// 10 = line feed
// 13 carriage return/form feed
toSend = new byte[1] { 13 };
PrintDirect.WritePrinter(lhPrinter, toSend, toSend.Length, ref pcWritten);
このコードを実行すると、フォームフィードボタンを押すのと同じ効果があり、正常に機能します。
しかし、このようなコードはまだ機能しません:
byte[] toSend;
// 10 = line feed
// 13 carriage return/form feed
toSend = new byte[2] { 66, 67 };
PrintDirect.WritePrinter(lhPrinter, toSend, toSend.Length, ref pcWritten);
これは「B」だけを出力しますが、「BC」を期待しています。コードを実行した後、USBケーブルを再接続してagianで動作させる必要があります。何か案は?