встраивание внешних шрифтов в pdf-файл

программа чтения показывает отсутствующие шрифты в одном файле PDF (WPMathB, WPMathA WP Greek Helve, ...), который можно легко загрузить с http://www.fontpalace.com .

]

Однако команда ghostscript завершается ошибкой, хотя она указывает на каталог отсутствующих шрифтов, /home/user/WP_ttf_fonts:

 $ gs -o file-with-embedded-fonts.pdf -sDEVICE=pdfwrite -dEmbedAllFonts=true  -sFONTPATH="/home/user/WP_ttf_fonts" input-without-embedded-fonts.pdf
Page 35    
Can't find CID font "WPMathB".    
Attempting to substitute CID font /Adobe-Identity for /WPMathB, see doc/Use.htm#CIDFontSubstitution.    
Loading a TT font from 
/usr/share/ghostscript/9.10/Resource/CIDFSubst/DroidSansFallback.ttf to emulate a CID font Adobe-Identity   **** Warning: can't process font stream, loading font by the name.    
 ... Done.    
Can't find CMap Identity-UTF16-H building a CIDDecoding resource.     
Can't find CID font "WPMathB".    
Attempting to substitute CID font /Adobe-Identity for /WPMathB, see doc/Use.htm#CIDFontSubstitution.    
Loading a TT font from /usr/share/ghostscript/9.10/Resource/CIDFSubst/DroidSansFallback.ttf to emulate a CID font Adobe-Identity
**** Error reading a content stream.     
The page may be incomplete.    
   **** File did not complete the page properly and may be damaged.    
 ... Done.

Любая помощь, как сказать ghostscript, чтобы он принимал эти шрифты, пожалуйста?

1
задан 21 December 2015 в 02:37

1 ответ

WPMathA и т.д. из Word Perfect Correl, и Correl позволяет Вам, загружают те шрифты (хотя я не нашел лицензии в самораспаковывающемся архиве zip). Не бойтесь *.exe, поскольку он работает просто великолепно при разархивации его. Имя файла для шрифта WP MathA является Wphv06na.ttf, и это не становится менее ужасным.

Пример:

sudo chown $USER /usr/local/share/fonts/
cd /usr/local/share/fonts/
wget http://www.corel.com/akdlm/6763/downloads/WordPerfect/wpwin/9/wpfonts.exe
unzip wpfonts.exe
sudo chown -R root /usr/local/share/fonts/
sudo fc-cache

следующее препятствие - то, что PDF имеет WPMathA, но кэш шрифта имеет WP MathA:

fc-list | grep local.*MathA
/usr/local/share/fonts/Wphv06na.ttf: WP MathA:style=Normal
fc-list -v | grep -c WPMathA
0

Ваша миссия состоит в том, чтобы создать недостающие конфигурационные файлы с необходимыми псевдонимами к связи WPMathA с WP MathA. После этого можно ослабиться путем создания авианосца из зубочисток.

mkdir -p ~/.config/fontconfig/
echo '<?xml version="1.0"?>' > ~/.config/fontconfig/fonts.conf
xmlcopyeditor ~/.config/fontconfig/fonts.conf

вставьте:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- $XDG_CONFIG_HOME/fontconfig/fonts.conf for per-user font configuration -->
<fontconfig>
  <alias>
    <family>WPMathA</family>
    <prefer><family>WP MathA</family></prefer>
  </alias>
</fontconfig>

не забывают восстанавливать кэш снова. Не нуждался в root/sudo для меня.

fc-cache

К этому времени acroread прекратил жаловаться на недостающий WPMathA, и ghostscript ошибка Bugzilla 687595 имеет комментарий, что поддержка fontconfig была добавлена в 8,60, но я предполагаю, что они лгали. Если Вы все еще настаиваете на том, чтобы создавать PDF со встроенным шрифтом даже при том, что тот, который Вы имеете, должен работать к настоящему времени, можно считать ghostscript ошибку Bugzilla 692001, который я заключу в кавычки прямо здесь:

Комментарий 2 Ken Sharp 28.02.2011 11:44:42 PST

существует 2 способа сделать это:

1) Определяют местоположение подлинного CIDFont под названием Arial, помещают его в gs/Resource/CIDFont и затем говорят Ghostscript использовать дисковые файлы, а также созданный в файловой системе. Это сделано с-I переключателем командной строки (например,-I/gs/Resource).

2) Использование шрифт TrueType как замена. Чтобы сделать это, необходимо отредактировать gs/Resource/Init/cidfmap и добавить запись для шрифта (Arial), определив шрифт TrueType, который будет использоваться вместо этого и некоторые другие параметры. Необходимо тогда также сказать Ghostscritp [так] использовать указанный файл, снова с помощью переключателя-I как выше.

можно также использовать существующий CIDfont с другим именем как замена путем определения этого в cidfmap файле.

См. документацию в: /gs/doc/Use.htm

Ищет "шрифты идентификации вызывающего абонента" и "замену шрифтов идентификации вызывающего абонента".

Вы будете иметь к apt-get install ghostscript-doc для получения file:///usr/share/doc/ghostscript-doc/Use.htm, Ken обращается к.

файл для обновления /var/lib/ghostscript/fonts/cidfmap, просто добавляют эту строку /WPMathA << /FileType /TrueType /Path (/usr/local/share/fonts/Wphv07na.ttf) /SubfontID 0 /CSI [(Identity) 0] >> ;

И работают gs -o embedeed-font.pdf -sDEVICE=pdfwrite -dEmbedAllFonts=true -I/usr/local/share/fonts/Wphv06na.ttf no-embedded-font.pdf

, читайте file:///usr/share/doc/fontconfig/fontconfig-user.html для справочной информации. Это скажет Вам дополнительную информацию см. в Спецификации Базового каталога XDG, потому что там Вы найдете значения по умолчанию за $XDG... серией переменных среды, ни одна из которых ни на что не установлена на 14,04 до ps axwwe шоу.

0
ответ дан 21 December 2015 в 12:37
  • 1
    24 августа 9:03:14 pppd [982]: MPPE 128-разрядное сжатие не сохраняющее состояние, включенное 24 августа 9:03:14 pppd [982]: локальный IP-адрес 10.200.21.4 24 августа 9:03:14 pppd [982]: удаленный IP-адрес 10.200.20.1 – Roney rogerio 24 August 2016 в 20:06

Другие вопросы по тегам:

Похожие вопросы: