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

pt1314917 2008-03-31 11:52:52

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

分不够,再给。。。
...全文
217 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinalinkitservice 2011-07-27
  • 打赏
  • 举报
回复
引用 20 楼 smallfz 的回复:
你的多走2张空白发票肯定是因为纸张设定是默认的A4的原因,你用.net写的话,在PrintDocument对象的那个什么DefaultSetting(?)里设置下PaperSize成你真实的发票大小,用尺子量以下你的发票的大小,然后换算以下,PaperSize接受的数值是英寸的100分之一为单位。

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


C# code
PrintDocument Document = new PrintDocument();
PaperSize pz = new PaperSize();
pz.PaperName …


这样不行啊,只能更改服务器端的打印机设置,没用的。
我调用API函数给打印机创建了新的纸张大小,然后设置打印纸张类型为这个。。结果发现只是将服务器端的改了。客户端还是一样。所以此方法不可行。

--------当然是本机操作,如果是ie是没有效果的

pt1314917 2008-04-02
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 smallfz 的回复:]
你的多走2张空白发票肯定是因为纸张设定是默认的A4的原因,你用.net写的话,在PrintDocument对象的那个什么DefaultSetting(?)里设置下PaperSize成你真实的发票大小,用尺子量以下你的发票的大小,然后换算以下,PaperSize接受的数值是英寸的100分之一为单位。

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


C# code
PrintDocument Document = new PrintDocument();
PaperSize pz = new PaperSize();
pz.PaperName …
[/Quote]

这样不行啊,只能更改服务器端的打印机设置,没用的。
我调用API函数给打印机创建了新的纸张大小,然后设置打印纸张类型为这个。。结果发现只是将服务器端的改了。客户端还是一样。所以此方法不可行。
Cassava 2008-04-01
  • 打赏
  • 举报
回复
例子我手上没有,但网上很多,自己搜索一下吧
SYUEHOKO 2008-04-01
  • 打赏
  • 举报
回复
只搞过金税套打发票.
smallfz 2008-04-01
  • 打赏
  • 举报
回复
然后在Document_PrintPage方法(PrintPage事件的处理)里面,你应该实现打印绘图的过程,反正我自己一般是这么做的,量好了文字的位置用Graphics画出来
smallfz 2008-04-01
  • 打赏
  • 举报
回复
你的多走2张空白发票肯定是因为纸张设定是默认的A4的原因,你用.net写的话,在PrintDocument对象的那个什么DefaultSetting(?)里设置下PaperSize成你真实的发票大小,用尺子量以下你的发票的大小,然后换算以下,PaperSize接受的数值是英寸的100分之一为单位。

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


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();
mysky0103 2008-04-01
  • 打赏
  • 举报
回复
问一下 套打应该如何实现
liyingzi 2008-04-01
  • 打赏
  • 举报
回复
叫他撕下来,一张一张的打,我们这的软件就这样用的,连续打印就会差很多行
pt1314917 2008-03-31
  • 打赏
  • 举报
回复
再顶``
pt1314917 2008-03-31
  • 打赏
  • 举报
回复
TO 4楼
ScriptX只能设置papersize属性为A3、A4等。并不能直接指定高和宽度。。
pt1314917 2008-03-31
  • 打赏
  • 举报
回复
5楼的,水晶报表能做套打程序么?
可否给个相关的例子我参考一下?
Cassava 2008-03-31
  • 打赏
  • 举报
回复
ie内置的打印功能是没有控制打印机里面的设置功能的,建议使用报表控件打印,如水晶报表
octverve 2008-03-31
  • 打赏
  • 举报
回复
ScriptX
http://www.meadroid.com/scriptx/docs/printdoc.asp
试试吧
pt1314917 2008-03-31
  • 打赏
  • 举报
回复
但这样客户端太麻烦噢,
所以我希望能用程序实现。。。
各位有用程序实现过的大哥帮忙支支招啊。。。很急的``
octverve 2008-03-31
  • 打赏
  • 举报
回复
你好像问这一回了???
ludingping 2008-03-31
  • 打赏
  • 举报
回复
这个控制起来基本上很难。

需要在打印机里面设置纸型才行。我原来做套打时,在客户端需要在打印机的属性里设置好指定高度的纸型才行。这样走纸才不会太离谱。
rangeon 2008-03-31
  • 打赏
  • 举报
回复
学习了
smallfz 2008-03-31
  • 打赏
  • 举报
回复
方法1,用VC/VB6写一个ActiveX实现打印功能嵌入到HTML页,用JS控制ActiveX的打印绘图;
方法2,用c#写一个Winform的独立程序读取远程数据实现打印;
方法3,(未确认可行)使用Flash打印,可参见http://www.klstudio.com/post/25.html
wapit 2008-03-31
  • 打赏
  • 举报
回复
一品梅 2008-03-31
  • 打赏
  • 举报
回复
友情帮顶:)
加载更多回复(3)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧