关于打印图像的问题!(50分)

  • 主题发起人 主题发起人 Robot5
  • 开始时间 开始时间
R

Robot5

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在相片纸上把一个照片打印两次(排列方式为上下,相片纸是竖方到打印机里的。),要如何做?
还有我写的程序只能打一次,我是用Printer来做的。但不知道是为什么?(555555~~~好贵的相片纸呀,浪费了N张了!)请大家帮忙了!
我的程序如下:=====================================================
procedure PrintBitmap(Canvas: TCanvas; DestRect: TRect; Bitmap: TBitmap);
var
BitmapHeader: pBitmapInfo;
BitmapImage: POINTER;
HeaderSize: DWORD;
ImageSize: DWORD;
begin
GetDIBSizes(Bitmap.Handle, HeaderSize, ImageSize);
GetMem(BitmapHeader, HeaderSize);
GetMem(BitmapImage, ImageSize);
try
GetDIB(Bitmap.Handle, Bitmap.Palette, BitmapHeader^, BitmapImage^);
StretchDIBits(Canvas.Handle,
DestRect.Left, DestRect.Top,
DestRect.Right - DestRect.Left,
DestRect.Bottom - DestRect.Top,
0, 0, // 源初始坐标
Bitmap.Width, Bitmap.Height,
BitmapImage,
TBitmapInfo(BitmapHeader^),
DIB_RGB_COLORS,
SRCCOPY)
//位图按照要求进行拉伸
finally
FreeMem(BitmapHeader);
FreeMem(BitmapImage);
end;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
Printer.BeginDoc;
PrintBitmap(Printer.Canvas,Rect(60, 100,2000,1410),Imageen1.Bitmap);
PrintBitmap(Printer.Canvas,Rect(60,1500,2000,1410),Imageen1.Bitmap);
end;
 
我直接用
Printer.Canvas.StretchDraw(Rect(), Image1.Picture.Graphic);试过,没问题


procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
Printer.BeginDoc;
Printer.Canvas.StretchDraw(Rect(60, 100,2000,1410), Image1.Picture.Graphic);
Printer.Canvas.StretchDraw(Rect(60,1500,2000,1410), Image1.Picture.Graphic);
Printer.EndDoc;
end;

还有你先在普通纸上试嘛

 
对了,好像上次回答过你类似的问题的
 
是呀,还得谢谢你了。
我这里不知道为什么老是打印不出来。
每次只打印第一个图片。第二个就看不到了。
我用的是热升华打印机!不知道是不是和打印机有关?
 
不会呀,我上次专门试过的.
我记得我用了二个不同的Image
 
哦,我只用了一个image控件,用的是第三方的ImageEn控件。
还有我打印的是jpg的图所以用的是ImageEn控件。
是不是和第三方控件有关。
 
今天晚上12点我们这里网络要维护,先下了,祝你好运
 
好吧!谢谢了!
 
你在普通纸上试一试,应该不会是三方控件的原因
 
好的,我刚用HP的激光打印机试了,还是老样子。
快晕了!
 
试一试不同的image
 
我想是不是我的Delphi7的问题!Delphi7每次编译完程序退出时总说读地址错误!
 
有可能,那把delphi重装一下呢,这可麻烦了
 
是呀!我的Delphi7不知道为什么每次在退出时都什么提示出错。
但编译出来的程序没问题可以正常动行。快晕死了。看来还是要用D6了。
 
好像d7是没有D6稳定
 
干脆我去换个D6在试试,谢谢了。
对了,你用的是哪个版本?
 
你是否用的是 win98?
 
我用的是Windows2003标准版
 
解决了吗 恭喜
 
后退
顶部