Программно конвертировать (сохранять) файлы (т.е. docx, xlsx, txt) в XPS, отправляя их на принтер "Microsoft XPS Document Writer"

Используя C# 3.5, я пытаюсь программно создавать файлы XPS, отправляя их на принтер "Microsoft XPS Document Writer". Я могу установить очередь печати, но не могу добавить работу в очередь печати с помощью PrintQueue.AddJob(), потому что она ожидает файл XPS. Я также попытался установить PrintSystemInfo JobStream в байтовый массив, но безрезультатно.

По сути, я хочу имитировать то, что пользователь делает вручную при печати в "Microsoft XPS Document Writer": 1. Выберите "Microsoft XPS Document Writer" из списка принтеров. 2. Укажите новое имя файла XPS. 3. Распечатайте его (который сохранит как файл.xps)

Я думаю, что с пространствами имен System.Printing и System.Windows.Xps будет простой способ сделать это. Я провел много времени, исследуя это, и видел, как другие люди пытались выполнить ту же задачу, но не смог найти элегантного решения.

Любое понимание будет высоко ценится.

Благодарю.

1 ответ

То, что вы должны искать, это как попросить приложения, которые знают, как читать эти файлы, чтобы распечатать их. Я имею в виду, что Excel может отображать xslt, поэтому вы должны попросить Excel распечатать его в XPS Writer (возможно, через COM).

Пространство имен System.Windows.Xps может помочь, если вы знаете, как читать и визуализировать документ - тогда вы делаете соответствующие вызовы методов XpsDocuments, аналогичных этому /questions/2935955/kak-sozdat-dokument-xps/2935970#2935970, переводя ваш документ в xps и затем распечатать его.

Другие вопросы по тегам