我使用printDocument进行打印!设计好顶边距、底边距后打印也正常,就是打印后不能进纸,必须使用微调把纸进到测试线才能扯下打印好的内容。使用EPSON LQ-305KT ESC/P 2打印机和连续进纸的那种两边带孔的连续纸(一般为财务用纸),如何控制其打印前自动退纸,打印后自动进纸? 如果我连续打印2次,那么就可以把第一次打印的完全进出,但是第二次打印的内容却在“卡遭”下!PageSettings ps = new PageSettings();
ps.PaperSize = new System.Drawing.Printing.PaperSize("OverrunPrint", 923, 315);
this.printDocument1.DefaultPageSettings = ps;
this.printDocument1.Print();自定义纸张大小也好这!可以完全显示要打印的内容!就是不能自动进退纸!!请问如何控制?或者使用CreateFile打开打印并口进行打印?那么如何设置字体大小位置和如何画线?如何控制打印机进行自动进退纸?进纸/退纸控制功能
-----------------------------------
换页                   FF
换行                 LF
n/180英寸正向进纸 ESC J
设定1/8英寸行间距 ESC 0
设定1/6英寸行间距 ESC 2
设定n/180英寸行间距 ESC 3
设定n/60英寸行间距 ESC A
设定n/360英寸行间距 ESC +
回车                   CR
----------------------------------我在爱普生网站找到这个控制代码请问如何使用?求教高手指点C#打印控制!!察看资料说打印纸张设置最关键!!请问如何设置最好?

解决方案 »

  1.   

    HOW TO: Send Raw Data to a Printer by Using Visual C# .NET
    http://support.microsoft.com/?kbid=322091
      

  2.   

    http://support.microsoft.com/kb/154078/EN-US/
    http://support.microsoft.com/kb/138594/这几篇我都看了!但是还是没有解决问题!!!
      

  3.   

    我觉得你应该看的是打印机的接口命令串,而不是WIN32 API之类的东西。因为自动退纸,然后上纸到默认位置,在针式打印机或平推式打印机中是靠传感器实现的,不是在WINDOWS系统内部实现的,所以,不同厂家的打印机应该有不同的命令串。你仔细观察打印机的动作就会发现,打印机在上纸后,某些机械部分是停留在特定位置的,打印开始后才会收起或放下,因此这些动作都需要特定的传感器,也就意味着不同的厂家有着不同命令串,甚至不同型号也有着微妙的差别,因此这些需要通过看厂家的命令串表来决定发送什么。至于打在卡槽外,不清楚LZ的意思,机械打印机是不可能打印在边界外的,因为它有特定的传感器和止位器,呵呵——浅见,请指正——
      

  4.   

    卡槽内的意思是:“针式打印机有一个切纸罩子,一般都是打印好后,将罩子边当切刀使用,进行切纸,但是我打印的内容在切罩子内!”现在想知道如何发送ESC/POS命令呢?(C#版本)
      

  5.   

    问题已经解决!!具体解决方法大家可以到我的blog看!!我把解决方法写到blog里面了!!谢谢大家的热心帮助!!
      

  6.   

    卡槽的问题是这样的:1、我明白你的需求,但我不能告诉你准确的能够达到你要求的方法,因为这个问题的产生有许多个性化的东西,比如我写的系统的纸的长度和你的可能不一样,页边距可能也不一样,所以不大可能有将纸如何正好放到适合卡槽的位置;2、机械打印机随时可能有传送误差发生,因此你永远不可能要求你的切纸位置永远精确,除非你的打印机和系统的运行环境有着非常好的无尘场所,而且齿轮等永不磨损,呵呵——3、如果你需要每次打印的份数在5份以上,你不要苛求你的打印位置了,我见过的崭新的好一些的打印机加上比较精确的系统,最多打到第三份或第四份就会产生偏差,我不清楚平推式高速打印机一打上百页表格是如何保证不会将字打到切分线上的。
    关于如何发送ESC/POS命令,很抱歉,我也是个C#菜鸟,嘻嘻——