1 (edited by sibprogsistem 2019-01-22 17:58:20)

Topic: Печать изображения

Возможно-ли отправить на печать изображение из базы данных минуя отчет?

Re: Печать изображения

vovka3003 wrote:

Через TPrinter. В гугле есть множество примеров на delphi.

На сколько я понял из моножества примеров гугл

procedure frmComDoc_Button1_OnClick (Sender: TObject; var Cancel: boolean);
 var
 Printer:TPrinter;
 Canvas:TCanvas;
 Image:TImage;
 Rect: string;
begin
  Printer:=TPrinter.Create;
  Canvas:=TCanvas.Create;
  Image:=TImage.Create(frmComDoc);
  Image.Picture.LoadFromFile(SQLExecute('SELECT scanDoc FROM comDoc WHERE id='+frmComDoc.tgResultSearch.sqlValue ));
  Printer.BeginDoc;
  with Printer do
  Printer.Canvas.StretchDraw(Rect(0,0,PageHeight,PageWidth),Image.Picture.Bitmap);
  Printer.EndDoc;
end;

 
но вот тут мне сообщает, что слишком много парраметров

Rect(0,0,PageHeight,PageWidth)

 
если, что-то убираешь, то тогда тут  не достаточно парраметров

.StretchDraw(Rect(0,0,PageHeight,PageWidth),Image.Picture.Bitmap)

3 (edited by sibprogsistem 2019-01-23 18:30:08)

Re: Печать изображения

procedure frmComDoc_Button1_OnClick (Sender: TObject; var Cancel: boolean);
 var
 Printer:TPrinter;
 Canvas:TCanvas;
 Image:TImage;
begin
  Printer:=TPrinter.Create;
  Canvas:=TCanvas.Create;
  Image:=TImage.Create(frmComDoc);
  Image.Picture.LoadFromFile(frmComDoc.dbImage.dbFileName);
  Printer.BeginDoc;
    with Printer do
      begin
        Printer.Canvas.StretchDraw(0,0,PageHeight,PageWidth,Image.Picture.Graphic);
      end;
  Printer.EndDoc;
end;

у меня изображения (отсканированные A4) будут на A4 печататься PageHeight,PageWidth какой размер нужно установить или их можно не трогать (сам по исходному размеру печатает)?