неправильное расположение букв и шрифт в форме PDF

Я использую Ubuntu 18.04 и заполняю SS-5 Social Security Administration form. Однако некоторые буквы расположены неправильно.

Evince 3.28.2-1:

evince screenshot (has kerning issues)

Okular 1.3.3 (версия Ubuntu 4:17.12.3-0ubuntu1):

Okular screenshot (has kerning issues)

xpdf 3.04-7:

xpdf screenshot (has kerning issues)

mudpdf 1.12.0:

mupdf screenshot (no kerning issues)

Встроенная программа чтения PDF для Firefox 59.0.2:

firefox screenshot (no kerning issues)

Встроенная программа чтения PDF для Chromium 65. 0.3325.181:

chromium screenshot (no kerning issues)

Вот вывод pdffonts:

$ pdffonts ss-5.pdf
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
IHPIKC+ArialMT                       CID TrueType      Identity-H       yes yes yes    824  0
ArialMT                              TrueType          WinAnsi          no  no  no     826  0
Arial-BoldMT                         TrueType          WinAnsi          no  no  no     828  0
CourierStd                           Type 1            WinAnsi          no  no  no     145  0
Helvetica                            Type 1            WinAnsi          no  no  no     197  0
MyriadPro-Regular                    Type 1            WinAnsi          no  no  no     198  0
ZapfDingbats                         Type 1            ZapfDingbats     no  no  no     199  0

Я уже установил пакеты ttf-mscorefonts-installer и poppler-data.

Вот мои вопросы:

  • Могу ли я изменить шрифт, используемый для заполнения ячеек формы?

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

  • Если я буду писать сообщение об ошибке, следует ли мне писать его как проблему с poppler, проблему с fontconfig или куда-то еще?

Обновление: сообщения об ошибках:

Edit: Обходной путь от @xiota вполне работоспособен. Однако, это все еще ошибка в poppler, потому что когда программа просмотра PDF подставляет другой шрифт из-за того, что оригинальный не был встроен, интервал в форме XFA должен соответствовать подставленному шрифту, а не оригинальному. Существует pull request для исправления этой проблемы, который в настоящее время находится в процессе выполнения. Разработчик Poppler Тобиас Деймингер (@haxtibal) описал подход в другом сообщении об ошибке:

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

6
задан 11 April 2019 в 10:24

1 ответ

Эта проблема должна быть исправлена в следующей версии Ubuntu (21.04). Существует также запрос на слияние исходного потока fontconfig #128.


Проблема, которую вы наблюдаете, вызвана неправильной заменой шрифта.  На моем компьютере CourierStd и ZapfDingbats заменены на Ubuntu. Это, очевидно, не будет отображаться должным образом.

pdf font properties

Чтобы это исправить:

  • Установите fonts-urw-base35. Это должно исправить дингбаты и большинство других замен шрифтов в формате PDF. Однако подстановка CourierStd не исправлена, поскольку ее нет в файлах конфигурации.

  • Чтобы исправить CourierStd, создайте файл ~/.config/fontconfig/conf.d/10-pdf-aliases.conf со следующим содержимым:

     
     
     <настройка шрифта>
    
     <псевдоним связывания="то же самое">
     Курьер Std
     <принять>
     Курьер
     
     
    
     <псевдоним>
     Курьер Std
     моноширинный
     
    
     
    

    Затем запустите fc-cache (может и не понадобиться).

    При необходимости вы можете добавить в файл другие псевдонимы шрифтов.

См. также:

8
ответ дан 24 October 2020 в 14:56

Другие вопросы по тегам:

Похожие вопросы: