Files
DE70/.svn/pristine/e8/e832e2545d257d405552f00c9bc5358b6cf9fa06.svn-base
T
2024-09-02 10:03:23 +07:00

72 lines
1.8 KiB
Plaintext

using Custom.CuCustomWndAPI;
using HandyControl.Data;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace SafeBagDE70.Services
{
public class PrinterManager
{
CuCustomWndDevice? dev = null;
CuCustomWndAPIWrap? customWndAPIWrap =null;
PrinterStatus? status = null;
public PrinterManager()
{
try
{
customWndAPIWrap = new CuCustomWndAPIWrap(CuCustomWndAPIWrap.CcwLogVerbosity.CCW_LOG_FATAL, null);
customWndAPIWrap.InitLibrary();
USBDevice[] usbArray = customWndAPIWrap.EnumUSBDevices();
dev = customWndAPIWrap.OpenPrinterUSB(usbArray[0]);
Log.Information("[PRINTER] Init Printer Successfully");
}
catch (Exception ex)
{
// System.Windows.MessageBox.Show(ex.ToString());
}
}
public PrinterStatus? UpdateStatus()
{
var status = dev.GetPrinterFullStatus();
return status;
}
public bool IsNearPaperOut()
{
try
{
var status = dev.GetPrinterFullStatus();
return status.StsNEARENDPAP;
}
catch(Exception ex)
{
return true;
}
}
public bool IsPaperOut()
{
try
{
var status = dev.GetPrinterFullStatus();
return status.StsNOPAPER;
}
catch (Exception ex)
{
return true;
}
}
public void Release()
{
if (dev != null)
dev.Terminate();
}
}
}