Отключение диалогового окна Сохранения как в Microsoft XPS Document Writer при преобразовании GDI в XPS

StackOverflow https://stackoverflow.com/questions/810550

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

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

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

Смотрите эту ссылку для получения подробной информации: https://kibitzercz.blogspot.in/2012/01/building-and-using-xpsdrvsmpl-under.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top