asp.net(c#)发票 套打 求解方案

cdxkfc8 2008-05-29 12:18:14
小弟是第一次做 发票套打,以前也弄过 打印,当时是调用word组件(插入标签) 打印
现在要做 不能预览的 发票套打(比如电费单) ,只是往固定格式(22cm*11cm)的发票上填充 数据 ?

小弟也在网上 查询了资料,困惑主要有两点
1.选用何种 套打插件
2.发票 固定格式问题(google下经常发现发票格式不固定问题,粗略了解下,问题可能是程序设置发票长宽 可能不起作用)

虚心求教有经验的大侠提供方案,使小弟少走弯路,不胜感谢,最好有代码参考,先放100分
...全文
994 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
yonglovemeng 2008-06-23
  • 打赏
  • 举报
回复
可以用GDI+ 和asp.net去实现
长江支流 2008-06-23
  • 打赏
  • 举报
回复
CS下套打还是很容易,BS下搞.net确实要装framwork不爽。我就是把我的金质打印通做成控件,在web中用win控件做网页套打
liyingzi 2008-06-23
  • 打赏
  • 举报
回复
走纸让EXCEL去控制吧,页面设置-纸张大小-信封 DL 110*220 毫米
liyingzi 2008-06-23
  • 打赏
  • 举报
回复
你的问题也是大家普遍遇到的问题。我是自己公司里用的需求很简单,vb写一个web页面提取sql上数据写入本机EXCEL文件,格式在EXCEL里设就行。
cdxkfc8 2008-06-03
  • 打赏
  • 举报
回复
livesw ,这个我已经量了,然后设置打印机自定义格式 11*22
因为目前手上没有11*22的发票卷纸,我就用a4的纸做了试验,结果如下:
打印区域确实是 11*22,不过打印区域集中在a4纸中间,出纸也是整a4的高度,而不是11cm

请问livesw ,如果我用11*22的发票卷纸,处纸应该是11cm吗
livesw 2008-06-03
  • 打赏
  • 举报
回复
打印纸张设置比较麻烦,但不难,用尺子量发票大小进行设置
cdxkfc8 2008-06-03
  • 打赏
  • 举报
回复
多谢pt1314917 ,目前只有 从客户 好说话 来下手了(顾客还算比较固定)
自己也汗颜,老是在web上混,惭愧,只能用拿来主意
pt1314917 2008-06-03
  • 打赏
  • 举报
回复
这个问题是比较麻烦,如果客户比较固定,又比较好说话的话。
就让客户在打印机服务器属性里面创建新格式,定义大小,然后打印时,选择这个纸张类型。就行了。。
要不然的话。只有按照上面那些方法来了。其实可以尝试的开发一下activex控件,难到不难。。直接调用API函数去设置就行了。只是俺C和C++都忘干净了。VB的语法也不记得了。所以做不了。。。
pt1314917 2008-06-03
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 cdxkfc8 的回复:]
pt1314917 ,你好,看到你以前的问题,所以把你请过来,呵呵
自己也碰到类似的问题

谢谢你提供的意见,不过好像还是没有办法解决 ,看来目前问题还是 集中在用 activex控件做
jatoolsPrinter 的免费版本,只能在localhost上使用,正式版本还是要money的
ScriptX 无法控制走纸,好像只能每个客户端自己手动 去改打印机配置(这个我还没有条件去测试,要针式打印机才支持自定义页面)


我想问下,pt1314917 ,以前你…
[/Quote]

后来是打算购买四方城的软件的,因为用它的试用版是可以的。。
不过最后因为客户说统一使用喷墨打印机,不需要使用针式打印机了。所以这个就不需要控制走纸了。
白忙乎了一个多星期。。。
另jatoolsPrinter 的免费版本可以在正式上使用的。
只是不能在win2003下使用。 。
ScriptX不行。只能设置纸张,而不能给在代码里面给打印机增加纸张类型。。
还是需要客户先给打印机增加一个纸张类型后,然后scriptx才能使用到这个纸张类型。所以无意义。。
cdxkfc8 2008-06-03
  • 打赏
  • 举报
回复
pt1314917 ,你好,看到你以前的问题,所以把你请过来,呵呵
自己也碰到类似的问题

谢谢你提供的意见,不过好像还是没有办法解决 ,看来目前问题还是 集中在用 activex控件做
jatoolsPrinter 的免费版本,只能在localhost上使用,正式版本还是要money的
ScriptX 无法控制走纸,好像只能每个客户端自己手动 去改打印机配置(这个我还没有条件去测试,要针式打印机才支持自定义页面)



我想问下,pt1314917 ,以前你碰到的走纸问题是如何解决了,我也到这一步了。
pt1314917 2008-06-03
  • 打赏
  • 举报
回复

用windows自带的打印功能无法控制走纸情况,如果非要控制走纸情况,建议有二:
一:用C、C++或者VB等开发语言开发Activex控件,去给打印机定义纸张大小,并设置打印默认纸张大小为定义的。我曾经尝试过用C#开发activex控件。也成功了。可不幸的是。用C#开发的activex控件,必须安装.net framework,试想如果客户为了用这个打印功能,还要安装.net framework。客户会爽吗?所以开发active控件时,不要使用c#语言。

二:如果能力不够,可以考虑购买第三方打印控件。
这个控件有免费版:jatoolsPrinter
另外很多人说ScriptX控件也可以,其实不然,因为它无法设置纸张的具体大小。只能指定打印时使用纸张类型为A3,A4等等。并不能直接指定打印的宽和高。。
另外四方城的打印控件也可以使用。不过是收费的。试用版会在打印页面上多一行四方城的广告语。
这些打印控件都是acitvex控件。
zlj303 2008-06-03
  • 打赏
  • 举报
回复
学习
cdxkfc8 2008-06-03
  • 打赏
  • 举报
回复
自己先回答自己一下吧,我测试的打印机不支持 自定义分页,所以出全纸
在网上找说 ,一般的激光打印机不支持自定义分页的,针式打印机 可以的(不过还没有试验)

不过对于livesw 和nihongyuan 提供的activex控件,每个客户端都要手动设置 自定义格式 11*22 ,确实有点麻烦。
dorryyang 2008-06-02
  • 打赏
  • 举报
回复
mark,请问有winform下的套打控件吗?
cdxkfc8 2008-06-02
  • 打赏
  • 举报
回复
by the way,cs打印确实比bs方便多了,只是调用本地的打印机,bs是客户端用脚本语言调客户端打印机
window.print或者webrower控件的ExecWB,对于有格式要求的 打印就不够用了

卡就卡在这里了,不知道有没有解决方法
cdxkfc8 2008-06-02
  • 打赏
  • 举报
回复
livesw ,你好 ScriptX是国外的active控件,如果用其基本功能,是免费的,可是,高级功能就不能使用了
比如说我要求的自定义页面11*22cm,国内导师也不少active控件,不过都是收费的,郁闷
virusswb 2008-06-02
  • 打赏
  • 举报
回复
期待答案,正好遇到这个问题啊,谢谢楼主了
c11_11_11 2008-06-02
  • 打赏
  • 举报
回复
写windows 控件算了

lihui5888 2008-06-02
  • 打赏
  • 举报
回复
做过cs的套打,没有用控件,只是把要打印的内容存到一个dataset里,重写printDocument_PrintPage方法,将要打印的数据集,和具体数据对应纸的上左边距传进去,打印即可。希望对你有帮助
cdxkfc8 2008-06-02
  • 打赏
  • 举报
回复
现在的问题转变成-》走纸如何控制
1.程序控制??
2.打印机硬件可以设置?


livesw ,你用硬件设置 自定义页面大小后, 打印机打完一张 后,是自动走到你设定的页面高度停吗?
加载更多回复(17)

62,046

社区成员

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

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

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

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