delphi 请问怎么打印固定区域呢? 100

我想放一个image控件,然后打印image范围内的图片,输出能达到1:1的效果,就像form.print一样的不会变形的效果,求大师了我放一个image,设置好imag... 我想放一个image控件,然后打印image范围内的图片,输出能达到1:1的效果,就像form.print一样的不会变形的效果,求大师了
我放一个image,设置好image的长宽,然后打印就打印这块区域
展开
 我来答
人间杂货店
2016-11-04 · 数据只告诉我们事实,知识才能告诉我们真实
人间杂货店
采纳数:1319 获赞数:4312

向TA提问 私信TA
展开全部
方法1:
printer.Canvas.strechDraw(s,Image1.Picture.Bitmap);
procedure TForm1.BtnPringClick(Sender: TObject);
var
strect:Trect; //定义打印输出矩形框的大小
temhi,temwd:integer;
begin
if DIGPrint.execute then
begin
temhi:=imgpic.picture.height;
temwd:=imgpic.picture.width;
while (temhi = printer.pageheight div 2)and
//将图形放大到打印页面的1/2大小
(temwd = printer.pagewidth div 2) do
begin
temhi:=temhi+temhi;
temwd:=temwd+temwd;
end;
with strect do //定义图形在页面上的中心位置输出
begin
left := (printer.pagewidth -temwd) div 2;
top := (printer.pageheight-temhi) div 2;
right := left+temwd;
bottom := top+temhi;
end;
with printer do
begin
begindoc;
canvas.stretchdraw(strect,imgpic.picture.graphic);
enddoc;
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if DLGOpen.Execute then
begin
IMGPic.Picture.LoadFromFile(DlgOpen.FileName);
end;
end;

procedure TForm1.BtnCloseClick(Sender: TObject);
begin
Close;
end;

end.

方法2:
uses Printers;

procedure TForm1.Button1Click(Sender: TObject);
var
R: TRect;
begin
Printer.BeginDoc;
try
R := Rect(0,0,Image1.Picture.Width,Image1.Picture.Height);//请先在Image1里面载入图片。
Printer.Canvas.StretchDraw(R, Image1.Picture.Graphic);
finally
Printer.EndDoc;
end;
end;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式