Как правильно распечатать документ Microsoft Word на моем виртуальном принтере с помощью ghostscript?

Я реализую программу, аналогичную облачному принтеру Google. Это виртуальный принтер, использующий драйвер класса PostScript. Как показано на рисунке (я добавляю суффикс 64). Китайский перевод на английский язык: Helpfile, ConfigurationFile DataFile DriverFile Dependency. i.stack.imgur.com/tvePP.png" alt="введите здесь описание изображения">

Я использую redmon для получения стандартного ввода и использую ghostscript для преобразования его в pdf. В то же время я получаю информацию о работе из очереди принтера. С pdf и информацией о работе я могу отправить их на свой сервер. Затем мой сервер может распечатать документ. Я вызываю ghostscript, как показано на рисунке. .com/2xJ6x.png" alt="введите здесь описание изображения">

Когда я использую WPS (китайское приложение, такое же, как Microsoft Word) для печати документа docx, информация о задании в очереди заданий верна. Например, когда я печатаю test.docx и выбираю три копии, сортировку, цвет, я получаю правильный результат из очереди заданий. Все становится странно, когда дело доходит до Microsoft Word. Когда я использую Microsoft Word для печати docx, я получаю информацию о задании из очереди. Независимо от того, сколько копий указывает пользователь, копий всегда одна. При этом конвертированный pdf тоже содержит одну копию. Это означает, что у меня нет возможности достичь своей цели (получить PDF-файл и информацию о работе, например, копии. Затем отправить их на мой сервер). Кто-нибудь знает, как я могу получить нужное количество копий, или, по крайней мере, он должен вести себя как принтер Microsoft Print to Pdf (как показано в ps). Мой письменный английский не очень хорош. Спасибо!

PS: я также протестировал Microsoft Print to PDF. Если я выберу три копии в Word, информация о задании в очереди заданий всегда будет одна. Однако целевой PDF-файл содержит три копии (если docx представляет собой одну страницу, целевой PDF-файл состоит из трех страниц).


person Shadow fiend    schedule 22.03.2020    source источник


Ответы (1)


Похоже, вы задали здесь два вопроса, и только один из них относится к Ghostscript. Кажется, ваш первый вопрос касается того, что отображает подсистема печати Windows, когда вы печатаете задание, я не могу вам с этим помочь. На самом деле я сомневаюсь, что кто-либо, кроме разработчиков приложений (WPS и Word), может объяснить вам, почему они управляют подсистемой печати по-разному.

Ваш второй вопрос, кажется, «почему я получаю только одну копию файла PDF». Тогда первый вопрос, который я должен задать: чего вы ожидаете? Вы ожидаете один PDF-файл с тремя копиями контента или 3 PDF-файла, каждый из которых содержит одну копию контента?

Есть два возможных способа получить несколько копий; сначала отправьте содержимое три раза и альтернативно (в программе PostScript) установите /#Copies на количество необходимых копий. Я не могу сказать (поскольку ни в том, ни в другом случае вы не предоставили программу PostScript), какой подход используется каждым приложением.

Если ваша проблема заключается в том, что вы получаете три копии из WPS и одну копию из Word, то я предполагаю, что WPS отправляет контент 3 раза, а Word отправляет его один раз, но установка числа копий до 3. Устройство pdfwrite в Ghostscript игнорирует /#Copies и создает только одну копию содержимого на выходе.

Вы не можете изменить это.

person KenS    schedule 22.03.2020
comment
Спасибо за ответ!. (Если ваша проблема в том, что вы получаете три копии из WPS и одну копию из Word.) Используя драйвер PS и ghostscript, я получаю одну копию из WPS и Word. Однако при использовании WPS в очереди заданий указаны настоящие копии, а не Word. Таким образом, есть ли способ получить нужное количество копий Word? - person Shadow fiend; 23.03.2020
comment
Извините, это не вопрос Ghostscritp, это либо Word, либо система печати Windows (вероятно, Word), и я не могу вам с этим помочь. - person KenS; 23.03.2020
comment
В любом случае, спасибо за ответ. Я нашел хороший способ сделать это. Несмотря на очередь заданий, я могу получить аргумент печати из файла .ps, что является неофициальным способом. - person Shadow fiend; 23.03.2020