如何用api函数来打印Timage

XD王 2009-12-28 10:55:04
我用 PrinterSetupDialog 来操作,在自己机器上可以顺利的实现打印,但是一放到其他机器上运行,打印出来的就是一张白纸。请教一下 如何用API函数来实现打印,不是使用控件。

这段就是我用控件打印的代码:
procedure TForm1.BitPrintClick(Sender: TObject);
var
strect:Trect; //定义打印输出矩形框的大小
temhi,temwd:integer;
begin
if Image2.Picture.Graphic=nil then exit;

printersetupdialog1.execute;
if printdialog1.execute then
begin
temhi:=image2.Height;
temwd:=image2.width;
while(temhi<printer.pageheight/2 ) and(temwd<printer.pagewidth/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,Image2.Picture.Bitmap); //将放大的图形向打印机输出
enddoc;
end;
end;
end;
...全文
62 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lyhoo163 2010-01-02
  • 打赏
  • 举报
回复
up
hjkto 2009-12-29
  • 打赏
  • 举报
回复
学习
dd_zhouqian 2009-12-29
  • 打赏
  • 举报
回复
USES Printers

VAR TP:TPRINTER;
begin
TP:=TPrinter.Create;
TP.Canvas.Draw();
END;
XD王 2009-12-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gyk120 的回复:]
PRINTDIALOG有效吗?
[/Quote]
有效的,就是没有数据输出,打印成白纸
gyk120 2009-12-28
  • 打赏
  • 举报
回复
PRINTDIALOG有效吗?
发帖
Windows SDK/API

1177

社区成员

Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
帖子事件
创建了帖子
2009-12-28 10:55
社区公告
暂无公告