begin
    with printer do
    begin
        BeginDoc;
        canvas.draw(0,0,Image1.Picture.Graphic);
        EndDoc;
    end;
end;打出来的图片只有巴掌大一块,怎么打出大的,是不是很麻烦?
新人,请多指教!

解决方案 »

  1.   

    var
      xscale, yscale: Integer;
      aRect: TRect;
    begin
      Printer.BeginDoc;
      xscale := GetDeviceCaps(Printer.Handle, LOGPIXELSX) div PixelsPerInch;
      yscale := GetDeviceCaps(Printer.Handle, LOGPIXELSY) div PixelsPerInch;
      aRect := Rect(0, 0, Image1.Picture.Width * xscale, Image1.Picture.Height * yscale);
      Canvas.StretchDraw(aRect, Image1.Picture.Graphic);
      Printer.EndDoc;
    end;
    根据分辨率打印 结果啥都不出来了 我晕 哪里不对?
      

  2.   

    Printer.Canvas.Handle,0,0,
                        Trunc(Image1.Picture.Width * xscale*0.8) ,
                        Trunc(Image1.Picture.Height * yscale*0.8) ,
                        Image1.Picture.Bitmap)加上这句子可以了 但是位置很偏啊  晕了晕了   怎么设置成居中的????? 0,0 应该该么????
    不能让我自问自答啊 同志们 同情心哪!!
      

  3.   

    看了一下,会的你都自己说了。
    只有关注了,hoho。