0

私は winforms .net Application を構築しています。ネットワーク上に E-Pos プリンターがあり、以下のコードを使用しています: On Form Loading Printer initializing :

    explorer = new PosExplorer(this);
        DeviceInfo receiptPrinterDevice = explorer.GetDevice("PosPrinter", Properties.Settings.Default.KitchenPrinter); //May need to change this if you don't use a logicial name or use a different one.
        kitchenPrinter = (PosPrinter)explorer.CreateInstance(receiptPrinterDevice);
       ConnectToPrinter();


    private void ConnectToPrinter()
    {  
        kitchenPrinter.Open();
        kitchenPrinter.Claim(10000);
        kitchenPrinter.DeviceEnabled = true;
     }

印刷ボタンの関数呼び出し:

 private void PrintReceipt()
    {

         try
            {  kitchenPrinter.PrintNormal(PrinterStation.Receipt, "test");
              }
            finally
            {

            }
    }

他のフォームに切り替えたいときは、切断関数を呼び出します

        DisconnectFromPrinter(kitchenPrinter);
        Reporting frm = new Reporting(curuser);
        frm.Show();
        this.Hide();


  private void DisconnectFromPrinter(PosPrinter kitchenPrinter)
    {

        try
        {
           kitchenPrinter.Release();
            kitchenPrinter.Close();
        }
       catch { }
    }

一度は正常に印刷され、次に印刷を押すと、例外
メソッド ClaimDevice がスローされて例外がスローされます。デバイスで不正またはサポートされていない操作を実行しようとしたか、無効なパラメーター値が使用されました。

なにか提案を ?

4

1 に答える 1