| imho.ws |
![]() |
|
|
|
# 1 |
|
Junior Member
Регистрация: 16.07.2002
Сообщения: 113
![]() |
Добрый день.
Помогите решить такую задачу. Есть входные файлы в формате HTML их нужно преобразовать в PDF, сделать это нужно программно (Delphi 7). Я так понимаю это можно сделать с помощью виртуального PDF принтера - вроде есть такие free версии - но я не знаю, как программно из Delphi отправить HTML файл на конкретный принтер (virtual pdf printer) чтобы не вызывалось никаких диалогов и т.п. Подскажите как? Другой путь, это использовать GhostScript (есть его фри версия) для преобразования файла PostSctript в PDF. В этом варианте я не знаю, как из HTML файла получить PostScript файл? Никак не могу разобраться... Спасибо! |
|
|
|
|
# 2 |
|
Guest
Сообщения: n/a
|
Вот так можно печатать в Delphi7
Код:
var
eQuery: OLECMDF;
vaIn, vaOut: OleVariant;
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('D:\AAA\IMHO.ws\misc.php.html');
vaIn:=null;vaOut:=null;
eQuery := Webbrowser1.QueryStatusWB(OLECMDID_PROPERTIES);
if (eQuery and OLECMDF_ENABLED) = OLECMDF_ENABLED then
Webbrowser1.ExecWB( OLECMDID_PROPERTIES, OLECMDEXECOPT_PROMPTUSER, vaIn, vaOut);
procedure TForm1.Button2Click(Sender: TObject);
begin
// напечатает без диалогов
WebBrowser1.ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
// установка параметров страницы
WebBrowser1.ControlInterface.ExecWB(OLECMDID_PAGESETUP, OLECMDEXECOPT_PROMPTUSER,vaIn, vaOut);
// PREVIEW
WebBrowser1.ControlInterface.ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
Попытайтесь разобраться сами. Приведенная программа мне 12 листов напечатала ( собака ), без всяких диалогов.
|
|
|
# 4 |
|
Junior Member
Регистрация: 16.07.2002
Сообщения: 113
![]() |
Действительно работает, теперь нужно понять как при печати фоном (без диалогов) выбрать принтер и указать имя файла. Подскажите, кто знает?
// напечатает без диалогов WebBrowser1.ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut); Печатает на принтере, выбранном по умолчанию... при этом открывается диалоговое окошко самого вирт. принтера... нужно, чтобы не открывалось. |
|
|