Ghostscript шрифты - PullRequest
       21

Ghostscript шрифты

1 голос
/ 19 января 2011

Я пытаюсь получить ghostscript для рендеринга PDF-файла из коробки Windows. PDF-файл использует шрифт ComicSansMS. Я скопировал файл comic.ttf из окна Windows7 в каталог / usr / share / ghostscript / fonts и создал файл Fontmap в том же каталоге, содержащий следующую строку:

/ComicSansMS (comic.ttf) ;

Насколько я могу судить, несмотря на это, шрифт не найден. Текст получается очень плохо, а некоторые шрифты меньшего размера отображаются в два раза меньше, чем должны быть. Время доступа и время показывают, что файл Fontmap читается, но файл шрифта (comic.ttf) вообще не доступен. Нет сообщений об ошибках:

hope 78$ gs cards-01.pdf
GPL Ghostscript  9.00 (2010-09-14)
Copyright (C) 2010 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1
>>showpage, press <return> to continue<<

Если я использую -dFAPIDEBUG в командной строке gs, я вижу следующее:

hope 74$ gs -dFAPIDEBUG -I/usr/share/ghostscript/fonts cards-01.pdf
GPL Ghostscript  9.00 (2010-09-14)
Copyright (C) 2010 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1
FAPIhook --nostringval--
Trying to render the font Font --nostringval-- ( aliased from ComicSansMS ) with FAPI...
Font --nostringval-- ( aliased from ComicSansMS ) is being rendered with FAPI=FreeType
FAPIhook --nostringval--
Font --nostringval-- ( aliased from ComicSansMS ) is mapped to FAPI=FreeType
FAPIhook RVJCAL+SymbolMT
Trying to render the font Font RVJCAL+SymbolMT with FAPI...
Font RVJCAL+SymbolMT is being rendered with FAPI=FreeType
FAPIhook RVJCAL+SymbolMT
Font RVJCAL+SymbolMT is mapped to FAPI=FreeType
FAPIhook HYLUQF+ComicSansMS
Trying to render the font Font HYLUQF+ComicSansMS with FAPI...
Font HYLUQF+ComicSansMS is being rendered with FAPI=FreeType
FAPIhook HYLUQF+ComicSansMS
Font HYLUQF+ComicSansMS is mapped to FAPI=FreeType
>>showpage, press <return> to continue<<

Естественно, строка из вышесказанного, которая больше всего беспокоит меня, такова:

Font --nostringval-- ( aliased from ComicSansMS ) is being rendered with FAPI=FreeType

"gs -h" показывает, что каталог шрифтов действительно находится в пути поиска:

hope 77$ gs -h
GPL Ghostscript  9.00 (2010-09-14)
    [ ... ]
Search path:
   /usr/share/ghostscript/9.00/Resource/Init :
   /usr/share/ghostscript/9.00/lib :
   /usr/share/ghostscript/9.00/Resource/Font :
   /usr/share/ghostscript/fonts : /usr/share/fonts/Type1 : /usr/share/fonts

Я пробовал несколько вариантов форматирования в файле Fontmap, в том числе:

(Comic Sans MS) (comic.ttf) ;
(ComicSansMS) (comic.ttf) ;
/Comic Sans MS (comic.ttf) ;
/ComicSansMS /comic.ttf ;

Я вполне уверен, что мой оригинал правильный, но я отчаялся. : -Р

Любая помощь будет принята с благодарностью. Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 22 января 2011

Я предполагаю, что PDF не имеет встроенного шрифта ComicSansMS?

Вам следует рассмотреть и 2 другие возможности:

  1. Ваш файл PDF card-01.pdf каким-то образом поврежден.(Другие программы просмотра PDF отображают этот файл без проблем? Отображается ли он нормально в Acrobat Reader на Widnows?)
  2. Ваш файл шрифтов comic.ttf как-то поврежден.(Какой метод вы использовали для переноса его из Windows в Linux?)

Вы можете попытаться убедительно доказать, что оба эти компонента достаточно хорошо уживаются друг с другом, используя Ghostscript + comic.ttf для создать PDF (со встроенным comic.ttf):

gs \
  -sFONTPATH=/usr/share/ghostscript/fonts \
  -o comic-ttf.pdf \
  -sDEVICE=pdfwrite \
  -g5950x8420 \
  -c "200 700 moveto" \
  -c "/ComicSansMS findfont 60 scalefont setfont" \
  -c "(comic.ttf) show showpage"

В Windows используйте этот вариант приведенной выше команды:

gswin32c.exe ^
  -o comic-ttf.pdf ^
  -sDEVICE=pdfwrite ^
  -sFONTPATH=c:/windows/fonts ^
  -g5950x8420 ^
  -c "200 700 moveto" ^
  -c "/ComicSansMS findfont 60 scalefont setfont" ^
  -c "(comic.ttf) show showpage"

Когда я это сделаю,Я вижу:

gswin32c.exe ^
   -o comic-ttf.pdf ^
   -sDEVICE=pdfwrite ^
   -sFONTPATH=c:/windows/fonts ^
   -dHaveTrueTypes=true ^
   -g5950x8420 ^
   -c "200 700 moveto" ^
   -c "/ComicSansMS findfont 60 scalefont setfont" ^
   -c "(comic.ttf) show showpage"
GPL Ghostscript  9.00 (2010-09-14)
Copyright (C) 2010 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Scanning c:/windows/fonts for fonts... 423 files, 255 scanned, 240 new fonts.
Loading ComicSansMS font from c:/windows/fonts/comic.ttf... 3343720 1813337 2926116 1611207 1 done.

и мой выводной PDF comic-ttf.pdf выглядит нормально и имеет встроенный шрифт comic.ttf.

Если это также работает для вас, то ваш Ghostscript и вашcomic.ttf в порядке, но ваш файл PDF cards-01.pdf - нет.

0 голосов
/ 10 февраля 2011

Я вернулся к этой проблеме после задержки.После дальнейшего исследования с увеличительным стеклом проблема отличается от того, что я первоначально думал.

Текст определенно неправильно отображается в некоторых частях документа.Каждая буква слишком мала, хотя интервал странно правильный.Однако отдельные буквы имеют правильную форму шрифта.

К шрифту на диске нет доступа, но это потому, что все шрифты встроены в документ.Этот факт, вероятно, был бы очевиден для эксперта Ghostscript по выводу, который я разместил в исходном вопросе (я предполагаю, что префикс «HYLUQF +» - это там пистолет для курения), но я мало работаю с Ghostscript.Мои шрифты были установлены правильно, и другие документы смогли без проблем получить к ним доступ.

Конечно, это все еще оставляет вопрос о том, почему мои встроенные шрифты отображаются неправильно, но я буду исследовать это отдельно и / илиопубликовать другой вопрос.Я утверждаю, что файл PDF не поврежден (у меня есть несколько других PDF-файлов, в которых обнаружена та же проблема), но я все еще не знаю, в чем дело.

@ pipitas: Большое спасибо за попытку.Вы, безусловно, помогли убедиться, что мои установленные шрифты не являются проблемой.На самом деле, теперь, когда я снова посмотрел, вы даже мягко предположили, что шрифт может быть встроен, но я либо не видел, либо не верил, либо не знал, как проверить.

...