Я пытаюсь добавить печатные 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.
С наилучшими пожеланиями, Спасибо.