当前位置:编程学习 > C#/ASP.NET >>

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

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

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

虚心求教有经验的大侠提供方案,使小弟少走弯路,不胜感谢,最好有代码参考,先放100分 
--------------------编程问答-------------------- up --------------------编程问答-------------------- 顶下,知道的帮助下 --------------------编程问答-------------------- 这个是asp.net版块,都搞BS的,谁会回答哦。
给我sxlfybb#163com,我给你个半成品。
--------------------编程问答-------------------- 我有套打的控件
--------------------编程问答-------------------- 可否详细点 --------------------编程问答-------------------- 补充一下,要求不预览 直接打印-->
所以 ,用JS打印的方法好像不行 --------------------编程问答-------------------- 水晶报表应该可以把,试试 --------------------编程问答-------------------- 邮件已收到。周一发给你 --------------------编程问答-------------------- 多谢,最近确实被b/s打印困扰
目前还是没有进展
不过还是说说自己的 过程吧,希望留给大家看看,希望大家伸出援手

1关键是要 自定义格式 套打 。如果 不要求格式 ,直接调用window.print或者webrower控件的ExecWB方法来打,也很方便
2.如果要打印 A4的页面,只要设置 边距等简单参数,可以用ScriptX,还有国内几个active插件,但是高级设置(自定义页面)好像要收费,小弟目前就是要 自定义页面(22cm*11cm),好像直接打印也无法做到。


所以说,小弟目前难点有2个
1.直接打印(非当前页面数据直接打印)
2 设置页面格式(22cm*11cm) --------------------编程问答-------------------- 我用rdlc实现过,你可以用这个自带的报表试试
--------------------编程问答-------------------- soonssa,你好,不知道 rdlc实现是在 b/s 还是 c/s上面的,好像2者是有区别的
rdlc实现,我也想过,因为项目是我和朋友做的,
所以弄到现在,卡住了,试了很多都不行

现在好像就rdlc和水晶报表没有弄了,如果方便,soonssa可否提供代码参考下,本人email cdxkfc#163.com --------------------编程问答-------------------- mark,请问有winform下的套打控件吗? --------------------编程问答-------------------- http://www.cnblogs.com/surprise/archive/2005/06/17/176144.html
可以实现 --------------------编程问答-------------------- 做过cs的套打,没有用控件,只是把要打印的内容存到一个dataset里,重写printDocument_PrintPage方法,将要打印的数据集,和具体数据对应纸的上左边距传进去,打印即可。希望对你有帮助 --------------------编程问答-------------------- 写windows 控件算了

--------------------编程问答-------------------- livesw ,你好 ScriptX是国外的active控件,如果用其基本功能,是免费的,可是,高级功能就不能使用了
比如说我要求的自定义页面11*22cm,国内导师也不少active控件,不过都是收费的,郁闷 --------------------编程问答-------------------- by the way,cs打印确实比bs方便多了,只是调用本地的打印机,bs是客户端用脚本语言调客户端打印机
window.print或者webrower控件的ExecWB,对于有格式要求的 打印就不够用了

卡就卡在这里了,不知道有没有解决方法 --------------------编程问答--------------------
引用 16 楼 cdxkfc8 的回复:
livesw ,你好 ScriptX是国外的active控件,如果用其基本功能,是免费的,可是,高级功能就不能使用了 
比如说我要求的自定义页面11*22cm,国内导师也不少active控件,不过都是收费的,郁闷

你可以自己定义的,在打印机上定义纸张 --------------------编程问答-------------------- http://www.cnblogs.com/Yahong111/archive/2007/10/08/917176.html
建议你看看这个,我就这个,不过它也是设计页面,但可以显示打印预览,或直接打印,自定义纸张,连打。

国人开发的控件,不过要求客户端要自动安装。或解压出来dll文件,做一个Winrar自解压注册文件。就可以了。我现在在用。 --------------------编程问答-------------------- 学习中... --------------------编程问答-------------------- 你好 livesw ,你说的我也明白,就是 在打印机里面设定自定义纸张 ,比如说 11cm*22cm,然后让打印机默认就打这个,这个实现了自定义大小,是OK的
我也不怕好笑,本人第一次用打印机,也没有发票卷纸做试验,只好放 A4纸进去,处纸的时候好像出的是 a4的长度。

不知道是否打印机可否设置出纸的长度(手上没设备,也没办法做试验) --------------------编程问答-------------------- 多谢 nihongyuan  提供这么好的 免费activex控件,边距,页数什么的不用在打印机中设置了,确实很方便,不过每次运行后都有js错误
不知道是 我配置错误,还是程序的bug --------------------编程问答-------------------- 现在的问题转变成-》走纸如何控制
1.程序控制??
2.打印机硬件可以设置?


livesw  ,你用硬件设置 自定义页面大小后, 打印机打完一张 后,是自动走到你设定的页面高度停吗? --------------------编程问答-------------------- 期待答案,正好遇到这个问题啊,谢谢楼主了 --------------------编程问答-------------------- 打印纸张设置比较麻烦,但不难,用尺子量发票大小进行设置 --------------------编程问答-------------------- livesw ,这个我已经量了,然后设置打印机自定义格式 11*22
因为目前手上没有11*22的发票卷纸,我就用a4的纸做了试验,结果如下:
打印区域确实是 11*22,不过打印区域集中在a4纸中间,出纸也是整a4的高度,而不是11cm

请问livesw ,如果我用11*22的发票卷纸,处纸应该是11cm吗
--------------------编程问答-------------------- 自己先回答自己一下吧,我测试的打印机不支持 自定义分页,所以出全纸
在网上找说 ,一般的激光打印机不支持自定义分页的,针式打印机 可以的(不过还没有试验)

不过对于livesw 和nihongyuan  提供的activex控件,每个客户端都要手动设置 自定义格式 11*22 ,确实有点麻烦。
--------------------编程问答-------------------- 学习 --------------------编程问答--------------------
   用windows自带的打印功能无法控制走纸情况,如果非要控制走纸情况,建议有二:
    一:用C、C++或者VB等开发语言开发Activex控件,去给打印机定义纸张大小,并设置打印默认纸张大小为定义的。我曾经尝试过用C#开发activex控件。也成功了。可不幸的是。用C#开发的activex控件,必须安装.net framework,试想如果客户为了用这个打印功能,还要安装.net  framework。客户会爽吗?所以开发active控件时,不要使用c#语言。

   二:如果能力不够,可以考虑购买第三方打印控件。
    这个控件有免费版:jatoolsPrinter
   另外很多人说ScriptX控件也可以,其实不然,因为它无法设置纸张的具体大小。只能指定打印时使用纸张类型为A3,A4等等。并不能直接指定打印的宽和高。。
   另外四方城的打印控件也可以使用。不过是收费的。试用版会在打印页面上多一行四方城的广告语。
    这些打印控件都是acitvex控件。
--------------------编程问答-------------------- pt1314917 ,你好,看到你以前的问题,所以把你请过来,呵呵
自己也碰到类似的问题

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



我想问下,pt1314917 ,以前你碰到的走纸问题是如何解决了,我也到这一步了。 --------------------编程问答--------------------
引用 30 楼 cdxkfc8 的回复:
pt1314917 ,你好,看到你以前的问题,所以把你请过来,呵呵 
自己也碰到类似的问题 

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


我想问下,pt1314917 ,以前你…


后来是打算购买四方城的软件的,因为用它的试用版是可以的。。
不过最后因为客户说统一使用喷墨打印机,不需要使用针式打印机了。所以这个就不需要控制走纸了。
白忙乎了一个多星期。。。
另jatoolsPrinter 的免费版本可以在正式上使用的。 
只是不能在win2003下使用。 。
ScriptX不行。只能设置纸张,而不能给在代码里面给打印机增加纸张类型。。
还是需要客户先给打印机增加一个纸张类型后,然后scriptx才能使用到这个纸张类型。所以无意义。。 --------------------编程问答-------------------- 这个问题是比较麻烦,如果客户比较固定,又比较好说话的话。
就让客户在打印机服务器属性里面创建新格式,定义大小,然后打印时,选择这个纸张类型。就行了。。
要不然的话。只有按照上面那些方法来了。其实可以尝试的开发一下activex控件,难到不难。。直接调用API函数去设置就行了。只是俺C和C++都忘干净了。VB的语法也不记得了。所以做不了。。。 --------------------编程问答-------------------- 多谢pt1314917 ,目前只有 从客户 好说话 来下手了(顾客还算比较固定)
自己也汗颜,老是在web上混,惭愧,只能用拿来主意 --------------------编程问答-------------------- 你的问题也是大家普遍遇到的问题。我是自己公司里用的需求很简单,vb写一个web页面提取sql上数据写入本机EXCEL文件,格式在EXCEL里设就行。 --------------------编程问答-------------------- 走纸让EXCEL去控制吧,页面设置-纸张大小-信封 DL 110*220 毫米 --------------------编程问答-------------------- CS下套打还是很容易,BS下搞.net确实要装framwork不爽。我就是把我的金质打印通做成控件,在web中用win控件做网页套打 --------------------编程问答-------------------- 可以用GDI+ 和asp.net去实现
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,