高手请教:打印问题!解答完整再加100分。 (100分)

  • 主题发起人 主题发起人 永远的学徒
  • 开始时间 开始时间

永远的学徒

Unregistered / Unconfirmed
GUEST, unregistred user!
我手工处理报表打印。在预览的时候用一个 TScrollBox + TPaintBox
和一个后台 TImage 进行处理。
我如何设置 TPaintBox 的大小与实际纸张大小一致?
纸张大小由用户自定义,单位:mm
在GetDeviceCaps()中我用 LOGPIXELSX(Y)获取缩放比ScaleXY后,
用 TPaintBox.Width = PaperWidth * MM_TO_INCH * ScaleXY.x / Screen.PixelsPerInch;
TPaintBox.Height = PaperHeight * MM_TO_INCH * ScaleXY.y / Screen.PixelsPerInch;
调整页面大小(1:1)。但好象显示的页面与 Word 预览时显示的页面大小有很
大的出入(我的页大)。是不是要设置 SetMapMode()?有什么影响?
在 SetMapMode 中用 MM_TEXT或MM_LOMETRIC 对页面大小有何影响?
对绘制过程会有影响吗?
由于 Canvas 不保存 MapMode,只有在设置后马上使用才有效,
否则又回复到 MM_TEXT 了。请问需要每次都进行设置吗?
有什么办法能保持该设置?因为我用外部过程进行绘制,
所以在传递 Canvas 的时候会不会由于MapMode回复而产生问题?
 
应该设置image的长宽
Image1.width:=...
Image1.Height:=...
PaintBox1.width:=Image1.width+...
...
检查word预览是否和你的使用相同单位
 
接受答案了.
 
后退
顶部