2016-06-21 3 views

ответ

2

В принципе, ответ «нет», хотя есть несколько уровней предостережения.

Наиболее распространенным сценарием для файла PDF является то, что он содержит встроенный шрифт, а этот шрифт является подмножеством. В этом случае шрифт будет использовать пользовательскую кодировку, так что, когда вы увидите «Hello» на вашем мониторе, фактические коды символов могут быть «Axtte» или подобной тарабарщиной. Если шрифт также содержит таблицу ToUnicode, вы можете технически создать встроенное подмножество обычного шрифта из того же семейства, что и жирным или курсивом, и вставлять его, и это сработает. Это будет огромная работа.

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

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

Обратите внимание, что поскольку PDF является двоичным форматом с индексом (xref), содержащим смещение каждого объекта в файле, любые изменения означают, что таблица xref должна быть восстановлена, что опять-таки значительная задача.

Я не знаю каких-либо инструментов, которые будут делать все это для вас автоматически, вам придется писать свои собственные, хотя некоторые вещи могут быть выполнены автоматически. Например, MuPDF «исправит» файл PDF с неправильной таблицей xref для вас.

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

Итак, в принципе, нет.