procedure TButton1.click;//先画图
begin
with image1.canvas do
begin
moveto(10,10);
lineto(10,280);
lineto(280,280);
end;
end;
//再打印输出,针打无反应,激光打印机走一页空白纸
procedure TButton2.click;
var scaleX,scaleY:integer;
R:TRect;
begin
Printer.begindoc;
Pr:=Rect(0,0,printer.paperwidth,printer.paperheight);
with printer do
try
scaleX:=GetDeviceCaps(Handle,logPixelsX)div PixelsPerInch*2;
scaleY:=GetDeviceCaps(Handle,logPixelsY)div PixelsPerInch*2;
R:=Rect(0,0,Image1.Picture.Width*scaleX,Image1.Picture.Height*scaleY);
canvas.stretchdraw(R,Image1.Picture.Graphic);
//canvas.CopyRect(Pr,image1.canvas,R);
finally
enddoc;
end;end;
我的要求是先对image1.canvas画曲线,然后将其复制到打印机画布输出
begin
with image1.canvas do
begin
moveto(10,10);
lineto(10,280);
lineto(280,280);
end;
end;
//再打印输出,针打无反应,激光打印机走一页空白纸
procedure TButton2.click;
var scaleX,scaleY:integer;
R:TRect;
begin
Printer.begindoc;
Pr:=Rect(0,0,printer.paperwidth,printer.paperheight);
with printer do
try
scaleX:=GetDeviceCaps(Handle,logPixelsX)div PixelsPerInch*2;
scaleY:=GetDeviceCaps(Handle,logPixelsY)div PixelsPerInch*2;
R:=Rect(0,0,Image1.Picture.Width*scaleX,Image1.Picture.Height*scaleY);
canvas.stretchdraw(R,Image1.Picture.Graphic);
//canvas.CopyRect(Pr,image1.canvas,R);
finally
enddoc;
end;end;
我的要求是先对image1.canvas画曲线,然后将其复制到打印机画布输出
begin
DestCanvas.CopyRect(Rect(0,0,Image.width,Image.height),DestCanvas,Rect(0,0,Printer.Width,Printer.height));
end;
scaleX:=GetDeviceCaps(Handle,logPixelsX) div Screen.PixelsPerInch * 2;
scaleY:=GetDeviceCaps(Handle,logPixelsY) div Screen.PixelsPerInch * 2;
//Canvas.Draw(0,0,FImg.Picture.Graphic);
Canvas.StretchDraw(Rect(FImg.Left div 2 ,FImg.Top,(FImg.Width + FImg.Left) * scaleX ,(FImg.Top + FImg.Height) * scaleY),FImg.Picture.Graphic);
//Canvas.CopyRect(Rect(0,0,FImg.Width,FImg.Height),Canvas,Rect(0,0,PageWidth,PageHeight));
EndDoc;
楼主我这样做可以! 但是安你的确实不行。