pdf2htmlEX преобразует текст, но не виден (программа не может найти файл шрифта в Linux?)

Я использую pdf2htmlEX для преобразования pdf в html, и выходные данные отображаются правильно, когда они создаются локально на Mac, но не когда они создаются в производстве на amazon linux. Эта проблема есть на нескольких страницах, но я буду использовать страницу 22 этого pdf. как конкретный пример.

Для неправильного вывода html (сгенерированного в Linux):

  1. в то время как определенный текст не виден при отображении в браузере, правильный текст находится в базовом html при проверке с помощью инструментов chrome dev
  2. это вызвано тем, что атрибут css visibility элемента (указанный именем класса ff13) установлен на hidden, где при правильном преобразовании он установлен на visible
  3. и я вижу в инструментах разработчика на вкладке вычисляемых стилей css для rendered fonts, что правильный шрифт - DejaVu Sans, а неправильный шрифт - Helvetica

Я проверил и подтвердил, что DejaVuSans.ttf (и другие шрифты DejaVu) установлены на Linux-машине по адресу /usr/share/fonts/dejavu/, поэтому я могу предположить, что по какой-то причине программа pdf2htmlEX не может найти файл шрифта при преобразовании, поэтому она помечает css свойство visibility как hidden. Я также попытался установить ядро ​​mac (источник здесь) и microsoft fonts, перезагрузите компьютер и повторите попытку, но это не помогло.

Кто-нибудь знает, как это исправить или устранить неполадки отсюда? Заранее благодарю за любую помощь!


person JustCodin    schedule 07.03.2020    source источник


Ответы (1)


Вам необходимо убедиться, что файлы шрифтов для всех невстроенных шрифтов PDF находятся в пути fontconfig. Вы можете увидеть список путей в конфигурационном файле fontconfig (обычно /etc/fonts/fonts.config). Посмотрите вверху этого файла список каталогов. Если ваш файл шрифта не находится ни в одном из них, он не будет найден.

В вашем случае я бы переместил файлы шрифтов в /usr/share/fonts, а не в подкаталог.

person David Hedley    schedule 08.03.2020
comment
Я проверил /etc/fonts/fonts.confи вижу под <!-- Font directory list --> каталог <dir>/usr/share/fonts</dir>. Я скопировал файлы шрифтов из /usr/share/fonts/dejavu/ в /usr/share/fonts/ и перезагрузился, но это не сработало. Когда я запускаю sudo fc-cache -f -v, я вижу /usr/share/fonts/dejavu/, а когда я запускаю fc-list, я вижу различные записи DejaVu Sans. - person JustCodin; 09.03.2020
comment
Я предполагаю, что на странице 22 отсутствующий текст является одним из двух невстроенных шрифтов на этой странице: ArialMT или Arial-BoldMT. Что это говорит, если вы делаете fc-match ArialMT? - person David Hedley; 25.03.2020
comment
Когда я выполняю fc-match ArialMT, он возвращает DejaVuSans.ttf: "DejaVu Sans" "Book". Спасибо за вашу постоянную помощь. Я искренне ценю это, так как это важно для того, над чем я работаю. - person JustCodin; 27.03.2020