В PDF есть две категории шрифтов - «обычные» шрифты и CIDFonts. Для обычных шрифтов для каждого глифа будет использоваться только один байт, и в PDF будет представлена кодировка и другая информация для выбора глифа из шрифта. Ghostscript сделает предположение о замене шрифта на основе FontName и, хотя он может не выглядеть как оригинал, он должен напечатать.
CIDFonts, однако, часто доступны с использованием нескольких байтов, и имя подразумевает некоторый CMap, необходимый для правильного декодирования потока байтов в число глифов. Другая «проблема» заключается в том, что числа глифов для конкретных глифов будут варьироваться в зависимости от «Порядка». Для CIDFonts, которые не встроены, Ghostscript выдаст ошибку, например:
Can't find CID font "KozMin-Bold".
Substituting CID font /Adobe-Japan1 for /KozMin-Bold, see
doc/Use.htm#CIDFontSubstitution.
The substitute CID font "Adobe-Japan1" is not provided either. Will exit with error.
Это говорит о том, что в PDF-файле использовался шрифт "Kozmin-Bold", в котором указано "Adobe-Japan1" и:
1) шрифт Kozmin-Bold не найден в каталоге ресурсов Ghostscript / CIDFont
2) В файле cidfmap не определено сопоставление для Kozmin-Bold (GS ищет этот файл в любом из LIBPATH, указанном как «Пути поиска» из «gs -h».
3) В cidfmap не было сопоставления шрифтов с Adobe-Japan1 Ordering. Если Ghostscript не может найти шрифт, используя шаги 1 и 2, он заменит шрифт, используя Ordering в качестве имени шрифта. По крайней мере, это должно получить правильный глиф.
Я не хочу воспроизводить здесь документацию по cidfmap, поскольку мы время от времени обновляем ее, но к ней можно получить доступ онлайн: http://www.artifex.com/gs-current-release/Use.htm#CIDFontSubstitution
Примеры приведены в этом разделе документации Ghostscript.