打印Timage中的图像的问题需要打印图片原尺寸 ( 积分: 100 )

  • 主题发起人 tzlaoliu
  • 开始时间
T

tzlaoliu

Unregistered / Unconfirmed
GUEST, unregistred user!
打印Timage中的图像的问题

大家好,我在写一个程序的时候需要用到打印Timage中显示的图片
图片是从数据库中取出来的显示到Image中的
显示代码如下
[Copy to clipboard] [ - ]CODE:
var
buf,buf1: TMemoryStream;
begin
try
if DataMod.ADOLocal.FieldValues['User_Pic_Z'] <> 'NULL' then
begin
buf := TMemoryStream.Create;
try
buf.Position := 0;
tblobfield(DataMod.ADOLocal.FieldByName('User_Pic_Z')).SaveToStream(buf);
buf.Position := 0;
Pic1z.Picture.Graphic := nil;
Pic1z.Picture.Graphic := TJPEGImage.Create;
Pic1z.Picture.Graphic.LoadFromStream(buf);
buf.Free;
因图片的尺寸是A4幅的,我需要打印图片的实际尺寸,如果直接打印Image打印出的尺寸是Image的尺寸的图片,很小
我需要打印实际尺寸的图片,另外我想在打印之前可以让用户设置一下自己的打印机,比如打印份数,打印速度,打印机等
我目前仅用循环方式实现了打印份数,其他的实在想不出来了
我的打印代码
[Copy to clipboard] [ - ]CODE:
var
ScaleX,ScaleY :Integer;
R :TRect;
N:integer;
prn:TPrinter;
begin
try
N:=StrToInt(EditN.Text);
if Application.MessageBox('是否打印?','提示',4) = IDYES then
begin
while N>0do
begin
with Printer do
begin
begin
Doc;
ScaleX := GetDeviceCaps(Handle,LogPixelsX) div PixelsPerInch;
ScaleY := GetDeviceCaps(Handle,LogPixelsY) div PixelsPerInch;
R := Rect(0,0,Pic1z.Picture.Width*ScaleX ,Pic1z.Picture.Height*ScaleY);
Canvas.StretchDraw(R,Pic1z.Picture.Graphic);
EndDoc;
end;
N:=N-1;
end;
Next;
end;
except
ShowMessage('请正确输入打印份数');
end;
还有一个问题就是如果用户没有打印机程序会保存为虚拟打印文件
我不能需要这个功能
希望能一并帮俺解决
分不够再开200分帖子解决图片加解密
谢谢看完
回帖请附邮箱,我发完整代码
 

Similar threads

I
回复
0
查看
2K
import
I
I
回复
0
查看
582
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
698
import
I
顶部