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

c#打印发票问题,大家来帮吗啊,今天要解决的

要做一个打印类似发票的程序,每个价钱都是要在特定的位置,打印机是epson Lq-630针式打印机
之前下了一个是先读取一张图片然后在上面画好打印的内容
但是这样好像针式打印机实现不了,打印出的字非常大,大家有没有经验分享一下啊 --------------------编程问答-------------------- 计算好纸张的大小。(最好,是拿尺子量量宽度,长度等)

然后,在指定的位置打印就是。 --------------------编程问答-------------------- 我是那么做的啊,我用尺子量,然后在photoshop画出来打印的纸张大小,分辨率300,画出了各个位置
打印预览看着好好的,但已打印字就变的超大 --------------------编程问答-------------------- 有没有人有经验啊 --------------------编程问答-------------------- 大家帮啊
--------------------编程问答-------------------- 参考这个:


源代码和实现说明:http://www.codeproject.com/KB/miscctrl/PrintUtilityUserControls.aspx --------------------编程问答-------------------- 打发票,我用自定义控件,套打 --------------------编程问答-------------------- 在数据库应用中,有标签打印模块,
设计好标签式样后,调用数据打印,
这个功能是专门用于设计打印发票或信封用的。 --------------------编程问答-------------------- 但已打印字就变的超大
------------------------
设置一个合适的字体大小 --------------------编程问答-------------------- 要做一个打印类似发票的程序,每个价钱都是要在特定的位置,打印机是epson Lq-630针式打印机
之前下了一个是先读取一张图片然后在上面画好打印的内容
但是这样好像针式打印机实现不了,打印出的字非常大,大家有没有经验分享一下啊


这是因为dpi的问题。
你在电脑上输出的图片是和显示器(显卡)相关的。
而你要输出的东西是在打印机上,你觉得打印机的分辨率和显示器(显卡) 的一样吗?
通常是不一样的,那就需要做转换了。
看看这个api:GetDeviceCaps

以前的代码,供参考
--------------------编程问答--------------------
引用 8 楼 xray2005 的回复:
但已打印字就变的超大
------------------------
设置一个合适的字体大小
大就调小不就可以了。 --------------------编程问答-------------------- 一般都是套打,用尺子量好。 --------------------编程问答-------------------- 你要读取打印机的分辨率,然后进行处理。 --------------------编程问答-------------------- 感觉是像素的问题 --------------------编程问答--------------------

查看当前用户的缺省表空间
select username,default_tablespace from user_users
查看当前用户的角色
select * from user_role_privs
查看当前用户的系统权限和表级权限
select * from user_sys_privs
select * from user_tab_privs
查看用户下所有的表
select * from user_tables
显示用户信息(所属表空间)
select default_tablespace,temporary_tablespace from dba_users
显示当前会话所具有的权限
select * from session_privs
显示指定用户所具有的系统权限
select * from dba_sys_privs
显示特权用户
select * from v$pwfile_users
查看名称包含log字符的表
select object_name,object_id from user_objects where instr(object_name,'log')>0
查看某表的创建时间
select object_name,created from user_objects where object_name='ZW_YINGYEZ'
查看某表的大小
select sum(bytes)/(1024*1024) tablesize from user_segments

where segment_name='ZW_YINGYEZ'
查看放在ORACLE的内存区里的表
select table_name,cache from user_tables where instr(cache,'Y')>0

查看索引个数和类别
select index_name,index_type,table_name from user_indexes order by table_name
查看索引被索引的字段
select * from user_ind_columns where table_name='CB_CHAOBIAOSJ201004'
查看索引的大小
select sum(bytes)/(1024*1024) as indexsize from user_segments

where segment_name=upper('AS_MENUINFO')

查看视图信息
select * from user_views

查看同义词的名称
select * from user_synonyms
查看函数和过程的状态
select object_name,status from user_objects where object_type='FUNCTION'

select object_name,status from user_objects where object_type='PROCEDURE'
查看函数和过程的源代码
select text from all_source where owner=user and name='SF_SPLIT_STRING'
查看表字段

select cname from col where tname='ZW_YINGYEZ'
select column_name from user_tab_columns where table_name='ZW_YINGYEZ'
--------------------编程问答-------------------- 不会,路过学习 --------------------编程问答-------------------- 顶 
引用 5 楼 computerfox 的回复:
参考这个:


源代码和实现说明:http://www.codeproject.com/KB/miscctrl/PrintUtilityUserControls.aspx
--------------------编程问答--------------------
引用 5 楼 computerfox 的回复:
参考这个:


源代码和实现说明:http://www.codeproject.com/KB/miscctrl/PrintUtilityUserControls.aspx


很好很强大 --------------------编程问答-------------------- --------------------编程问答-------------------- 前阵刚做了发票套打,具体实现思路,是首先在打印机添加相应的纸型,然后根据位置,来填充数据,至于字体的大小事可以设置的,给楼主一段代码,可以简单看下
printFont = new Font("新宋体", 10);
str =  "123123";
 yPos =  58.74f;
 xPos = 67;
 ev.Graphics.DrawString(str, printFont, Brushes.Black, xPos, yPos, new StringFormat());
这段代码,可以输出楼主任何想要的大小和 位置,我就是这么做滴,哈哈 --------------------编程问答-------------------- LZ 可以参考下,首先先用word模板将固定的格式弄好,设置好标签,通过程序给各个标签赋值,然后打印,这样比你花那么长时间用代码调格式要方便的多 --------------------编程问答--------------------   用自定义 !~  PaperSize pkCustomSize1 = new PaperSize("58mm Roll Paper", j, 250);
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,