Подавление диалогового окна «Сохранить как» в Microsoft XPS Document Writer при преобразовании GDI в XPS - PullRequest
2 голосов
/ 01 мая 2009

В своей записи в блоге Печать документов в Microsoft XPS Document Writer без взаимодействия с пользователем Фэн Юань говорит

Если вы печатаете из своих собственных приложений, легко указать MXDW в качестве драйвера принтера и указать имя файла для документа XPS, который будет сохранен в

Может кто-нибудь объяснить, как это сделать, и предоставить пример кода?

Основная проблема, с которой я сталкиваюсь, - это закрытие диалогового окна «Сохранить как», которое появляется в окне Microsoft XPS Document Writer. Мне не нравится прибегать к взлому UI, как это делает Юань на своем посту.

В настоящее время мое приложение выполняет вызовы рисования GDI в контексте устройства любого принтера, который пользователь хочет использовать. Я могу выполнить эти вызовы на устройстве записи документов XPS, но когда наступит время завершить печать, средство записи XPS отобразит диалоговое окно сохранения как.

Ответы [ 4 ]

1 голос
/ 04 мая 2009

Действительно, тот же автор дает ответ Печать в Microsoft XPS Document Writer без отображения диалогового окна сохранения файла . Решением является печать в файл с использованием принтера Microsoft XPS Document Writer.

0 голосов
/ 25 апреля 2018

Просто удалите и переустановите Microsoft XPS Document Writer, выполните следующие действия во время переустановки.

Зайдите в Пуск - Панель управления - Добавить новый принтер. Затем выберите «Локальный принтер» и «Создать новый порт». Выберите Локальный порт в поле со списком. Появится диалоговое окно с запросом имени порта. Чтобы наш драйвер XPS печатал в указанный файл, не спрашивая у пользователя местоположение, введите полный путь для этого выходного файла. Этот файл не должен существовать в данный момент (например, c: \ mydriveroutput.xps).

Подробнее см. По этой ссылке: https://kibitzercz.blogspot.in/2012/01/building-and-using-xpsdrvsmpl-under.html

0 голосов
/ 16 августа 2010

Вот что у меня работает:

  With Me.PrintDocument
     With .PrinterSettings
        .PrinterName = "Microsoft XPS Document Writer"
        .PrintToFile = True
        .PrintFileName = "c:\test.xps"
     End With
    .Print()
  End With

Насколько я знаю, это недокументировано. Попробуйте, и вы не получите страшный диалог Сохранить как. Вместо этого вы получаете чистый XPS-файл, сгенерированный MXDW (c: \ test.xps).

0 голосов
/ 01 мая 2009

И если вы хотите избежать попадания в файловую систему с вашим документом XPS, Shahed Kahn дает пример кода в Загрузка Xps из MemoryStream .

...