Как я могу извлечь встроенные шрифты из PDF как допустимые файлы шрифтов?

Я знаю об утилите pdftk.exe, которая может указывать, какие шрифты используются в PDF, и встроены они или нет.

Теперь проблема: учитывая, что у меня были файлы PDF со встроенными шрифтами - как я могу извлечь эти шрифты таким образом, чтобы их можно было повторно использовать как файлы обычных шрифтов? Есть ли (желательно бесплатные) инструменты, которые могут это сделать? Также: можно ли это сделать программно, скажем, с помощью iText?


person Community    schedule 15.08.2010    source источник


Ответы (8)


У вас есть несколько вариантов. Все эти методы работают в Linux, а также в Windows или Mac OS X. Однако имейте в виду, что большинство PDF-файлов не включают полный, полный шрифт, если в них встроен шрифт. В основном они включают только подмножество глифов, используемых в документе.


Использование pdftops

Один из наиболее часто используемых способов сделать это в системах * nix состоит из следующих шагов:

  1. Преобразуйте PDF в PostScript, например, используя pdftops в XPDF. (в Windows: pdftops.exe вспомогательная программа.
  2. Теперь шрифты будут встраиваться в формате .pfa (PostScript) + вы можете извлечь их с помощью текстового редактора.
  3. Возможно, вам потребуется преобразовать .pfa (ASCII) в .pfb (двоичный) файл, используя t1utils и pfa2pfb.
  4. В PDF-файлы никогда не вставляются .pfm или .afm файлы (файлы с метрикой шрифтов) (поскольку программа просмотра PDF имеет внутренние знания об этом). Без них файлы шрифтов вряд ли будут визуально приятными.

Использование fontforge

Другой способ - использовать бесплатный редактор шрифтов FontForge:

  1. Используйте диалоговое окно Открыть шрифт, которое используется при открытии файлов.
  2. Затем выберите Извлечь из PDF в разделе фильтра диалогового окна.
  3. Выберите PDF-файл со шрифтом, который нужно извлечь.
  4. Откроется диалоговое окно Выберите шрифт - выберите здесь, какой шрифт открыть.

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


Использование mupdf

Затем MuPDF. Это приложение поставляется с утилитой под названием pdfextract (в Windows: pdfextract.exe), которая может извлекать шрифты и изображения из PDF-файлов. (Если вы не знаете о MuPDF, который все еще относительно неизвестен и является новым: MuPDF - это бесплатный легкий просмотрщик PDF-файлов и набор инструментов, написанный на портативном языке C., написанный разработчиками Artifex Software, той же компанией что дало нам Ghostscript.)
(Обновление: более новые версии MuPDF перенесли прежнюю функциональность 'pdfextract' в команду ' mutool extract '. Загрузите его здесь: mupdf.com/downloads. )

Примечание. pdfextract.exe - это программа командной строки. Чтобы использовать его, сделайте следующее:

c:\>  pdfextract.exe  c:\path\to\filename.pdf         # (on Windows)
$>    pdfextract  /path/tofilename.pdf                # (on Linux, Unix, Mac OS X)

Эта команда сбрасывает все извлекаемые файлы из PDF-файла, на который есть ссылка, в текущий каталог. Как правило, вы увидите множество файлов: как изображения, так и шрифты. К ним относятся PNG, TTF, CFF, CID и т. Д. Имена изображений будут иметь вид img-0412.png, если номер объекта PDF изображения был 412. Имена шрифтов будут иметь вид FGETYK + LinLibertineI-0966.ttf, если номер объекта PDF шрифта был 966.

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

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

Обновление: (июль 2013 г.) В последних версиях mupdf двоичные файлы подвергались внутренней перестановке и переименованию, причем не один раз, а несколько раз. Раньше основной утилитой был бинарный файл, похожий на «швейцарский нож», с именем mubusy (название навеянным busybox?), Который недавно был переименован в mutool. Они поддерживают подкоманды info, clean, extract, poster и show. К сожалению, официальная документация для этих инструментов не обновлена ​​(пока). Если вы используете MacPorts на Mac: тогда утилита была переименована, чтобы избежать конфликтов имен с другими утилитами, использующими идентичные имена, и вам может потребоваться использовать mupdfextract.

Чтобы получить (примерно) эквивалентные результаты с mutool, как это делал его предыдущий инструмент pdfextract, просто запустите _28 _. *

Поэтому для извлечения шрифтов и изображений вам может потребоваться запустить одну из следующих командных строк:

c:\>  mutool.exe extract filename.pdf      # (on Windows)
$>    mutool     extract filename.pdf      # (on Linux, Unix, Mac OS X)

Загрузки находятся здесь: mupdf.com/downloads.


Использование gs (Ghostscript)

Затем Ghostscript также может извлекать шрифты непосредственно из PDF-файлов. Однако для этого требуется помощь специальной служебной программы с именем extractFonts.ps, написанный на языке PostScript, который доступен по адресу Репозиторий исходного кода Ghostscript.

Теперь используйте его, вам нужно запустить как этот файл extractFonts.ps, так и ваш файл PDF. Затем Ghostscript будет использовать инструкции программы PostScript для извлечения шрифтов из PDF. Это выглядит так в Windows (да, Ghostscript понимает 'косую черту', /, как разделитель пути, также и в Windows!):

gswin32c.exe                  ^
  -q -dNODISPLAY              ^
   c:/path/to/extractFonts.ps ^
  -c "(c:/path/to/your/PDFFile.pdf) extractFonts quit"

или в Linux, Unix или Mac OS X:

gs                          \
  -q -dNODISPLAY            \
   /path/to/extractFonts.ps \
  -c "(/path/to/your/PDFFile.pdf) extractFonts quit"

Несколько лет назад я тестировал метод Ghostscript. В то время он отлично извлекал * .ttf (TrueType). Я не знаю, будут ли вообще извлечены другие типы шрифтов, и если да, то для повторного использования. Я не знаю, блокирует ли утилита извлечение шрифтов, помеченных как защищенные.


Использование pdf-parser.py

Наконец, pdf-parser.py Дидье Стивенса: этот, вероятно, не так прост в использовании, потому что вам нужно иметь некоторые ноу-хау о внутренних структурах PDF. pdf-parser.py - это скрипт Python, который также может делать много других вещей. Он также может распаковывать и извлекать произвольные потоки из объектов и, следовательно, также может извлекать файлы встроенных шрифтов.

Но нужно знать, что искать. Давайте посмотрим на это на примере. У меня есть файл с именем big.pdf. В качестве первого шага я использую параметр -s для поиска в PDF-файле любого вхождения ключевого слова FontFile (pdf-parser.py не требует поиска с учетом регистра):

pdf-parser.py -s fontfile big.pdf

В моем случае для моего big1.pdf я получаю такой результат:

obj 9 0
 Type: /FontDescriptor
 Referencing: 15 0 R
  <<   
    /Ascent 728
    /CapHeight 716
    /Descent -210 
    /Flags 32
    /FontBBox [ -665 -325 2000 1006 ]
    /FontFile2 15 0 R
    /FontName /ArialMT
    /ItalicAngle 0
    /StemV 87
    /Type /FontDescriptor
    /XHeight 519
  >>   

obj 11 0 
 Type: /FontDescriptor
 Referencing: 16 0 R
  <<   
    /Ascent 728
    /CapHeight 716
    /Descent -210 
    /Flags 262176
    /FontBBox [ -628 -376 2000 1018 ]
    /FontFile2 16 0 R
    /FontName /Arial-BoldMT
    /ItalicAngle 0
    /StemV 165
    /Type /FontDescriptor
    /XHeight 519
  >>   

Он сообщает мне, что в PDF-файле есть два экземпляра FontFile2, и они находятся в объектах PDF нет. 15 и нет. 16 соответственно. № объекта 15 содержит /FontFile2 для шрифта / ArialMT, объект №. 16 содержит /FontFile2 для шрифта / Arial-BoldMT.

Чтобы показать это более ясно:

pdf-parser.py -s fontfile big1.pdf | grep -i fontfile
  /FontFile2 15 0 R
  /FontFile2 16 0 R

Беглый взгляд на спецификацию PDF показывает, что ключевое слово /FontFile2 относится к 'потоку, содержащему программу шрифтов TrueType' (/FontFile относится к 'потоку, содержащему программу шрифтов типа 1' и /FontFile3 будут относиться к 'потоку, содержащему программу шрифтов, формат которой задан записью Subtype в словаре потока' {, следовательно, либо Type1C, либо < em> CIDFontType0C subtype}.)

Чтобы посмотреть конкретно на объект PDF нет. 15 (который содержит шрифт / ArialMT), можно использовать параметр -o 15:

pdf-parser.py -o 15 big1.pdf

 obj 15 0
  Type: 
  Referencing: 
  Contains stream
   <<
     /Length1 778552
     /Length 1581435
     /Filter /ASCIIHexDecode
   >>

Этот pdf-parser.py вывод сообщает нам, что этот объект содержит поток (который он не будет напрямую отображать), который имеет длину 1,581,435 байта и закодирован (== сжат) с помощью ASCIIHexEncode и должен быть декодирован (== декомпрессирован или фильтруется) с помощью стандартного фильтра /ASCIIHexDecode.

Чтобы выгрузить любой поток из объекта, pdf-parser.py можно вызвать с параметром -d dumpname. Давай сделаем это:

pdf-parser.py -o 15 -d dumped-data.ext big1.pdf

Наш извлеченный дамп данных будет в файле с именем dumped-data.ext. Посмотрим, насколько он большой:

ls -l dumped-data.ext
  -rw-r--r--  1 kurtpfeifle  staff  1581435 Apr 11 00:29 dumped-data.ext

О, смотрите, это 1,581,435 байта. Мы видели этот рисунок в выводе предыдущей команды. Открытие этого файла в текстовом редакторе подтверждает, что его содержимое представляет собой данные в шестнадцатеричной кодировке ASCII.

Открытие файла с помощью средства чтения шрифтов, например otfinfo (это часть lcdf-typetools пакета ) сначала приведет к некоторому разочарованию:

otfinfo -i dumped-data.ext
  otfinfo: dumped-data.ext: not an OpenType font (bad magic number)

Хорошо, это потому, что мы (пока) не позволили pdf-parser.py использовать всю его магию: выгрузить отфильтрованный, декодированный поток. Для этого нам нужно добавить параметр -f:

pdf-parser.py -o 15 -f -d dumped-data-decoded.ext big1.pdf

Какого размера этот новый файл?

ls -l dumped-data-decoded.ext
  -rw-r--r--  1 kurtpfeifle  staff  778552 Apr 11 00:39 dumped-data-decoded.ext

О, смотрите: этот точный номер также уже был сохранен в объекте PDF № 15 словаря в качестве значения ключа _63 _...

Что это file?

file dumped-data-decoded.ext
  dumped-data-decoded.ext: TrueType font data

Что otfinfo нам об этом говорит?

otfinfo -i dumped-data-decoded.ext
  Family:              Arial
  Subfamily:           Regular
  Full name:           Arial
  PostScript name:     ArialMT
  Version:             Version 5.10
  Unique ID:           Monotype:Arial Regular:Version 5.10 (Microsoft)
  Designer:            Monotype Type Drawing Office - Robin Nicholas, Patricia Saunders 1982
  Manufacturer:        The Monotype Corporation
  Trademark:           Arial is a trademark of The Monotype Corporation.
  Copyright:           © 2011 The Monotype Corporation. All Rights Reserved.
  License Description: You may use this font to display and print content as permitted by
                       the license terms for the product in which this font is included.
                       You may only (i) embed this font in content as permitted by the 
                       embedding restrictions included in this font; and (ii) temporarily 
                       download this font to a printer or other output device to help
                       print content.
  Vendor ID:           TMC

Итак, Bingo !, у нас есть победитель: pdf-parser.py действительно извлек для нас правильный файл шрифта. Учитывая размер этого файла (778,552 байта), похоже, что этот шрифт был даже полностью встроен в PDF ...

Мы могли бы переименовать его в arial-regular.ttf, установить как таковой и с радостью использовать.


Предостережения:

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

  • Большинство распространенных PDF-файлов в любом случае не включают полный шрифт, а только его подмножества. Извлечение подмножества шрифта полезно только в очень ограниченном объеме, если вообще возможно.

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

person Kurt Pfeifle    schedule 15.08.2010
comment
@ kizzx2: не стесняйтесь голосовать за или против любого из моих других ответов [PDF] или [Ghostscript] :-) - person Kurt Pfeifle; 01.01.2011
comment
Если вы используете Mac и устанавливаете mupdf из портов (или, возможно, из двоичного файла), извлечение также называется mupdfextract. Вы можете запустить его с терминала, пока он находится в пути. - person Orwellophile; 12.10.2012
comment
@Orwellophile: спасибо за подсказку. Я воспользовался этим как возможностью, чтобы обновить некоторые из своих советов по поводу mupdf. См. Также это ... - person Kurt Pfeifle; 12.10.2012
comment
Я их проверю. И это не бессмысленный комментарий: ваш процесс работал УДИВИТЕЛЬНО ... (проголосовало) ... он извлек и назвал 3 варианта шрифта, а затем я использовал fontforge (также свободный от macports) для слияния. К сожалению, в моем шрифте все еще отсутствует заглавная буква X ... Каковы шансы: p - person Orwellophile; 21.10.2012
comment
@Orwellophile: Ваш результат слияния трех подмножеств, скорее всего, не содержит X, потому что ни один из трех подмножеств не содержит X. - person Kurt Pfeifle; 21.10.2012
comment
Вот это да. Действительно. Я в восторге. Пожалуйста, помогите мне не удивляться такому классному ответу ... [зияет] Спасибо! - person bgmCoder; 03.05.2013
comment
Я не мог заставить работать gs (там говорилось, что этот файл отсутствовал ...), а fontforge - одна за другой, очень медленно. Однако mupdf помог мне. Я выполнил эту команду (пакет явно обновлен): mutool.exe extract c:\path\to\mypdf.pdf - он сбросил все - шрифты, изображения и т. Д. Прямо в папку, где находился PDF-файл. Теперь у меня есть все шрифты! - person bgmCoder; 03.05.2013
comment
Блестяще подробный ответ. Просто нужно было идентифицировать (а не извлекать шрифты, встроенные в PDF), и поэтому pdf-parser.ps работал отлично. - person Prembo; 07.08.2014
comment
SumatraPDF v3.1.1 не поставляется pdfextract.exe. - person koppor; 02.01.2016
comment
@koppor: Вы правы. Я соответствующим образом обновил свой ответ. Вы можете скачать MuPDF и mutool здесь: mupdf.com/downloads. - person Kurt Pfeifle; 02.01.2016
comment
yum install mupdf; mutool extract my.pdf - Не может быть проще. - person Jonathon Reinhart; 30.06.2016
comment
@JonathonReinhart: Тогда извини; Я принял ваш комментарий за сарказм и, очевидно, ошибся. (Не уверен, что если yum install mupdf входит в clude mutool - разве RedHat / Fedora не поместили его в другой пакет?) - person Kurt Pfeifle; 30.06.2016
comment
@KurtPfeifle Нет проблем! Нет - в Fedora 22: $ dnf whatprovides '*mutool*' дает mupdf-1.7-2.fc22.x86_64. - person Jonathon Reinhart; 30.06.2016
comment
Для параметра using pdftops есть способ извлечь информацию о шрифте из файла ps: encrypted.pcode.nl/blog/2006/06/19/extracting-fonts-from-pdfs. По сути, извлеките строки от %%BeginResource: font [name] до %%EndResource каждую в новый файл. - person bgStack15; 07.11.2016
comment
Я просто остановился на этапе 2 первого метода: это дало мне pfa файл, который был распознан Ubuntu как файл устанавливаемого шрифта. Большое спасибо ! - person Fabien Quatravaux; 03.06.2017
comment
@KurtPfeifle Большинство PDF-файлов, которые существуют в дикой природе, в любом случае не встраивают полный шрифт, а только подмножества. Извлечение подмножества шрифта полезно только в очень ограниченной области, если вообще возможно. есть ли документация, как извлекать шрифты из этих подмножеств или как сгенерировать такие подмножества? - person juFo; 06.02.2018
comment
@juFo: Извините, я не знаю, как лучше объяснить тему извлечения шрифтов из PDF-файлов, чем этот ответ. Вы уверены, что поняли его содержание? Невозможно извлечь шрифты из этих подмножеств. Подмножество шрифтов также является допустимым шрифтом, но оно не содержит глифов для всех символов, а только глифов для тех символов, которые фактически использовались в документе. - person Kurt Pfeifle; 06.02.2018
comment
@KurtPfeifle: хорошо, я читал комментарии, в которых говорится, что полужирный / курсив всегда должен добавляться последним во встроенных (подмножествах) шрифтов. Я ищу документацию, в которой указаны эти ограничения. (или нет такой документации о том, как встраивать или правильно извлекать встроенные подмножества? это просто пробная ошибка?) - person juFo; 07.02.2018
comment
@juFo: полужирный / курсивный шрифт обычно является отдельными шрифтами (даже если они могут принадлежать к одному и тому же семейству шрифтов family). - person Kurt Pfeifle; 07.02.2018
comment
@KurtPfeifle, но в pdf некоторые шрифты имеют подмножества полужирного / курсивного начертания в одном файле (файл при извлечении). Я заинтересован в этом, но не могу найти документации по этому конкретному случаю. - person juFo; 07.02.2018
comment
@juFo: Как я уже сказал, и поскольку это, кажется, не позволяет достичь правильной конечной точки в вашем уме: полужирные / курсивные шрифты обычно являются отдельными шрифтами. Поэтому, если они встроены как подмножества шрифтов, они также будут отдельными. Или, может быть, я совершенно не понимаю, что вы пытаетесь сказать? Если сомневаетесь, просто укажите мне пример PDF-файла, и я изучу встроенные в него шрифты ... - person Kurt Pfeifle; 07.02.2018
comment
После тестирования всех этих методов FontForge оказался единственным успешным. - person MGR; 09.10.2019
comment
@MGR: Я могу гарантировать вам, что некоторые из вышеперечисленных методов будут работать для любого файла PDF, который вы мне дадите. Вы, должно быть, сделали что-то не так. - person Kurt Pfeifle; 10.10.2019
comment
@KurtPfeifle: В моем случае объекты шрифтов, созданные с помощью других методов, оказались недопустимыми файлами шрифтов. При использовании pdfparser я заметил, что показанное значение длины было неправильным, оно показывало другую ссылку (например, 18 0 R). Я использую 64-битную Windows 7. - person MGR; 10.10.2019
comment
@MGR: Итак? В этом случае pdfparser помог вам понять структуру PDF-файла, даже если в нем есть ошибки. Это означает, что pdfparser может помочь вам извлечь недопустимый (или действительный) файл шрифта. (Это может означать, что вам, возможно, придется исправить потенциально недопустимый шрифт другими способами ....) - person Kurt Pfeifle; 10.10.2019
comment
@KurtPfeifle: Я не понял логики. Я мог получить файл шрифта, извлеченный с помощью FontForge, и он действителен. Вы имеете в виду, что FontForge автоматически сделал файл шрифта действительным? - person MGR; 11.10.2019
comment
@MGR: Да, очень вероятно, что FontForge незаметно восстановил файл шрифта при его открытии. Скорее всего, когда вы сохранили его из font forge, он попросил вас подтвердить внесенные изменения. - person Kurt Pfeifle; 11.10.2019
comment
Чрезвычайно полезная информация, спасибо. Если FontForge сообщает о нескольких шрифтах, таких как MSCIYG+Ge'ez-1, UJFBHE+Ge'ez-1 и т. Д., Является ли это несколькими подмножествами одного и того же шрифта? Объединяет ли какая-либо из этих опций их автоматически? (Я пытаюсь вручную использовать FontForge и медленно терплю неудачу, рассматривая возможность изучения его интерфейса командной строки, поскольку я есть много PDF-файлов и много шрифтов для извлечения, но надеяться, что не придется ..) - person Chris; 27.03.2020
comment
@Chris: да, это два разных подмножества (которые могут частично совпадать). Нет возможности автоматически объединить их. - person Kurt Pfeifle; 28.03.2020

Воспользуйтесь онлайн-службой http://www.extractpdf.com. Не нужно ничего устанавливать.

person igo    schedule 22.05.2014
comment
В моем случае он мог извлекать только шрифты Type 1, а не TrueType. - person koppor; 02.01.2016
comment
Я извлек шрифты с этого сайта и скопировал их на ~/.fonts, и копирование и вставка работали! - person Eduardo Santana; 29.02.2016

Несмотря на то, что этому вопросу уже 10 лет, он по-прежнему актуален, и по мере того, как меняются технологии, остается действительный ответ.

При поиске текущих ответов никто из них не заметил WOFF (формат открытого веб-шрифта) (W3C) (Wikipedia), который можно использовать для воссоздания отдельных символов (глифов) и отображения их в сети. страницу точно.

Используя бесплатную веб-страницу IDR Solutions, PDF в HTML5 (ссылка), конвертируйте PDF-файл в ZIP-файл. В полученном zip-архиве будет каталог шрифтов с типами файлов woff. Если вы не знали, современные интернет-браузеры поддерживают файлы woff. (ссылка) Их можно изучить на онлайн-сайте FontDrop! (ссылка).

Файлы WOFF можно преобразовать в / из OTF или TTF с помощью WOFFer - шрифт WOFF. конвертер

Кроме того, zip-файл из PDF в HTML5 будет содержать файл HTML для каждой страницы PDF, который можно открыть в Интернет-браузере, и это один из лучших и наиболее точных переводов PDF, которые я нашел или видел.

Пока я только изучаю, как использовать файлы WOFF, об этом стоит рассказать. Наслаждаться.

PS, я, вероятно, обновлю дополнительную информацию, когда узнаю больше об использовании типов файлов woff, но, поскольку это творческое сообщество, не стесняйтесь редактировать этот ответ, если у вас есть что-то ценное, что можно передать.

person Guy Coder    schedule 31.12.2019
comment
Спасибо! Это решение работает для меня (как при создании действительного TTF), тогда как другие, которые я пробовал, нет. Это потому, что WOFF лучше обрабатывает неполные шрифты? - person Daan; 07.01.2020
comment
@Daan Is it because WOFF handles incomplete fonts better? Понятия не имею. Ваше предположение было бы ничем не хуже. Как я уже отмечал, я только что изучаю WOFF. - person Guy Coder; 07.01.2020
comment
@Daan Возможно, вам стоит опубликовать Is it because WOFF handles incomplete fonts better? в качестве нового вопроса SO, и другие, более осведомленные, увидят и, надеюсь, дадут значимый ответ. - person Guy Coder; 07.01.2020
comment
Я мог бы это сделать. Спасибо. - person Daan; 07.01.2020
comment

В конце концов нашел пакет установщика FontForge для Windows и открыл PDF-файл с помощью установленной программы. Получил удовольствие, так счастлив.

person Dapizz    schedule 20.03.2012
comment
Последнюю страницу можно найти здесь: fontforgebuilds.sourceforge.net - person CTS_AE; 28.01.2019

http://www.verypdf.com/app/pdf-font-extractor/pdf-font-extracting-tool.html Самый простой способ извлечения шрифтов по ИМО (Windows).

person l00k    schedule 17.02.2014

Один из лучших онлайн-инструментов, доступных в настоящее время для извлечения шрифтов PDF, - это http://www.pdfconvertonline.com/extract-pdf-fonts-online.html

person Riyafa Abdul Hameed    schedule 12.05.2016

PDF2SVG версии 6.0 из PDFTron делает разумную работу. По умолчанию он создает шрифты OpenType (.otf). Используйте --preserve_fontnames, чтобы сохранить «схему именования шрифтов / семейств шрифтов, полученную из исходного файла».

PDF2SVG - это коммерческий продукт, но вы можете загрузить бесплатный демонстрационный исполняемый файл (который включает водяные знаки на выходе SVG, но не ограничивает использование). Могут быть и другие продукты PDFTron, которые также извлекают шрифты, но PDF2SVG я обнаружил только недавно.

person Sean Leather    schedule 26.12.2013
comment
К сожалению, --preserve_fontnames не работает, если у вас есть перекрывающиеся частичные шрифты - кажется, он не включает префикс, например, MSCIYG в MSCIYG+Ge'ez-1, поэтому перезаписывает предыдущие частичные данные. - person Chris; 23.04.2020

Это продолжение раздела font-forge в ответе @Kurt Pfeifle, относящемся к Red Hat (и, возможно, другим дистрибутивам Linux).

  1. После открытия PDF-файла и выбора желаемого шрифта вы захотите выбрать опцию «Файл -> Создать шрифты ...».
  2. Если в файле есть ошибки, вы можете проигнорировать их или сохранить файл и отредактировать их. Большинство ошибок можно исправить автоматически, если вы нажмете «Исправить» достаточное количество раз.
  3. Нажмите «Элемент -> Информация о шрифте ...», и для «Имя шрифта», «Фамилия» и «Имя для людей» будут установлены значения, которые вам нравятся. Если нет, измените их и сохраните где-нибудь файл. Эти имена будут определять, как ваш шрифт будет отображаться в системе.
  4. Выберите имя файла и нажмите «Сохранить ...»

Когда у вас есть файл TTF, вы можете установить его в своей системе,

  1. Копирование в папку /usr/share/fonts (под root)
  2. Запуск fc-cache -f /usr/share/fonts/ (как root)
person Mad Physicist    schedule 19.03.2019