打印圖片

angelior 2002-11-11 06:58:15
哪位大俠知道!在SQl中對Iamge字段的打印!
不過有一點是!
圖片是通過OLE控件來保存的!保存的有bmp.jpg還有CAD圖形!
用DBimage控件,會有出錯信息,是Bitmap 無效!
謝了!
...全文
193 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
angelior 2002-11-30
  • 打赏
  • 举报
回复
還有CAD圖形,不知從何處下手!
angelior 2002-11-22
  • 打赏
  • 举报
回复
不過這對從掃描儀讀入的就出錯了!
一樣!
bitmap無效!
ehom 2002-11-12
  • 打赏
  • 举报
回复
用流读出二进制数据,代码论坛中查询!

bmp可以直接读取,jpg可加入JPEG单元,cad图形只能直接去研究图形格式!

http://www.efg2.com/Lab/Library/Delphi/Graphics/ColinSarsfield_dxfgrph.zip

下载该单元文件可获得对DXF格式的支持!

假设已将图像数据保存到流Stream中!

var
strect:Trect;
temhi,temwd,temhi2,temwd2,i:integer;
begin
try
if Printer.Printers.Count=0 then
begin
showmessage('打印机调用错误,请您先安装打印机!');
end
else
begin
TemBmp.LoadFromStream(Stream);
TemBmp.HandleType:=bmDIB;
if PrintDialog.Execute then
begin
temhi:=TemBmp.height;
temwd:=TemBmp.width;
temhi2:=printer.pageheight;
temwd2:=printer.pagewidth;
with strect do
begin
if (temhi/temwd-temhi2/temwd2)>0 then
begin
top:=0;
left:=Round((temwd2-temhi2/temhi*temwd)/2);
right:=temwd2-Left;
bottom:=temhi2;
end
else
begin
left:=0;
top:=Round((temhi2-temwd2/temwd*temhi)/2);
right:=temwd2;
bottom:=temhi2-Top;
end;
end;
Printer.BeginDoc;
for i:=1 to Printer.Copies do
begin
Printer.Canvas.StretchDraw(Strect,TemBmp);
if i<>Printer.Copies then Printer.NewPage;
end;
Printer.EndDoc;
end;
end;
except
showmessage('打印机调用错误!');
end;
end;
CloneCenter 2002-11-12
  • 打赏
  • 举报
回复
什么样的图片用什么样的控件来打印。

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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