我在详细说一下我遇到的问题,我现在需要实现的功能是将在一个特定目录下的所有
JPEG图像文件打印出来.
我对打印不熟悉,不知道如何直接打印JPEG文件,所以我用了很笨的办法,就是把JPEG
文件先转化成BMP文件,然后再打印他们,我用了一个循环可是打印时确只打了第一幅图
还有对于文件流stream这个概念我也不很清楚,我有这样一个想法不知是否可行:就是
把所有要打印的文件通过文件流做成一个大的图型文件,然后在打印这个文件来实现
多页打印.
下面是我的程序,请大家看看问题出在哪里:
begin
//新建所有BMP文件
app1:=form1.Picline;
while(app1<>nil) do
begin
jpegtobmp1.jpegfile:='c:/temp/s'+inttostr(app1^.num)+'.jpg';
jpegtobmp1.bmpfile:='c:/temp/p'+inttostr(app1^.num)+'.bmp';
jpegtobmp1.CopyJpegToBmp;
i:=i+1;
app1:=app1^.Next;
end;
Printer.BeginDoc;
ScaleX := GetDeviceCaps(printer.Handle, logPixelsX);
ScaleY := GetDeviceCaps(printer.handle, logPixelsY);
for j:=1 to i-1 do
begin
image1.picture.graphic.loadfromfile('c:/temp/p'+inttostr(j)+'.bmp');
R := Rect(0, 0, Image1.Picture.Width * scalex div 75, Image1.Picture.height*scaley div 75);
Printer.Canvas.StretchDraw(R, Image1.Picture.Graphic); // **
end;
printer.EndDoc; // **
end;