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