Перейти к содержимому
pdftools.kz

В PDF подменились шрифты

Документ хранит либо сам шрифт, либо только его имя и описание. Во втором случае программа ищет шрифт с таким именем у себя, не находит и подставляет ближайший похожий по описанию. Буквы остаются на месте, а вот их ширины меняются — и вёрстка расползается: переносы уезжают, таблицы разъезжаются, документ становится длиннее на страницу. Проверить причину можно за два клика в свойствах файла.

Локально в браузеребез регистрации

Коротко о цифрах

Где посмотреть
свойства документа, список шрифтов: у встроенного указан тип
Что меняется при подстановке
ширины символов, а координаты строк остаются прежними
Стандартные шрифты формата
не встраиваются никогда и кириллицы в своей кодировке не содержат
Признак невстроенных шрифтов
вид документа меняется от компьютера к компьютеру
Чего нельзя снаружи
добавить шрифт в чужой готовый файл

Как убедиться, что дело в подстановке

  1. Откройте свойства документа и найдите список шрифтов — он есть почти в каждой программе просмотра.
  2. Посмотрите на пометку рядом с именем: у встроенного указан тип встраивания, у остальных не указано ничего.
  3. Сравните имена в списке с тем, что вы видите на странице: подставленное начертание обычно шире или уже оригинала.
  4. Откройте файл на другой машине. Вид меняется от компьютера к компьютеру — это надёжный признак невстроенных шрифтов.

Почему съезжает вёрстка, а не только начертание

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

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

Что можно сделать

  • Пересобрать PDF из исходника, включив встраивание шрифтов при экспорте, — единственное настоящее решение.
  • Установить недостающий шрифт на своей машине, если исходника нет, а документ нужен только вам.
  • Зафиксировать вид растеризацией страниц: подстановка станет невозможной, но текст перестанет быть текстом.
  • Не полагаться на стандартный набор шрифтов: он не встраивается никогда и кириллицы в своей кодировке не содержит вовсе.

Чем мы поможем и чем нет

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

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

Частые вопросы

Чем подмена отличается от квадратов вместо букв?

При подмене буквы видны, но начертание чужое и вёрстка съехала. Квадраты означают, что нужного знака нет в шрифте вообще, и это другая проблема с другим решением.

Почему у автора файл выглядит правильно?

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

Стоит ли встраивать все шрифты подряд?

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

Растеризация действительно решает проблему?

Она её фиксирует, а не решает. Страницы превращаются в изображения ровно с тем видом, который показывает ваша программа, поэтому подставленный шрифт останется подставленным, зато не изменится больше нигде.

Рядом