日期:2014-05-18  浏览次数:20426 次

在程序中控制打印机走纸问题。

本人现在在做套打程序,用ie内置的打印功能。基本已经实现。。现存在唯一的问题就是,因为发票是连续的, 每打印一张发票。还会继续多走一到两张空白发票。所以我想通过程序控制打印机走纸。指定纸张大小,
请问哪位 大哥做过类似的?麻烦指点下。

分不够,再给。。。


------解决方案--------------------
这个控制起来基本上很难。

需要在打印机里面设置纸型才行。我原来做套打时,在客户端需要在打印机的属性里设置好指定高度的纸型才行。这样走纸才不会太离谱。
------解决方案--------------------
你好像问这一回了???
------解决方案--------------------
ScriptX
http://www.meadroid.com/scriptx/docs/printdoc.asp
试试吧
------解决方案--------------------
ie内置的打印功能是没有控制打印机里面的设置功能的,建议使用报表控件打印,如水晶报表
------解决方案--------------------

------解决方案--------------------
友情帮顶:)
------解决方案--------------------
方法1,用VC/VB6写一个ActiveX实现打印功能嵌入到HTML页,用JS控制ActiveX的打印绘图;
方法2,用c#写一个Winform的独立程序读取远程数据实现打印;
方法3,(未确认可行)使用Flash打印,可参见http://www.klstudio.com/post/25.html
------解决方案--------------------
叫他撕下来,一张一张的打,我们这的软件就这样用的,连续打印就会差很多行
------解决方案--------------------
你的多走2张空白发票肯定是因为纸张设定是默认的A4的原因,你用.net写的话,在PrintDocument对象的那个什么DefaultSetting(?)里设置下PaperSize成你真实的发票大小,用尺子量以下你的发票的大小,然后换算以下,PaperSize接受的数值是英寸的100分之一为单位。

纸张大小设定好了之后,打印机就能精确走纸了。

C# code

PrintDocument Document = new PrintDocument();
PaperSize pz = new PaperSize();
pz.PaperName = "MyPaper";
pz.Width = (int)(24.0 * 100 / 2.54);  //2.54为厘米和英寸的比值
pz.Height = (int)(9.3 * 100 / 2.54);
Document.DefaultPageSettings.PaperSize = pz;

Document.PrintPage += new PrintPageEventHandler(Document_PrintPage);
Document.Print();