Bug 47474 - Шрифты в формате pfb/pfm (Type 1) не поддерживаются podofo
Summary: Шрифты в формате pfb/pfm (Type 1) не поддерживаются podofo
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: podofo (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Vitaly Lipatov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-09-06 16:12 MSK by Artem Varaksa
Modified: 2023-09-06 16:12 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Artem Varaksa 2023-09-06 16:12:12 MSK
Описание ошибки
===============

1. $ for i in {a..z}{1..100}; do echo "привет${i}" >> text.txt; done
2. $ podofotxt2pdf -utf8 -fontname "Nimbus Sans L" text.txt text_nimbus.pdf

Фактический результат
=====================

Выводится сообщение:

> The font format is unknown or no multibyte encoding defined. Fontname: NimbusSanL-Regu Filename: /usr/share/fonts/type1/urw/n019003l.pfb
> CRITICAL: No path was found for the specified fontname: Nimbus Sans L
> Error 2 occurred!
> 
> 
> PoDoFo encountered an error. Error: 2 ePdfError_InvalidHandle
>         Error Description: A NULL handle was passed, but initialized data was expected.
>         Callstack:
>         #0 Error Source: /usr/src/RPM/BUILD/podofo-0.9.8/tools/podofotxt2pdf/podofotxt2pdf.cpp:76

При этом созданный файл text_nimbus.pdf не открывается, и при попытке выполнить $ podofotxtextract text_nimbus.pdf

> Error: An error 17 ocurred during processing the pdf file.
> 
> 
> PoDoFo encountered an error. Error: 17 ePdfError_NoEOFToken
>         Error Description: No EOF Marker was found in the PDF file.
>         Callstack:
>         #0 Error Source: /usr/src/RPM/BUILD/podofo-0.9.8/src/podofo/doc/PdfMemDocument.cpp:263
>                 Information: Handler fixes issue #49
>         #1 Error Source: /usr/src/RPM/BUILD/podofo-0.9.8/src/podofo/base/PdfParser.cpp:232
>                 Information: Unable to load objects from file.
>         #2 Error Source: /usr/src/RPM/BUILD/podofo-0.9.8/src/podofo/base/PdfParser.cpp:270
>                 Information: EOF marker could not be found.
>         #3 Error Source: /usr/src/RPM/BUILD/podofo-0.9.8/src/podofo/base/PdfParser.cpp:1493

Ожидаемый результат
===================

Успешное создание файла text_nimbus.pdf с текстом из файла text.txt.

Дополнительно
=============

Похоже, что поддержка формата была отключена во время переименования проекта в коммите https://github.com/podofo/podofo/commit/a2eca000e5a4337fb79ee8215d06413785653184.

См. удалённый src/podofo/doc/PdfFontType1.cpp:

https://github.com/podofo/podofo/commit/a2eca000e5a4337fb79ee8215d06413785653184#diff-2e052932e5a04bdf94c0ae4a476a9cb516167aa12075fe482e0db261234c9046

Добавленный src/podofo/base/PdfFontType1.cpp:

https://github.com/podofo/podofo/commit/a2eca000e5a4337fb79ee8215d06413785653184#diff-ec407af3395caabd657a9d2a4503b6b316e741a361a5331a10a275ffe6412830

> // TODO: Re-enable me by fixing below code
> [...]

Воспроизводимость
=================

Воспроизводится на виртуальных машинах:

[p10] podofo-0.9.8-alt1.x86_64
server-10.1-x86-64

[sisyphus] podofo-0.9.8-alt1.x86_64
server-10.1-x86-64