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

Я пытаюсь использовать Ghostscript 9.27 в Windows 10 Pro для сжатия PDF со шрифтами CID, используя измененный файл 'cidfmap' ($ GS_HOME / Resource / Init / cidfmap). Однако Ghostscript, похоже, не распознает мои изменения в 'cidfmap', а вместо этого хочет загрузить шрифт DroidSansFallback TrueType для эмуляции отсутствующего шрифта CID.

Я попытался с помощью параметра командной строки "-I" указать Ghostscript использовать измененный файл в каталоге $ GS_HOME / Resource / Init, как указано в документации.

Я также пытался создать исходный код в командной строке разработчика для VS 2017, используя следующую команду (без ошибок):

nmake /A psi/msvc.mak MSVC_VERSION=15 WIN64=

Ниже приведена полная команда Ghostscript, которую я запускаю в командной строке:

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

запись добавлена ​​в файл 'cidfmap' (он единственный):

/MSPGothic << /FileType /TrueType /Path ("C:/Windows/Fonts/msgothic.ttc") /SubfontID 0 /CSI [(Japan1) 2] >> ;

и вывод из Ghostscript, который я получал в обоих случаях:

GPL Ghostscript 9.27 (2019-04-04)
Copyright (C) 2018 Artifex Software, Inc.  All rights reserved.
This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY:
see the file COPYING for details.
Processing pages 1 through 4.
Page 1
Loading NimbusRoman-Bold font from C:/Program Files/gs/ghostscript-9.27/Resource/Font/NimbusRoman-Bold... 4570288 3226611 4074256 2336262 4 done.
Page 2
Page 3
Querying operating system for font files...
Substituting font Helvetica for ArialMT.
Loading NimbusSans-Regular font from C:/Program Files/gs/ghostscript-9.27/Resource/Font/NimbusSans-Regular... 5086792 3742157 2284000 967988 4 done.
Substituting font Helvetica-Narrow for ArialNarrow.
Loading NimbusSansNarrow-Regular font from C:/Program Files/gs/ghostscript-9.27/Resource/Font/NimbusSansNarrow-Regular... 5273304 3930300 2397536 1064531 4 done.
Substituting font Helvetica-Bold for Arial-BoldMT.
Loading NimbusSans-Bold font from C:/Program Files/gs/ghostscript-9.27/Resource/Font/NimbusSans-Bold... 5500440 4150230 3021540 1680111 4 done.
Can't find CID font "MSPGothic".
Attempting to substitute CID font /Adobe-Japan1 for /MSPGothic, see doc/Use.htm#CIDFontSubstitution.
The substitute CID font "Adobe-Japan1" is not provided either. attempting to use fallback CIDFont.See doc/Use.htm#CIDFontSubstitution.
Loading a TT font from C:/Program Files/gs/ghostscript-9.27/Resource/CIDFSubst/DroidSansFallback.ttf to emulate a CID font Adobe-Japan1 ... Done.
Page 4
Can't find CID font "MSPGothic".
Attempting to substitute CID font /Adobe-Japan1 for /MSPGothic, see doc/Use.htm#CIDFontSubstitution.
Loading a TT font from C:/Program Files/gs/ghostscript-9.27/Resource/CIDFSubst/DroidSansFallback.ttf to emulate a CID font Adobe-Japan1 ... Done.

Кажется, что здесь я упустил что-то простое, поскольку другие с похожими вопросами работали только с параметром командной строки "-I".

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

1 Ответ

0 голосов
/ 17 апреля 2019

Проблема (как только я посмотрел достаточно внимательно!) Ясна.Вы поставили кавычки "" вокруг имени файла.

Символы '(' и ')' являются разделителями строк в PostScript, а не "(а файл cidfmap читается как программа PostScript), поэтому, делая этоВы сделали "символы частью пути.Неудивительно, что Ghostscript не может найти путь, начинающийся с "

. Поэтому, если вы измените свою запись в cidfmap на:

/MSPGothic << /FileType /TrueType /Path (C:/Windows/Fonts/msgothic.ttc) /SubfontID 0 /CSI [(Japan1) 2] >> ;

, вы должны найти, что она работает, она подходит для меня.

...