6

生の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で動作させる必要があります。何か案は?

4

2 に答える 2

6

わかりました、すべての理由は、私のコンピューターには古いlptポートがないため、アダプターを使用しているという事実だけです. Windows XP を実行している古いコンピューターにアプリケーションをコピーしたところ、すべて正常に動作しました。

今、私が購入した他のlpt2usbアダプターが正しく機能することを願っています。

編集 2010.04.20

別の lpt2usb アダプターを使用すると、すべて正常に動作するようになりました。私が現在使用しているすべてのコードに興味がある場合は、私に連絡するか、ここにコメントしてください。

于 2010-04-16T06:05:53.333 に答える