打印和屏显的视觉补偿??(88分)

  • 主题发起人 王寒松
  • 开始时间
王老师思人之所思,我编发票时就时常想用尺子在屏幕上量
不过由于报表设计器在屏幕上给出了按厘米为单位的坐标系,
好像也行,我想即使能将屏幕显示尺寸和实际尺寸做得一样,
但换一个牌子的显示器且微调调得不一样可能还是不相等,因为
这好像不能被驱动程序测到。
 
我用DevExpress Print System2.0的时候发现显示打印预览时某些线条
不可见,可实际上打印出来却有.
 
王大吓!
实在是没办法!
你的ereport怎么处理memo字段较方便
 
期待王老大的第二版EReport。
 
这个问题不可能解决的,因为屏幕像素大小是可变的,同一显示器不同分辨率像素大小不同
,不同显示器(即使同一型号)由于电路调整不同像素大小也不同。所见即所得只能用来表
明排版比例是否合适。
 
本人是菜鸟一只,唯报表做得多。
以前做报表的时候想偷懒,在画格子时,直接用qrshape的shape=qrsRectangle,加一个qrshape,就是一个格子。可是打印出来就不对了,总有那么几条线被弄断了,然后上上下下排在那里,百思不得其解!偶尔一次,我把报表放大了,嘿,屏幕上显示的和打出来的简直是一模一样!于是,重新调整shape的大小及上下层关系,以为一切OK,谁知打印出来一看,外孙打灯笼——照舅@#$!@#!...
最终得到一个结论:DELPHI的做法是 屏幕尺寸—>内部尺寸,内部尺寸—>打印尺寸,内部尺寸—>屏幕尺寸!想要彻底调整,就只能从“内部尺寸”下手。
 
王Sir,你好:
我的报表网址上有一个Demo.其中演示了多种多个复杂的报表.其中的预览是我的控件组哥们做的,好像没有你说的问题.到上边看看吧,顺便我们也能共同切磋一下中国式复杂报表的解决方案.
http://zhangxzh.diy.163.com
 
王老师:
您好,请教一个问题
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1195151
先谢谢您
 
说不上话,我作的报表打印功能没有对精确性要求
这么高的
 
我就较同意hawkfly的说法:
实际尺寸-》屏幕 &
实际尺寸-》
不过只是我的个人想法啊!本人小菜一只。
不知道王大侠这个程序中的在combobox中得到纸张类型与打印机的方法是怎么做的,
请指教一下撒!我现在很想用下子这个。
 
王大侠是打印和画屏幕用同一个代码,想实现设备的无关性,出现的问题吧。
打印机画长度的准确性和不同型号的打印机有关,有的恰好可以卡到整数上的,尺寸非常精确,我用打印机打一两米长的图。几乎没有误差。
但大多数做不到这点。我解决的办法比较笨,先打一条定长的线,然后用尺子量一下,输入到程序中,调整画图的大小,也能满足实际的
需要。不过我觉得大侠做的是报表,也不必扣的太细,那毕竟不是报表的主要功用。
 
其实做一个屏幕校准程序就可解决这个问题:
画出一个象素为300x300的正方形(显示在屏幕上),让用户拿尺子在屏幕上量出该正方形的横
向及纵向的实际长度X0、Y0,用x0/300及y0/300作为横向和纵向的换算系数就可以了。
当然每次用户调整过屏幕分辨率及调整过屏幕的水平宽度及垂直高度时要重做上述操作。
 
先说是否要屏幕显示一致,显示屏每英寸象素数在分辨率改变时是不会改变的,所以你如果
在800*600下做的和实际一样了,到1024*768下一定会有很大的差距。
实际上,如果你打开WORD,在100%下,预览的A4和实际的纸张也是不同的,所以,你的这个
需求是毫无意义的,你只要做到显示的打印比例和实际相同,然后可以自由缩放。那么总有
一个 ??% 的效果是你需要的。
另外需要注意,所有的打印机都有一个非打印区的概念,这是没有办法修改的,所以就算用
printer.textout(0,0,'aa') 也不一定是靠边的,所以看看是不是这个造成的偏差。
我的发言完毕!!
 
对于连续走纸的打印机,象窄行的带孔纸,是可以设置非打印区为0的。
 
王大侠:
早就对你的报表控件很感兴趣,为了完善这一控件,本人做了部分
修改,由于本人水平有限,修改的地方在大侠看来也许不值一提,大侠是否
有兴趣交流一下。
qxwzj@21cn.com
 
to 王寒松:
早就是没你做的报表很好,软件有没有源码,能不能下载让大家学习
另外,你有没有自己的主页??
 
几位大虾,小第请教一个较尴尬的问题:)
我在客户的机器注册vcf1.ocx老报文件加载失败的错误,我以前还没有遇到过这种问题
怎么解决?
谢谢了
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
2K
import
I
顶部