Вставить пользовательский шрифт в PDF-файл, созданный из приложения iPad

обзор

Я создаю четырехстраничный PDF-документ в приложении для iPad, в котором используется собственный шрифт Trade Gothic. Он корректно встраивается в приложение и выглядит великолепно.

Тем не менее, частью приложения является отправка по электронной почте PDF-файла. Этот отправленный файл отображает весь шрифт как sans-тип по умолчанию, и в некоторых системах я получил ошибку Не могу найти или создать шрифт 'RVYPRT+TradeGothicLTStd-Light'. Некоторые символы могут отображаться или печататься неправильно.

Я генерирую PDF с использованием UIKit Framework. Вот учебник, который использует тот же процесс: http://www.ioslearner.com/generate-pdf-programmatically-iphoneipad/

Мой вопрос

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

Заранее спасибо!

Обновление 1: похожие вопросы без ответа, которые я нашел

IOS встроить шрифт в PDF

шрифт iOS Quartz для встраивания в pdf

Обновление 2: дополнительная информация о шрифтах

Шрифт http://store1.adobe.com/cfusion/store/html/index.cfm?store=OLS-US&event=displayFont&code=TRDQ10003000 является шрифтом OpenType и допускает встраивание по лицензии.

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

Если в файле PDF отсутствуют определенные шрифты, Adobe Acrobat и Adobe Reader автоматически попытаются эмулировать отсутствующий шрифт, используя один из шрифтов Multiple Master, встроенных в эти программы. Таким образом, документ не будет представлен точно так, как этого хотел дизайнер, но, по крайней мере, текст не будет переформатирован. Для этого используются несколько основных шрифтов: Adobe Serif MM и Adobe Sans MM

источник: http://www.prepressure.com/pdf/basics/fonts

Обновление 3: шрифты упоминаются в PDF, но не встроены

Похоже, что приложение пытается внедрить шрифты, но они не встраиваются правильно. Вот скриншот встроенных шрифтов в меню Файл -> Свойства документа:

Первая проблема, которую я вижу, заключается в том, что шрифт указан как Тип 1, когда он на самом деле является шрифтом OpenType. И, как и ожидалось, "Actual Font" - это Sans MM (шрифт, который используется, когда встроенный шрифт не найден).

Обновление 4. В другом PDF-файле (созданном с использованием приложения Adobe, а не iPad) необходимые шрифты встроены в виде подмножеств. Я не уверен, но это заставляет меня верить, что можно сделать то же самое программно.

2 ответа

Решение

TradeGothic, который вы используете и который "отлично выглядит", не позволяет встраивать в PDF (или другие) документы в соответствии с его лицензией.

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

Как видно из вашего второго обновления, вы уже обнаружили этот факт.

То, что вы, похоже, неправильно поняли, это скриншот "Свойства документа":

  1. OpenType шрифты бывают разных вкусов. Некоторые используют (внутренне) технологию формирования TrueType, некоторые используют метод Type1 / PostScript. Это объясняет, почему вы видите его объявленным как Type1.
  2. Нет, приложение НЕ "пытается внедрить шрифт (но делает это неправильно)". Скорее кажется, ЧЕСТЬ флаг "не вставлять" в файл шрифта, который устанавливает именно это ограничение.
  3. Те системы приема PDF, которые выдают предупреждение "Не удается найти или создать шрифт" RVYPRT+TradeGothicLTStd-Light ". Некоторые символы могут отображаться или печататься неправильно", не являются ошибкой. Они просто...

    • ... не установлен этот шрифт локально, или
    • ... не поддерживает технологию шрифтов Adobe Multiple Master или
    • ... не используйте Adobe Reader или Acrobat (который будет включать в себя MM).

Мой простой совет, повторенный сотни раз перед моими клиентами на протяжении многих лет:

  1. Всегда вставляйте все шрифты в ваши PDF-файлы. (Если у вас нет очень веской причины не знать об этом последствия.)
  2. Никогда не покупайте (или не используйте) шрифт, который не позволяет встраивать. (И если вы не знаете, как проверить текущие шрифты для этого, обратитесь за советом к специалисту.)

Обновить:

По сути, "флаг встраивания" может выражаться четырьмя (важными) различными уровнями ограничений. (На практике этот флаг применяется только к TrueType и OpenTypes, но не к более старомодным шрифтам PostScript Type1. Технически говоря: имя этого флага fsType, оно является битовой маской и содержится в OS/2 таблица шрифтов TrueType и OpenType....)

Эти уровни указывают, где, когда и для каких целей тип литейного производства позволяет встраивать шрифт в документы (не только PDF, но также Word, OpenOffice или любой другой тип документа:

  1. Встраивание не допускается.
    Вы можете создать электронный документ в системе, в котором установлен шрифт, вы можете редактировать его и просматривать. Ах, вы также можете распечатать его: драйверы принтера Adobe PostScript будут включать все элементы шрифта, необходимые для печати в файле PostScript. Но это все.
  2. Предварительный просмотр и встраивание только для печати.
    Документ имеет встроенный шрифт, и документ можно просматривать с оригинальным шрифтом (даже в системе приема документов). Но вы не можете сделать с ним ничего другого (например, без редактирования документа). Это делает весь документ доступным только для чтения + только для печати. Копирование и вставка содержимого в другой документ возможно, но в нем НЕ используется (или даже не передается) шрифт с ограниченным доступом.
  3. Редактируемое встраивание.
    Документ может быть отредактирован (в принимающей системе). Однако точный успех этой операции зависит от того, был ли внедрен полный шрифт или подмножество. Если ваше подмножество случайно не содержит "я", вы не можете добавить комментарий "идиоты!" к документу, и вам, возможно, придется ограничиться "дураками!"....
  4. Устанавливаемое встраивание.
    Здесь нет ограничений. Встроенный шрифт можно даже извлечь и установить в принимающей системе. (Было время, когда Microsoft автоматически устанавливала любой встроенный в документ шрифт из документа Word на компьютерах-получателях, если его там еще не было.) Тем не менее, этот вариант спорный: НИКАКОЕ "обычное" приложение не предоставляет средства для извлечения. или установка встроенных шрифтов документа.

Существует еще два (менее важных) ограничения, которые может указывать флаг "встраивание" шрифта:

  • Подмножество не допускается (Другие ограничения, указанные выше, могут применяться независимо.)
  • Только для вставки растрового изображения (данные схемы не могут быть включены).

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

Подробности об этой теме можно узнать из " Белой книги Adobe" о "Руководстве по внедрению шрифтов для сторонних разработчиков".

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

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