Преобразование PDF в XPS через Microsoft XPS Document Writer - PullRequest
8 голосов
/ 18 февраля 2010

Печать документа PDF с помощью Microsoft XPS Document Writer:

string filename = "C:\\1.pdf";

Process process = new Process();
process.StartInfo.Verb = "PrintTo";

process.StartInfo.FileName = @"C:\Program Files\Adobe\Reader 9.0\Reader\acrord32.exe";

process.StartInfo.Arguments = 
    "/t \"C:\\1.pdf\" \"Microsoft XPS Document Writer\" \"xps\"  XPSPort:";

process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.CreateNoWindow = true;

process.StartInfo.UseShellExecute = false;

process.Start();
process.StandardOutput.ReadToEnd();

process.WaitForExit();

Единственная проблема - диалоговое окно сохранения, которое запрашивает имя файла (* .xps), где сохранить результат.Everbody советует DOCINFO решить эту проблему, но я не нашел ни одного примера использования.Мне нужно программно напечатать PDF-файл через Microsoft XPS Document Writer с именем выходного файла по умолчанию.Как мне использовать DOCINFO в этой ситуации?

Можете ли вы мне помочь?

Ответы [ 2 ]

1 голос
/ 19 июля 2018

Вы не можете надежно печатать, вызывая Acrobat Reader, если не проведете сеанс на рабочем столе и там не будет пользователя, потому что иногда всплывают диалоговые окна, требующие внимания пользователя.

Также нарушает лицензию Adobe, если используется без присмотра.

Однако вы можете печатать, используя Ghostscript.

Существует интерфейс C # для Ghostscript, который называется Ghostscript.Net , который я успешно использовал в некоторых очень крупных проектах. И Ghostscript, и Ghostcript.Net бесплатны и имеют открытый исходный код.

0 голосов
/ 18 февраля 2010

Структура DOCINFO управляет именами файлов в диспетчере очереди печати, но не связана с реализацией диалогового окна сохранения драйвера xps. Но вы можете найти диалоговое окно Сохранить, ввести имя файла и закрыть его программно. Прочитайте, например, статью .

...