当前位置: 首页 > 编程语言 > C#

C#中的点阵打印?在C#中分享

时间:2023-04-11 01:41:01 C#

点阵打印?我正在尝试使用C#打印到点阵打印机(各种型号),目前我正在使用Win32API(您可以在线找到很多示例)调用以将转义码直接从我的C#应用程序发送到打印机。这很好,但是...我的问题是,由于我正在生成转义码而不依赖于Windows打印系统,因此无法将打印输出发送到任何“普通”打印机或PDF打印驱动程序等。(这现在导致我们尝试使用EasyPrint[基于XPS]在2008终端服务器上使用该应用程序时遇到的问题]Panasonic...各种型号)不使用直接打印、转义码等。**为了澄清,我正在尝试类似GDI+(System.Drawing.Printing)的方法,但问题是它很难,Queues只是像旧代码一样。(旧代码绕过Windows驱动程序并将字符直接发送到打印机。)任何改进建议,以便他们可以使用GDI+但仍然像旧代码一样排队?你应该使用报告工具制作模板以便您或用户正确定位与预印文具相关的字段。使用点阵打印机,您基本上必须使用两种模式之一:第一种用法在Windows下大多被弃用,因为它没有提供很多控制方法输出,并且每台打印机都有自己的特质,软件很难预测和定位页面上的东西(没有所见即所得。)第二个只是使用图形页面范例,使文本和图形的定位与打印机实际不同的功能无关紧要。使用预印文具时,您的工作是将数据正确放置在页面上。手动执行此操作非常耗费资源,当然不建议使用代码创建布局,因为如果打印机、页面格式或打印文具发生变化,您将无法更改代码。最好的方法是使用.Net提供的标准打印模型和一个报告工具,它允许您定义正确定位文本和图形的模型和模板,然后从代码中驱动它。VisualStudio附带了一个版本的CrystalReports,但还有其他更好的报告系统(例如我使用developerExpress),其中一些甚至是免费的。根据我的经验,对于相同的数据使用两种报告更容易:因为为正确类型的报告购买正确类型的打印机并不少见,这种方法的优点是让客户决定:A3/A4的点阵打印机纸质文本报告(通常用于会计部门)或用于图形报告的激光/喷墨打印机。我不知道如何在C#中使用转义序列。但是我有通用/纯文本打印机的所有转义序列。希望能帮到你。通用打印转义序列1)设置行距a)1/8英寸–27,48b)1/6英寸–27,502)选择草稿质量a)27,120,0/27,120,483)字母质量a)27,120,1/27,120,494)双高度a)27,119,ni)n=1打开ii)n=0关闭5)双向打印a)27,85,ni)0-双向ii)1-单向6)增加字符间距a)27,32,n(增加n/12英寸)7)选择粗体a)27,698)Unbold字体a)27,709)选择斜体a)27,5210)取消斜体a)27,5311)选择a)10cpi27,8b)12cpi27,77c)15cpi27,103d)18cpi27,10312)设置右边距a)27,81,n13)设置左边距a)27,108,n14)feeda)1215)condensedprinta)0Fonb)12off16)doubleclickprinta)27,7117)cancelstrikeprinta)27,7218)ina)27,45,0Offb)27,45,1On19)DoubleWidtha)27,84,0Offb)27,84,1ON序列命令首先转换为字符,然后传递给打印机ExampleBold27,69String.Format("{0}{1}",Convert.ToChar(27),Convert.ToChar(69));可能有点短:String.Format("{0}{1}",(char)(27),(char)(69));查看System.Drawing.Printing命名空间。如果您的打印机有驱动程序要安装,您可以使用普通的Windows打印系统。大多数打印机,包括POS打印机,都有可用的Windows驱动程序。(大多数点阵打印机都与Epson兼容。)一些POS打印机驱动程序还允许将转义码直接发送到打印机(使用特殊字体);可能你不需要这样的功能。如果不是这种情况,您可以在添加打印机向导的帮助下添加通用/纯文本打印机(驱动程序)。完成后,您可以为其配置某些命令(转义序列)-字体大小10/12/17、粗体开/关、下划线开/关、作业开始/停止、进纸和尺寸选择。我正在使用与FILE端口关联的通用打印机来测试来自POS打印机的各种报告-查看文本文件以验证打印输出中的数字很容易。当然,需要格式化特定的打印机驱动程序。看来我想做的事是不可能的。我的打印选择是直接打印机打印(使用winspool.drv),这使我可以使用打印机做任何我喜欢的事情,并且可以轻松地进行排序。VB.NET示例或者我可以使用GDI+(System.Drawing.Printing),它很复杂且可排序,但适用于XPS和PDF打印机等非点阵打印机。您可以参考http://www.codeproject.com/Articles/29709/Line-Printer-Class-in-C希望对您有所帮助。以上就是C#学习教程:C#中的点阵打印?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: