举个例子吧:
我的QReport有一个波段: 
pageHead 它的高度是60。
上边的页边距是3MM。
请问页边距(3MM) + pageHead高度(60)转换成打印机的DPI
或是转换成毫米应该是多少?
怎么计算呀?
如果转成毫米的话是不是如以下计算方式:  3MM + 60 / 96 * 25.4   //96这个值是根据分辨率等到的

解决方案 »

  1.   

    var
      mm: Integer;
    begin
      mm := Round(GetDeviceCaps(Printer.Canvas.Handle, LogPixelsX) / 25.2);
    end;
      

  2.   

    var 
      mm: Integer; 
    begin 
      mm := Round(GetDeviceCaps(Printer.Canvas.Handle, LogPixelsX) / 25.2); 
    end;
      

  3.   

    楼上的老大
    1 英寸 = 25.4 mmGetDeviceCaps(Printer()->Handle, LOGPIXELSX) 的 X 方向的分辨率,即每英寸的点数
    GetDeviceCaps(Printer()->Handle, LOGPIXELSY) 的 Y 方向的分辨率,即每英寸的点数
      

  4.   

    我用QReport的qrRichText預覽一篇文章,但是打印的時候是用打印機直接這篇文檔的內容,
    可是打印出來發現每頁的行數跟預覽的行數不一樣。
    請問是不是我算上下左右的頁邊距出了問題?
      

  5.   

    我是这样算的,不知对不对?
    比如我的上边的页边距是3MM,那它应该是:
    GetDeviceCaps(printers.canvas.handle, LOGPIXELSY) * 3 /25.4
      

  6.   

    我用的是QRRichText,我还真不知道怎么计算行间距,还请僵哥指点指点!
      

  7.   

    我用的是QRRichText,我还真不知道怎么计算行间距,还请僵哥指点指点!