Как я могу конвертировать PDF в изображение без потери шрифта? - PullRequest
0 голосов
/ 25 февраля 2019

Я прочитал тонны вопросов по stackoverflow о проблемах со шрифтами при преобразовании (с ghostscript) из PDF в изображение.

Поскольку у вас нет встроенных шрифтов, ghostscript пытается найти альтернативы в вашей системеи отрисовать лучше.

Но я не могу понять, почему мой MacOSX Preview отлично отрисовывает PDF, а ghostscript не может.

gs -sFONTPATH=/Library/Fonts -sDEVICE=pngalpha -o file-%03d.png -r144 my.pdf 

Я даже говорю gs, где шрифтыare.

Это вывод.

$ pdffonts cv18.pdf 

Fontconfig warning: "/usr/local/etc/fonts/fonts.conf", line 86: unknown element "blank"
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
CenturyGothic,Bold                   TrueType          WinAnsi          no  no  no      13  0
CenturyGothic                        TrueType          WinAnsi          no  no  no      14  0
CourierNew                           TrueType          WinAnsi          no  no  no      15  0
Arial                                TrueType          WinAnsi          no  no  no      16  0
AYTOPC+Wingdings                     TrueType          WinAnsi          yes yes no      17  0
TimesNewRoman                        TrueType          WinAnsi          no  no  no      18  0
CenturyGothic,Italic                 TrueType          WinAnsi          no  no  no      24  0


$ gs -sDEVICE=pngalpha -o file-%03d.png -r300 cv18.pdf 

GPL Ghostscript 9.26 (2018-11-20)
Copyright (C) 2018 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 2.
Page 1
Querying operating system for font files...
Substituting font NewCenturySchlbk-Bold for CenturyGothic,Bold.
Loading C059-Bold font from /usr/local/Cellar/ghostscript/9.26/share/ghostscript/9.26/Resource/Font/C059-Bold... 4357236 2918185 2219472 869812 4 done.
Substituting font NewCenturySchlbk-Roman for CenturyGothic.
Loading C059-Roman font from /usr/local/Cellar/ghostscript/9.26/share/ghostscript/9.26/Resource/Font/C059-Roman... 4504148 3145674 2313416 951449 4 done.
Substituting font Courier for CourierNew.
Loading NimbusMonoPS-Regular font from /usr/local/Cellar/ghostscript/9.26/share/ghostscript/9.26/Resource/Font/NimbusMonoPS-Regular... 4731860 3382093 2548760 1140366 4 done.
Can't find (or can't open) font file /usr/local/Cellar/ghostscript/9.26/share/ghostscript/9.26/Resource/Font/ArialMT.
Can't find (or can't open) font file ArialMT.
Can't find (or can't open) font file /usr/local/Cellar/ghostscript/9.26/share/ghostscript/9.26/Resource/Font/ArialMT.
Can't find (or can't open) font file ArialMT.
Didn't find this font on the system!
Substituting font Helvetica for ArialMT.
Loading NimbusSans-Regular font from /usr/local/Cellar/ghostscript/9.26/share/ghostscript/9.26/Resource/Font/NimbusSans-Regular... 4939372 3576328 2589160 1183936 4 done.
Can't find (or can't open) font file /usr/local/Cellar/ghostscript/9.26/share/ghostscript/9.26/Resource/Font/TimesNewRomanPSMT.
Can't find (or can't open) font file TimesNewRomanPSMT.
Can't find (or can't open) font file /usr/local/Cellar/ghostscript/9.26/share/ghostscript/9.26/Resource/Font/TimesNewRomanPSMT.
Can't find (or can't open) font file TimesNewRomanPSMT.
Didn't find this font on the system!
Substituting font Times-Roman for TimesNewRomanPSMT.
Loading NimbusRoman-Regular font from /usr/local/Cellar/ghostscript/9.26/share/ghostscript/9.26/Resource/Font/NimbusRoman-Regular... 5196116 3849418 3003064 1540393 4 done.
Page 2
Substituting font NewCenturySchlbk-Roman for CenturyGothic.
Substituting font NewCenturySchlbk-Bold for CenturyGothic,Bold.
Substituting font NewCenturySchlbk-Italic for CenturyGothic,Italic.
Loading C059-Italic font from /usr/local/Cellar/ghostscript/9.26/share/ghostscript/9.26/Resource/Font/C059-Italic... 5504628 4138508 2467960 1088660 4 done.

Вопрос в том, почему MacOSX Preview не имеет таких проблем?Откуда берутся шрифты, чтобы отрисовать идеально?

1 Ответ

0 голосов
/ 25 февраля 2019

Мне нужно увидеть ваш PDF-файл, чтобы иметь возможность комментировать, но когда вы говорите: «Я даже говорю gs, где находятся шрифты», я боюсь, что это не совсем правильно.

Обратный канал Ghostscript сообщает:

Не могу найти (или не могу открыть) файл шрифта /usr/local/Cellar/ghostscript/9.26/share/ghostscript/9.26/Resource/Font/ArialMT.

Таким образом, либо файл не существует, либо Ghostscript не может его открыть, либо, возможно, он каким-то образом поврежден.

Является ли fontconfig единственной вещью, которую вы используете, чтобы сказать gs, где находитсяшрифты есть?Потому что, если это так, вы на самом деле ничего не говорите Ghostscript.Также обратите внимание на предупреждение fontconfig, я не специалист по настройке шрифтов, но я подозреваю, что вы можете решить это тоже.

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

Пример шрифта fontmap.GS можно найти в / ghostscript / Resource / Init

Чтобы помочь больше, мне нужно знать точный путь, где находится файл шрифта, метод, который вы используете, чтобы сообщить Ghostscript, где находится файл шрифта, и точную конфигурацию карты шрифтов.GS (или что-то еще означает, что вы используете).PDF-файл и файл шрифта также будут полезны, если файл шрифта каким-либо образом поврежден.Мне также было бы интересно узнать о формате шрифтов ArialMT и C059-Roman.Шрифты PostScript или TrueType?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...