Ghostscript подавляет выходные окна при вызове из командной строки

Это мой сценарий:

Я конвертирую PDF-файлы в PNG-изображения, используя Ghostscript на C#. Это строка аргумента, которую я использую:

-dNOPAUSE -dBATCH -dFirstPage=1 -q -r300   -sDEVICE=png256 -sOutputFile=...

Но, таким образом, когда я вызываю Ghostscript, он показывает окно, где (прежде чем я добавил -q) были выходные сообщения.

Я пытался добавить -dNODISPLAY после -r300, Но в этом случае Ghostscript не работает и не создает изображения.

Вопрос: Каким образом я могу подавить окно вывода?

2 ответа

Решение

Если вы хотите запустить Win32/Win64 Ghostscript в командной строке, не открывая отдельное окно (чтобы отобразить его <stdout> а также <stderr> сообщения и позволяют вам <stdin> введите ввод), затем используйте эти двоичные файлы (в зависимости от вашей версии вашего локально установленного Ghostscript):

  • gswin32c.exe (обратите внимание на добавленный c за command/console)
  • gswin64c.exe (обратите внимание на добавленный c за command/console)

Не использовать gswin32.exe или же gswin64.exe! Это версии, которые имеют свои собственные всплывающие окна...

Есть два потенциальных окна, которые могут появиться при запуске gs:

  • В Windows вы можете получить всплывающее окно терминала. ⇐ Это не относится к GhostScript.
  • Во всех системах вы можете получить всплывающее окно рендеринга.

Если окно, которое вы хотите подавить, является окном рендеринга, например, потому что вы хотите использовать PostScript в качестве языка программирования, вы можете изменить устройство на использование опции:

Файлhello.ps

      (%stdout)(w)file (Hello, world!\n) writestring

Команда для запуска этого файла без всплывающего окна с помощьюnullpageс-sDEVICE=nullpage, а также подавление баннерного сообщения GhostScript с помощью-q:

      gs -q -sDEVICE=nullpage -- hello.ps
Другие вопросы по тегам