首先你可能没理解屏幕DC和打印机的关系。
屏幕DC是严格的打印的点阵的对应。
而且这个DC对应的画布的大小和打印机的打印分辨率有密切的关系。300*300DPI和600*600DPI的时候连个DC对应的画布也是长宽各差一倍的。我用的这个大银鱼似的方法可以说是个偏门。1.设定这个缩放比例预览的时候一定要在预览生成后恢复原来的数值,这样才不影响打印。具体方法
GetPrintScale 取得当前的数值保存
SetPrintScale 设定新的大小为了预览
PrintPreviewDC 生成预览
SetPrintScale 恢复原来的比例2.由于你设定了新的放缩比例,会导致一个问题就是页数的计算会变化,比喻你缩放了50%,那么原来是10页的内容现在其实就只需要5页了,这违背了我们的目的,所以我的建议是同样在预览前修改纸张的大小,按照于是的比例缩小当前的纸张大小。同上面一样,预览生成后要恢复原来的内容。3.预览的大小还受到打印分辨率的影响,所以计算预览效果的时候一定要得到当前的分辨率,并把此参数引入的预览画面生成的计算中取。
int GetDeviceCaps(
HDC hdc,
int nIndex);下面是BCB代码得到当前打印机的水平和垂直分辨率
GetDeviceCaps(Printer()->Canvas->Handle, LOGPIXELSX);
GetDeviceCaps(Printer()->Canvas->Handle, LOGPIXELSY);4.我的另一个想法,
如果能设定当前打印机的分辨率,或者模拟一个打印机,把他的分辨率设为和屏幕一样,那么就可以直接在一个DC上面直接用了,没什么比例的概念了。
想调整预览的放缩倍数只要修改这个打印机的分辨率就行了。100%的情况就是
把打印机的分辨率设定为96*96dpi (window小字体),
这个办法我一直没成功。关注你的进展。
谢谢,共同探讨。
屏幕DC是严格的打印的点阵的对应。
而且这个DC对应的画布的大小和打印机的打印分辨率有密切的关系。300*300DPI和600*600DPI的时候连个DC对应的画布也是长宽各差一倍的。我用的这个大银鱼似的方法可以说是个偏门。1.设定这个缩放比例预览的时候一定要在预览生成后恢复原来的数值,这样才不影响打印。具体方法
GetPrintScale 取得当前的数值保存
SetPrintScale 设定新的大小为了预览
PrintPreviewDC 生成预览
SetPrintScale 恢复原来的比例2.由于你设定了新的放缩比例,会导致一个问题就是页数的计算会变化,比喻你缩放了50%,那么原来是10页的内容现在其实就只需要5页了,这违背了我们的目的,所以我的建议是同样在预览前修改纸张的大小,按照于是的比例缩小当前的纸张大小。同上面一样,预览生成后要恢复原来的内容。3.预览的大小还受到打印分辨率的影响,所以计算预览效果的时候一定要得到当前的分辨率,并把此参数引入的预览画面生成的计算中取。
int GetDeviceCaps(
HDC hdc,
int nIndex);下面是BCB代码得到当前打印机的水平和垂直分辨率
GetDeviceCaps(Printer()->Canvas->Handle, LOGPIXELSX);
GetDeviceCaps(Printer()->Canvas->Handle, LOGPIXELSY);4.我的另一个想法,
如果能设定当前打印机的分辨率,或者模拟一个打印机,把他的分辨率设为和屏幕一样,那么就可以直接在一个DC上面直接用了,没什么比例的概念了。
想调整预览的放缩倍数只要修改这个打印机的分辨率就行了。100%的情况就是
把打印机的分辨率设定为96*96dpi (window小字体),
这个办法我一直没成功。关注你的进展。
谢谢,共同探讨。
解决方案 »
- 请教数据库方面的管理操作
- 请问如何在程序里动态修改access数据库的字段值
- 如何将一个listbox1中的所有记录或选择的若干条记录,复制给另一个listbox2,同时删除listbox1本次所复制的值,如果发现有重复值时不复制
- 佳能相机的SDK
- 请问要返回所有无重复记录的SQL语句应该怎么写?在线等待!!!!!!!!!!!!!1
- 三层结构中,要限定AP SERVER只处理特定类型的任务,如何实现?
- 这个算法怎么做?(建筑)
- 如何把我的程序捆绑在其他程序上一起运行???
- j++buileder做的运行文件不是EXE的,
- 有没有效率比较高的替换函数?stringreplace的效率在大文本时效率太低了
- 打开一个FORM时,怎样传送参数?
- delphi里如何提取后台SQL SERVER数据库的系统时间
http://www.csdn.net/expert/topic/822/822284.xml?temp=.7585108
我是专门做Delphi下报表的,你可以到我的网站上下载Demo.我的控件使得 对各种复杂表格制作都变得非常简单!我是在F1book的基础上开发的TF1bookdraw控件.报表的右键菜单中可以提供调整列宽,保存列宽,将报表保存到Excel文件中的完全功能!看看我的demo吧,你会大吃一惊的!
我的控件一定在你的想象之中!我的预览也非常专业!并且可以自己管理一个工程中所有的报表!
delphi程序动态制作报表尽在: http:\\zhangxzh.diy.163.com
应为 http://zhangxzh.diy.163.com
zhangxzh!
用PrintPreviewDC预览的时候,并不像PrintPreviewEx一样,在预览界面出现一个边框,显示实际打印的时候打印的面积,好像也不会处理分页的情况,或者我不知道该怎么做。但是,如果预览的效果和打印的效果不一样的话,那这种预览有什么用吗?
希望有用过的人指点一下,真不知道zhangxzh(报表之王) 是怎么做的预览。这个问题放的时间很长了,如果到这个周末还没有进一步的话题的话,我准备结贴了,毕竟,这是我在csdn提的第一个问题。
用PrintPreviewDC预览的时候,并不像PrintPreviewEx一样,在预览界面出现一个边框,显示实际打印的时候打印的面积,好像也不会处理分页的情况,或者我不知道该怎么做。但是,如果预览的效果和打印的效果不一样的话,那这种预览有什么用吗?
希望有用过的人指点一下,真不知道zhangxzh(报表之王) 是怎么做的预览。这个问题放的时间很长了,如果到这个周末还没有进一步的话题的话,我准备结贴了,毕竟,这是我在csdn提的第一个问题。
我还发现excel也偶尔会出现缺线的问题。目前为止,我发现了3个人都实现了预览,而且都不错,有一个免费的,但是没找到下载。我稍后会继续研究,等有结果了一定给你源代码, 也关注你的进展。这东西没啥可保密的。
我的预览完全是重新开发的,因为F1book的自带预览太次了.而且在F1book基础上开发的新控件又容进了一种新的报表开发思想,完全撇开了原来的报表开发思想.看看demo,可以看到,我的报表都是用程序实现的,方便快捷,又集成了很多的东西.我希望大家向自己所在的公司推荐我们的控件! 很感谢的! demo在不断的更新,希望您下载最新的demo.
他的更好。
没有6.0的好用,
>我的预览完全是重新开发的,因为F1book的自带预览太次了.
就这个,我靠,这还叫开发??
其实,大家都把打印预览想的太复杂了,看看中国式报表的源代码吧,
你注意看一看什么什么之王的,预览上面的内容和前一页内容不是完全一样么?
又不能放大,缩小,有什么了不起,就一个VB程序而已,
我以前公司里有个哥们用这么东西,用了几年,我又得到一个更好的,于是没学
那个更好的,有一点像瑞软表单
其实,cell也没有瑞软表单好用,不过,这东东太贵了他也就把这两个看了一看,就想钱!,你是不是快穷死了
上面的东东,哪 个想要,
我留下Email
交个朋友!!!!!!!!
6.0的/F1book和中国式报表的源码谁要呀,100分钱就拿了,没有钱,给点分嘛,以表热情呀
我把F1book,用RAR2.9打几个包,分几次,你可得快点收,要是让我发几天,我可受不了,
或者找一个20M的信箱更好,一次搞定
又没有F1book的版权,要是真的用了,你能承担这个责任么,
要是卖给个人,那他愿意花多少钱又是另一个问题了,F1book的使用这个问题,我们都知道, 我们没有F1BOOK的原码,只是利用他上面的东西在加工,如果F1不支持的,你也做不到,但公司用什么东西是要经过很多考虑的,你这样做,
真有人买了你的东西,你又不能解决使用权问题,
你不是害了人家么?
如你是F1book 的开发者之一那我要说,我错了,错怪你了,
我有眼不识泰山!
F1book的开发者,你还是把F1book直接改一下吧
我们用起来也省省力气
[email protected]
你把passwd给我,我上传上去,,
sina的接不了那么大,其实这个东西在我手上有两年了,我一直没研究它,
希望大家以后能在一起共同研究研究,
对F1book感 兴趣的能留个Mail么,
pazee(耙子)
我把中国式报表的源码也放上去,
我把中国式报表的源码发给你了,
对了,如要这个的朋友,先给我一个Mail,
因为这个不大,(原码DELPHI里用的控件+一个画的程序)
我一个一个地发有点费事,
但回复一个就很快了,
请大家见谅!
另:有没有对CELL感兴趣的,???
我有一个英文版,3.1的吧,好长时间了,好几年了,我忘了,
不是现在的演示版,可以打印的,谁要,也给我发一个Email吧,
交个朋友,我没有版权,你可以研究,用不用于商业,我无权,
我只是向朋友们做一点有用的事情
F1book和CELL是一类的,不过CELL是中国人开发的,另外小一些
也好看一点,(个人观点)
但我还是觉得瑞软的FSCELL好,
关键是它能让你在文件中(这也是CELL一类报表器的特点)写脚本,
也就是说,你以后改报表的时候,和主程序是无关的,改改脚本就行了,
我用过试用版,以后到了别的公司,不做报表这一块了,
对它也淡化了从性能价格比上(我们用得放心,钱少)的F1book和中国式报表算最好的了
F1book很多公司在用,(都不是大公司)中国式报表有原码而且是公开,
王寒松大侠真是
随你怎么用,怎么改,
同时也请某些人看看大侠的作风!
!!!!!
如果能设定当前打印机的分辨率,或者模拟一个打印机,把他的分辨率设为和屏幕一样,那么就可以直接在一个DC上面直接用了,没什么比例的概念了。
想调整预览的放缩倍数只要修改这个打印机的分辨率就行了。100%的情况就是
把打印机的分辨率设定为96*96dpi (window小字体),
这个办法我一直没成功。好象不行,因为许多你在WORD下看得不是很清的东西,(如公式)别人会说打出来就好了,为什么,就是分辨率高么,现在的打印机打出来的很好看的东西,
把打印机的分辨率设定为96*96dpi那还了得了
那打得就太难看了吧,
我们以前做得很EASY,只是把VIEWPORT改一下而已,就实现了打印预览,而同时实现了放大和缩小,你可以试试