Delphi: печать html-файла с настройками страницы / принтера (например, поля) - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь добавить печатные HTML-файлы в свое приложение, которое помогает веб-приложению, обычно пользователь сохраняет отчеты из веб-приложения в формате html или pdf и распечатывает эти файлы позже из моего приложения.Я нашел следующий способ печати HTML-файлов из Delphi с использованием shellexecute:

uses
  Printers, shellapi;
....

var
  hDeviceMode: THandle;
  sDevice : array[0..255] of char;
  sDriver : array[0..255] of char;
  sPort   : array[0..255] of char;
  S, htmlFileName: String;
  shellResult: Integer;
begin
  htmlFileName := 'C:\users\steve\desktop\print.html';
  Printer.PrinterIndex := -1;
  Printer.GetPrinter(sDevice, sDriver, sPort, hDeviceMode);

  S := Format('"%s" "%s" "%s" "%s"', [htmlFileName, sDevice, sDriver, sPort]);
  S := 'c:\windows\system32\mshtml.dll,PrintHTML ' + S;
  shellResult := ShellExecute(Handle, 'open',PChar('rundll32.exe'),PChar(s),nil,SW_SHOWDEFAULT);
end;

Во-первых, он должен печатать файл напрямую, не открывая диалоговое окно печати, но это не так.

Во-вторых, я не смог найти способ изменить параметры принтера или страницы (например, размер бумаги - поле) перед печатью файла.

Есть ли способ установить параметры печати и бумагиперед печатью, или есть другой способ печати?Примечание. Мы можем изменить формат файла и обработать файл PDF.

С наилучшими пожеланиями, Спасибо.

...