В PDF подменились шрифты
Документ хранит либо сам шрифт, либо только его имя и описание. Во втором случае программа ищет шрифт с таким именем у себя, не находит и подставляет ближайший похожий по описанию. Буквы остаются на месте, а вот их ширины меняются — и вёрстка расползается: переносы уезжают, таблицы разъезжаются, документ становится длиннее на страницу. Проверить причину можно за два клика в свойствах файла.
Коротко о цифрах
- Где посмотреть
- свойства документа, список шрифтов: у встроенного указан тип
- Что меняется при подстановке
- ширины символов, а координаты строк остаются прежними
- Стандартные шрифты формата
- не встраиваются никогда и кириллицы в своей кодировке не содержат
- Признак невстроенных шрифтов
- вид документа меняется от компьютера к компьютеру
- Чего нельзя снаружи
- добавить шрифт в чужой готовый файл
Как убедиться, что дело в подстановке
- Откройте свойства документа и найдите список шрифтов — он есть почти в каждой программе просмотра.
- Посмотрите на пометку рядом с именем: у встроенного указан тип встраивания, у остальных не указано ничего.
- Сравните имена в списке с тем, что вы видите на странице: подставленное начертание обычно шире или уже оригинала.
- Откройте файл на другой машине. Вид меняется от компьютера к компьютеру — это надёжный признак невстроенных шрифтов.
Почему съезжает вёрстка, а не только начертание
В документе записаны координаты, с которых начинается каждая строка, и ширины символов исходного шрифта. Подставленный шрифт имеет свои ширины, поэтому строка либо не добирает до правого края, либо вылезает за него. Программа не переверстывает текст заново — она рисует его по записанным координатам, и расхождение накапливается к концу абзаца.
Хуже всего это видно в таблицах и многоколоночных документах, где каждая ячейка позиционирована точно. Одна лишняя доля миллиметра на символ превращается в перекрытие соседней колонки к середине строки. Отсюда и типовая жалоба: файл, который у автора выглядел безупречно, у получателя разъехался, хотя ни одна буква не потерялась.
Что можно сделать
- Пересобрать PDF из исходника, включив встраивание шрифтов при экспорте, — единственное настоящее решение.
- Установить недостающий шрифт на своей машине, если исходника нет, а документ нужен только вам.
- Зафиксировать вид растеризацией страниц: подстановка станет невозможной, но текст перестанет быть текстом.
- Не полагаться на стандартный набор шрифтов: он не встраивается никогда и кириллицы в своей кодировке не содержит вовсе.
Чем мы поможем и чем нет
Мы не можем встроить недостающий шрифт в чужой готовый файл: в документе нет ни контуров букв, ни таблицы их ширин, а восстанавливать начертание по имени — это гадание, а не работа с данными. Растеризация страниц закрепит внешний вид ровно таким, каким его показывает ваша программа, — со всеми последствиями, включая потерю выделяемого текста.
Зато при сборке PDF из офисного документа на нашей стороне вопрос снимается на этапе конвертации: шрифт, которого нет на сервере, заменяется на ближайший там же, и вы видите результат сразу, а не узнаёте о подстановке от получателя. Тексты, которые дописывают в PDF наши инструменты, всегда используют встроенный шрифт с кириллицей.
Частые вопросы
Чем подмена отличается от квадратов вместо букв?
При подмене буквы видны, но начертание чужое и вёрстка съехала. Квадраты означают, что нужного знака нет в шрифте вообще, и это другая проблема с другим решением.
Почему у автора файл выглядит правильно?
Потому что на его машине нужный шрифт установлен, и программа берёт настоящий, а не подставленный. Разница видна только у тех, у кого этого шрифта нет, — то есть у большинства получателей.
Стоит ли встраивать все шрифты подряд?
Да, если документ уходит за пределы вашего компьютера. Файл потяжелеет на несколько сотен килобайт, но это малая цена за то, что у получателя и на печати он выглядит так же, как у вас.
Растеризация действительно решает проблему?
Она её фиксирует, а не решает. Страницы превращаются в изображения ровно с тем видом, который показывает ваша программа, поэтому подставленный шрифт останется подставленным, зато не изменится больше нигде.