如何精确控制打印出来的窗体的大小?
我先在窗体上作画,然后使用form1.print;把窗体打印出来,要求打印出来的窗体图片必须是绝对固定大小的;
现在遇到一下几个问题:1.不同打印机打印出来的窗体图片大小不一样(要求任何打印机打印出来的大小一样);
2.窗体没有在屏幕上显示的区域没有被打印出来,比如窗体很大,在屏幕上只能显示一部分,那么打印出来也只有这一部分(要求全部打印该窗体);
3.如何精确的控制打印出来的图片大小?比如:12厘米宽*13厘米高在线给分,谢谢.

解决方案 »

  1.   

    可不可以考虑一下,把绘制的图形,通过粘贴板把图形导入一个Image控件中,
    然后再把Image中的图形用报表打印出来!
    这只是我的一种思路,仅供参考!
      

  2.   

    那通过粘贴板把图形导入一个Image控件中?
      

  3.   

    获得屏幕分辨率和打印机分辨率,然后换算一下就可以了啊
    uses Printers;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Form1.Width := Round(12 * 0.3937 * GetDeviceCaps(Printer.Handle, LOGPIXELSX) / Screen.PixelsPerInch);
      Form1.Height := Round(12 * 0.3937 * GetDeviceCaps(Printer.Handle, LOGPIXELSY) / Screen.PixelsPerInch);
      Form1.Print;
    end;