我打印过证件,包括照片,使用QuickRep, A4幅面,一页 2X4 张, 方法如下:
建立一个QuickRep, 只用一个DetialBand,设定好DetialBand的尺寸(因为方便,
我使用mm为计量单位),编排好姓名、性别等字段的TQRLabel和TQRDBText,
并放置一个TQRImage(我的照片以JPEG格式存储,TQRDBImage不支持)
QuickRep 和 DetialBand 的 DataSet 设置为 MyTable;
QuickRep 的 Page.Columns 设为 2(打印两列)
在 DetialBand 的 BeforePrint 写入如下代码
var
FJpeg : TJpegImage;
FStream : TStream;
procedure TPCardForm.DetailCardBeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
// 实现图像打印
try
FStream := MyTablePhoto.DataSet.CreateBlobStream(MyTablePhoto, bmread);
FJpeg := TJpegImage.Create;
try
FJpeg.LoadFromStream(FStream);
QRImage1.Picture.Assign(FJpeg);
QRImage1.Refresh;
finally
FJpeg.Free;
FStream.Free
end
except
ShowErrorBox(format('%s 的照片损坏!', [MyTableCardID.value]));
// 消息显示对话框
QRImage1.Picture.Assign(nil);
end;
搞定。