用canvas打印图片,怎么就那么大啊??

qfyylove 2006-03-02 04:50:39
begin
with printer do
begin
BeginDoc;
canvas.draw(0,0,Image1.Picture.Graphic);
EndDoc;
end;
end;

打出来的图片只有巴掌大一块,怎么打出大的,是不是很麻烦?
新人,请多指教!
...全文
185 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
baiduan 2006-03-14
  • 打赏
  • 举报
回复
看了一下,会的你都自己说了。
只有关注了,hoho。
yyfhz 2006-03-03
  • 打赏
  • 举报
回复
正常分辨率又太大了。。。。(1300X800) 一张纸打不完
=============================
看一下你的默认打印纸张是什么?
qfyylove 2006-03-02
  • 打赏
  • 举报
回复
Printer.Canvas.Handle,0,0,
Trunc(Image1.Picture.Width * xscale*0.8) ,
Trunc(Image1.Picture.Height * yscale*0.8) ,
Image1.Picture.Bitmap)

加上这句子可以了 但是位置很偏啊 晕了晕了 怎么设置成居中的????? 0,0 应该该么????


不能让我自问自答啊 同志们 同情心哪!!
qfyylove 2006-03-02
  • 打赏
  • 举报
回复
改正了一下 可以按照正常分辨率来打印了 但是。。。。
正常分辨率又太大了。。。。(1300X800) 一张纸打不完

怎么结合纸打合适的啊? A4的

怎么没人来 ???
qfyylove 2006-03-02
  • 打赏
  • 举报
回复
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;


根据分辨率打印 结果啥都不出来了 我晕 。。。哪里不对?

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧