背景:
我正在用 C# 开发一个windows-forms应用程序,它执行以下步骤:
- 读取资源文件(.resx)中的预配置文本。
- 用表格中提供的值对上一步得到的文本进行格式化。(姓名、姓氏和当前日期)。
- 保存SQL数据库中填写的信息。
- 使用ON 500 1热敏打印机,将填写的信息生成两张打印件。
问题
打印时,热敏打印机不剪切报表(即不拆分生成的收据/打印件),导致纸张浪费。
在方法调用之前,我用来读取预配置文本的代码Print();
是:
// Imprimir recibo #1:
PrintDocument document_member1 = new PrintDocument();
document_member1.PrintPage += new PrintPageEventHandler(document_PrintPage_Member1);
document_member1.Print();
// Imprimir recibo #2:
PrintDocument document_member2 = new PrintDocument();
document_member2.PrintPage += new PrintPageEventHandler(document_PrintPage_Member2);
document_member2.Print();
我的担忧是:
- 如何在生成每个打印后向打印机发送命令或指令完成切割?
- 如何定义每次展示的大小?
- 是否有更好的替代方法
PrintDocument
来执行此功能?
打印尺寸示例:
- 收据 #1:360 像素 X 360 像素
- 收据 #2:360 像素 X 560 像素
1这是分配给我测试的打印机品牌,可能是客户的标准打印机;但是如果有“从 C# 以某种方式与打印机驱动程序交互”的信息,那么该解决方案也将是有效的。
我搜索了以下术语:
- C# POS 收据打印
- C#中的POS打印
但这对我来说很新鲜,我完全迷失了。
在某个时候,一位同事遇到了这个问题,他使用RawPrinterHelper解决了这个问题,这是某人开发的一个小工具。
使用该方法
SendStringToPrinter
发送剪切命令。在互联网上搜索命令,我发现以下内容:
是
而且我不记得确切的命令是什么,我也不确定它是否因模型而异。
也许如果您寻找您拥有的模型的命令,您可以找到它。