C
CookieTian
Unregistered / Unconfirmed
GUEST, unregistred user!
我想用图元文件来实现打印预览,打印程序是通过printer.Canvas自己画的。
我希望能将打印中的画printer.canvas的代码直接移植到画图元文件中,再把图元文件显示出来,
于是我创建了一个与打印机设备相容的TMetaFileCanvas: MFCanvas := TMetaFileCanvas.Create(MetaFile, Printer.Handle);
这样,图元文件的分辨率和每英寸象素值等都和打印机保持一致(因考虑到打印机和屏幕的不同分辨率)。
结果,在画线或矩形或圆形的几何图形时,因分辨率和打印机一致,所以预览的尺寸大小和打印实际效果一致。
但打印字体时,但是问题出现了:在图元文件中的同字号的字体比打印机打印的字体小很多,甚至小的一半。
用TextWidth函数发现在同字号的情况下,图元文件的字的宽度的象素值比打印机小很多。
请问哪位高手用图元文件实现过打印预览,请问这种字体大小的问题如何解决?
我希望能将打印中的画printer.canvas的代码直接移植到画图元文件中,再把图元文件显示出来,
于是我创建了一个与打印机设备相容的TMetaFileCanvas: MFCanvas := TMetaFileCanvas.Create(MetaFile, Printer.Handle);
这样,图元文件的分辨率和每英寸象素值等都和打印机保持一致(因考虑到打印机和屏幕的不同分辨率)。
结果,在画线或矩形或圆形的几何图形时,因分辨率和打印机一致,所以预览的尺寸大小和打印实际效果一致。
但打印字体时,但是问题出现了:在图元文件中的同字号的字体比打印机打印的字体小很多,甚至小的一半。
用TextWidth函数发现在同字号的情况下,图元文件的字的宽度的象素值比打印机小很多。
请问哪位高手用图元文件实现过打印预览,请问这种字体大小的问题如何解决?