使用过EasyGrid的帮个忙吧(100分)

  • 主题发起人 chenge1980
  • 开始时间
C

chenge1980

Unregistered / Unconfirmed
GUEST, unregistred user!
在procedure TPreviewBox.DrawPage(DrawCanvas: TCanvas;
DrawRect: TRect;
PageIndex: Integer;
Printing: Boolean);里加入
DrawCanvas.FillRect (DrawRect);
DrawCanvas.Font.Size:=8;
DrawCanvas.Font.Name:='宋体';
DrawText(DrawCanvas.Handle,PChar('第+IntToStr(PageIndex+1)+'页/共'+IntToStr(PageCount)+页'),
Length('第+IntToStr(PageIndex+1)+'页/共'+IntToStr(PageCount)+页'),DrawRect,
DT_BOTTOM or DT_LEFT or DT_SINGLELINE);
预览时正常
打印时加上去的字体变的非常大
而且设置为打印一张时每次都打印两张,后一张空白
不知何解???
 
打印时字体和显示时字体是不一样的。
注意printing参数。
正确的方法是:
DrawCanvas.FillRect (DrawRect);
if Printing then
DrawCanvas.Font.Size := Round(8 * ScreenToPrinterX)
else
DrawCanvas.Font.Size:=8;
DrawCanvas.Font.Name:='宋体';
DrawText(DrawCanvas.Handle,PChar('第+IntToStr(PageIndex+1)+'页/共'+IntToStr(PageCount)+页'),
Length('第+IntToStr(PageIndex+1)+'页/共'+IntToStr(PageCount)+页'),DrawRect,
DT_BOTTOM or DT_LEFT or DT_SINGLELINE);
 
已搞定,非常感谢hbsbx,也感谢pount的友情一顶
 
顶部