Delphi DX10 печатает в XPS без диалога

Я использую модуль Tprinters, а не TDocInfo

Я хочу печатать в файл XPS с заданным именем файла. Как я могу предотвратить всплывающее диалоговое окно «Сохранить как», пожалуйста?

printer.setPrinter('Microsoft XPS Document Writer','','',0);
// I want something like : printer.fileName := 'myXPS.xps';
printer.BeginDoc; // here pops up the "saveAs" dialog but I don't it as I know the filename
.........
printer.endDoc;

person JimPapas    schedule 23.03.2017    source источник
comment
Покажите нам код, который вы сейчас используете.   -  person David A    schedule 24.03.2017
comment
У меня уже есть записывающий блок печати, который отлично работает, и я использую его с другими приложениями. В этом устройстве используются принтеры, но в примере, который вы мне показываете, используется другой подход. Мой вопрос остается: есть ли способ установить имя выходного файла с помощью принтера или нет?   -  person JimPapas    schedule 24.03.2017
comment
Согласно Как программно печатать файлы XPS, это можно сделать с помощью функции AddJob. Есть образец C#/VB.Net, но, к сожалению, для демонстрации они используют класс .Net PrintQueue. Чтобы использовать TPrinter, вы можете сделать то же самое самостоятельно, используя необработанную версию API Добавить задание. Я посмотрю, смогу ли я в какой-то момент сегодня откопать пример этого.   -  person Ken White    schedule 24.03.2017
comment
Похоже, что AddJob() из необработанного API устарел с момента выпуска Win8, поэтому, вероятно, он тоже не будет работать для вас.   -  person Ken White    schedule 24.03.2017