Почему Ghostscript не распознает мой сгенерированный файл 'cidfmap'? - PullRequest
0 голосов
/ 03 мая 2019

(Использование Ghostscript 9.27 в Windows 10)

У меня нет проблем с выполнением следующей команды Ghostscript в моих PDF-файлах; файл по умолчанию 'cidfmap' в Resources / Init подобран просто отлично:

gswin64c.exe -I"C:/Program Files/gs/ghostscript-9.27/Resource/Init" -sDEVICE=pdfwrite -dNODISPLAY -dPDFSETTINGS=/printer -dPDFSTOPONERROR -dBATCH -dNOPAUSE -sOutputFile=output.pdf input.pdf

Однако, когда я хочу использовать сгенерированный файл 'cidfmap' (используя скрипт mkcidfm.ps), он хочет использовать только значение по умолчанию и не будет использовать сгенерированный файл 'cidfmap'. Новая команда, которую я пробую:

gswin64c.exe -I"C:/Program Files/gs/ghostscript-9.27/Resource/Init" -sCIDFMAP="C:/Temp/cidfmap" "C:/Program Files/gs/ghostscript-9.27/lib/mkcidfm.ps" -sDEVICE=pdfwrite -dNODISPLAY -dPDFSETTINGS=/printer -dPDFSTOPONERROR -dBATCH -dNOPAUSE -sOutputFile=output.pdf input.pdf

Я пытался добавить "C: \ Temp" в список каталогов в параметре -I, но это не сработало.

Что именно я делаю не так?

1 Ответ

0 голосов
/ 03 мая 2019

Основной ответ заключается в том, что в командной строке Ghostscript «CIDFMAP» нет.

Способ, которым командная строка Ghostscript управляет работой, заключается в том, что любой переключатель, который не распознается интерпретатором или устройством, предполагается, что он является переменной PostScript. Такие переменные определены в systemdict, что делает их доступными для любых программ PostScript, которые могут захотеть их использовать. Многие утилиты, поставляемые с Ghostscript, используют эту функцию.

Единственное использование для -sCIDFMAP - это передача параметра в программу PostScript mkcidfm.ps, которая сообщает этой программе имя выходного файла для хранения сгенерированного cidfmap.

Итак, вам нужно сгенерировать cidfmap в каталоге Resource / Init, или скопировать его туда, или попросить Ghostscript добавить каталог, в котором вы его генерируете, в путь поиска, используя -I. Самый надежный способ - поместить его в /Resource/Init.

.

Я думаю (но это не моя область), что Ghostscript будет искать первый файл cidfmap и использовать его, поэтому, если вы поместите файлы ресурсов перед каталогом с вашим cidfmap, то он сначала найду их. Вы можете попробовать поменять порядок поиска, но лично я чувствую, что это рискованно. Если вы собираетесь использовать ресурсы с диска, просто поместите туда файл cidfmap.

...