私は 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 がスローされて例外がスローされます。デバイスで不正またはサポートされていない操作を実行しようとしたか、無効なパラメーター値が使用されました。
なにか提案を ?