我要绘制一个很大的图形,大概有30几张A4纸幅面拼合的大小,我采用下面的方法来打印:
1、使用图元(TMetaFile),设置图元的尺寸为打印纸的宽度的高度除以打印系数
(打印机分辨率与屏幕分辨率比例)。
2、设置两个变量MVX,MVY,用于在绘制时偏移图形的起始位置来实现分页打印,即当打印
第一张时,(MVX,MVY)为(0,0),然后绘制整张图,这样超出图纸部份的图形便不会显示出
来,打印第二张时(MVX,MVY)为纸张的宽度和高度(负值),其它的以此类推。
3、绘制完一张图纸后,使用Printer.Canvas.StretchDraw(Rect(0,0,Printer.PageWidth,
Printer.PageHeight), PrintWmf)(其中PrintWmf为图元),使之发送到打印机。
现在的情况是,在Window2000下打印正常,在Window98下打印时会出现异常,因为我要画一
个整个图形大小的表格,这时整张表格会被黑色充填,图形会重叠(会把后面一第的重到
当前页中)。
请问,要如何处理这种情况。
1、使用图元(TMetaFile),设置图元的尺寸为打印纸的宽度的高度除以打印系数
(打印机分辨率与屏幕分辨率比例)。
2、设置两个变量MVX,MVY,用于在绘制时偏移图形的起始位置来实现分页打印,即当打印
第一张时,(MVX,MVY)为(0,0),然后绘制整张图,这样超出图纸部份的图形便不会显示出
来,打印第二张时(MVX,MVY)为纸张的宽度和高度(负值),其它的以此类推。
3、绘制完一张图纸后,使用Printer.Canvas.StretchDraw(Rect(0,0,Printer.PageWidth,
Printer.PageHeight), PrintWmf)(其中PrintWmf为图元),使之发送到打印机。
现在的情况是,在Window2000下打印正常,在Window98下打印时会出现异常,因为我要画一
个整个图形大小的表格,这时整张表格会被黑色充填,图形会重叠(会把后面一第的重到
当前页中)。
请问,要如何处理这种情况。
解决方案 »
- 用什么API可以把文件锁定到win7的任务栏呢?
- 如何写 TPageControl.OnCloseTabSheet 事件
- indy10 邮件内容如果存进sqlserver 2000?并提取出来?
- 请教大侠们,如何把excel内嵌到form窗体,保留excel的表单和工具栏!!!!!!!!!!!
- Delphi 如何从html 中提取纯文本
- 如何提取word内符合的信息和页码到数据库
- 用adoquery如何实现“修改”“刷新”?求完整代码?
- RemoveDir问题请教!
- 如何获取SQL建表脚本?
- 关于API: SetWindowLong的用法的一些问题。。。。>>>>
- 求教dbgrid的行高!
- 关于图象的打印?
1、使用图元(TMetaFile),设置图元的尺寸为打印纸的宽度的高度除以打印系数
(打印机分辨率与屏幕分辨率比例)。
2、设置两个变量MVX,MVY,用于在绘制时偏移图形的起始位置来实现分页打印,即当打印
第一张时,(MVX,MVY)为(0,0),然后绘制整张图,这样超出图纸部份的图形便不会显示出
来,打印第二张时(MVX,MVY)为纸张的宽度和高度(负值),其它的以此类推。
3、绘制完一张图纸后,使用Printer.Canvas.StretchDraw(Rect(0,0,Printer.PageWidth,
Printer.PageHeight), PrintWmf)(其中PrintWmf为图元),使之发送到打印机。
现在的情况是,在Window2000下打印正常,在Window98下打印时会出现异常,因为我要画一
个整个图形大小的表格,这时整张表格会被黑色充填,图形会重叠(会把后面一第的重到
当前页中)。
请问,要如何处理这种情况。