2011-12-15 8 views
3

私はたくさんの検索をしていますが、ここではPosexplorerの例がありますが、私のプリンタはusbで、私はPosExplorerが並列です。私はプリンタで印刷する方法と、引き出しを開くためにプリンタにコードを送る方法を知らない。Epson T20(サーマルプリンタ)で引き出しを開けてください。

_oposPrinter.PrintNormal(PrinterStation.Receipt, logo); 

または

_oposPrinter.PrintNormal(PrinterStation.Receipt, Convert.ToString((char)27 + "|#fP")); 

プリンタ:デバッグとは、ラインに到達すると

string ESC = Convert.ToString((char)27); 
string logo=Convert.ToString(ESC+"|tL"); 
_oposPrinter.PrintNormal(PrinterStation.Receipt, logo); 
_oposPrinter.PrintNormal(PrinterStation.Receipt, "Print example\n"); 
_oposPrinter.PrintNormal(PrinterStation.Receipt, Convert.ToString((char)27 + "|#fP")); 

:私は、プリンタに次のコードをエスケープシーケンスを送信するために使用してい

何も印刷しません。

+0

プリンタをデフォルトのプリンタ(テキストのみのドライバ)として設定し、他のドキュメントと同様に印刷します。引き出しを開くには、COMポートにアクセスし、どの信号を送るべきかを知る必要があります。 – David

+0

ありがとう、私はこの方法で印刷しましたが、私は引き出しを開ける必要があります。とにかくありがとう。 – uoah

答えて

0

私はこのコードが通常の印刷に適していることを知っています。私は現金引き出し部分をテストしていませんが、それが正しいコマンドだと信じています。あなたはそれを置くための正しいパラメータを知る必要があります。

このコードは、Epsonが提供するユーティリティSetupPos.exeを使用してプリンタをセットアップしたことを前提としています。私はどこにあるのか覚えていませんが、EpsonExpert.comは見るのが良いかもしれません。次に、あなたが正しいLDNを渡していることを確認してください(setupposソフトウェアで設定してください)。

PosExplorer explorer = null; 
    DeviceInfo _device; 
    PosPrinter _oposPrinter; 
string LDN; 

    explorer = new PosExplorer(); 
    _device = explorer.GetDevice(DeviceType.PosPrinter, LDN); 
    _oposPrinter = (PosPrinter)explorer.CreateInstance(_device); 
    _oposPrinter.Open(); 
    _oposPrinter.Claim(10000); 
    _oposPrinter.DeviceEnabled = true; 
// normal print 
    _oposPrinter.PrintNormal(PrinterStation.Receipt, yourprintdata); 
// pulse the cash drawer pin pulseLength-> 1 = 100ms, 2 = 200ms, pin-> 0 = pin2, 1 = pin5 
    _oposPrinter.PrintNormal(PrinterStation.Receipt, (char)16 + (char)20 + (char)1 + (char)pin + (char)pulseLength); 

// cut the paper 
    _oposPrinter.PrintNormal(PrinterStation.Receipt, (char)29 + (char)86 + (char)66) 

// print stored bitmap 
    _oposPrinter.PrintNormal(PrinterStation.Receipt, (char)29 + (char)47 + (char)0) 
+0

ありがとう、私はそれをできるだけ早く(私はプリンタと引き出しにアクセスできるすべての日ではない)しようとします。私はPosExplorerライブラリを使用しようとしていましたが、ビジュアルは認識されませんでした。私は、ユーティリティSetupPos.exeは、プリンタのインストールCDに付属していると思います。ありがとう – uoah

+0

プロジェクトにMicrosoft.PointOfService.dllへの参照を追加することを忘れないでください。それがVSがそれを認識しなかった理由かもしれません。 –

+0

はい、いくつかの例でその参照が見つかりましたが、私のVSはそれを認識しませんでした。たぶん私は最初にSetupPos.exeをインストールする必要があります。今日はそれを試してみましょう。ありがとう:) – uoah

5

あなたは、このような.NETのために、Microsoft POSなどのサードパーティインストールされたソフトウェアがなくても、非常に軽量なソリューションに探している場合。

あなたはその後、それがに接続したプリンタにそれを開くために、特定の現金引き出しコードを送信

https://support.microsoft.com/en-us/help/322091/how-to-send-raw-data-to-a-printer-by-using-visual-c-.netからダウンロードすることができます)RawPrinterHelper機能を含める必要があります。

例えば、Epson TM88では、この関数がそれを開きます。

SendStringToPrinter(printerName, System.Text.ASCIIEncoding.ASCII.GetString(new byte[] { 27, 112, 48, 55, 121 })); 

他のプリンタでは、他のコードシーケンスが必要な場合があります。 、VB.NETとPOS.NETでこれを行うプリンタにこれを送信しようとしている人のために

Citizen 
27,112,0,50,250 
Epson 
27,112,48,55,121 
27,112,0,25,250 
27,112,48,25,250 
IBM 
7 

...(http://keyhut.com/popopen.htmでオートカッターや第二の引き出しを含むビューよりコード)

+0

お返事ありがとうございました。今はMicrosoftのpos for .netで印刷しますが、良い方法です。 – uoah

+1

ありがとう、これはPOS.NETドライバをインストールするよりもはるかに良い、本当に良い解決策です – RobJohnson

0

m_printer = the instance you created for the PosExplorer 
m_printer.PrintNormal(PrinterStation.Receipt, System.Text.ASCIIEncoding.ASCII.GetString(New Byte() {27, 112, 48, 55, 121})) 

この は

奇妙なことは、それが最初の送信時に開くが、後に一人一人いないということである私のエプソンTM-T20のために働きました。

関連する問題