关于打印 (50分)

  • 主题发起人 主题发起人 fanwei
  • 开始时间 开始时间
F

fanwei

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序中有个大表格,应用之一是将它打印出来,
请问,表格是中国式的,有很多不规则的地方,但是对于用户来说,没有要更改的地方
行列的大小都是固定的,上面有很多的格啦线拉都是用PANEL堆出来的,表格和这些
手工堆的东东都用一个PANEL做容器,我能不能把这个
PANEL上面的东西原封不动的打印出来呢?怎么实现?上面除了黑就是白,打印的时候
会不会有花点子?
 
我用的是QReport作的,很容易控制打印效果。还可以预览。
用一个界面作输入,用QReport的Form作打印输出(数据库记录还可批量打印...)!(Delphi)
 
QReport不能打印表格线啊,斜线更没有戏了
 
怎么不能打印表格线!
斜线可以用一个斜线图片来代替,
或下一个专画斜线的补丁
 
关于打印出来的效果,你只要将要打印的控件去掉3D效果,颜色改成白底黑字,就不会有
抖动效果(花点子)出现。
至于如何打印,有三个思路:
一、panel没有print方法,所以把你所有要打印的东东放在一个form里边,用form的print
方法,这时form相当于你的打印纸;也可以将你装被打印控件的panel充满整个form,
同样用form的print方法。
二、自己定义控件,从panel继承,在为他加上一个print方法,参考form的print方法的
代码,也比较简单。
三、自己写打印代码,将通过控件表达的线、框、文字用printer对象canvas画板画出来,
交给打印机去打印。
第一种办法不需要编程,最简单,但是受限制比较大。
第二种编程简单,比较自由。
第三种编程比较复杂,但是表达能力强大自由,可以自己做出报表设计器来,通用性强。
 
好啊好啊,我用第一种方法就行,不用让用户自定义,让他所见所得就行了
还有个问题,我的PANEL有1024个象素大,用FORM PRINT 的方法能打印出来吗?
 
对不起对不起,我还忘了一件事情,PANEL有1024个象素宽,但是高只有600多,
就是说,PANEL是矮胖的,所以打印的时候呢,就要把PANEL给竖过来,怎么做?
 
看这个:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=941617
这是我写的一个打印控件,可以打印FORM上panel及panel上的Ppanel,还可以打印panel
上的DGRrid、Edit、Stringgrid等,应该能满足你的要求。有原码。
 
用报表很容易实现,用panel做太烦![:)]
 
说实话,我好不容易才在PANEL上画出来这个表格,实在不想用报表再做了,
有没有方法把PANEL竖过来啊?
 
多人接受答案了。
 
后退
顶部