Bug 5183

Summary: htmldoc uses bad fonts (without cyrillic glyphs)
Product: Sisyphus Reporter: Michael Shigorin <mike>
Component: htmldocAssignee: Andrei Bulava <abulava>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2    
Version: unstable   
Hardware: all   
OS: Linux   

Description Michael Shigorin 2004-09-08 20:22:05 MSD
htmldoc seems to have 'bad' PostScript fonts with it (in
/usr/share/htmldoc/fonts) which don't have Cyrillic glyphs.

maybe it can be hacked to use urw-fonts (e.g. require that and plant/generate
symlinks to proper fonts into that dir)

hope to try if/when time allows again....
Steps to Reproduce:
htmldoc --webpage --charset cp-1251 -f news.pdf
'http://linux.kiev.ua/news.html?&L=1'
xpdf news.pdf
Comment 1 Andrei Bulava 2004-09-09 12:53:20 MSD
I'm not sure where exactly problem with Cyrillic support is, but can approve
that htmldoc can't handle none of Cyrillic codepage variant: ISO8859-5, KOI8-R
and CP-1251 :-(
Comment 2 Michael Shigorin 2004-09-09 13:56:27 MSD
--- Valentin Nechaev

Если в выходном документе htmldoc'а выделить кусок того, что у него
вместо текста, и скопировать, например, в xterm с koi8 - будет виден
исходный текст без проблем.

Копание внутри htmldoc показало, что он собственно восьмибитный вход никак не
трогает. Более того, в заданиях вида &#1040; он обрезает до 8 бит (а вот
это уже явная бага). Настройка кодировки играет роль только в задании таблицы
понимания кодировки шрифта (как она там в pdf зовётся); это задание
делается правильно, но вот сами фонты из стандартной поставки не знают
ничего за пределами iso-8859-1.

Если подменить шрифты на содержащие кириллицу - будет работать.
Comment 3 Andrei Bulava 2004-09-14 14:38:58 MSD
(In reply to comment #2)

<skip/>

> Если подменить шрифты на содержащие кириллицу - будет работать.
 
Я проверил путём подмены шрифтов из /usr/share/htmldoc/fonts/* на шрифты,
полученные из urw-fonts путём преобразования pfb -> pfa с последующим
переименованием _файлов_ на принятые htmldoc'ом Courier*.{afm,pfa},
Helvetica*.{afm,pfa}, Times*.{afm,pfa} (NB! внутри *.afm и *.pfa так и остались
названия шрифтов Nimbus*)

Результат положительный только наполовину.

Отрицательная половина:

Без использования опции --embedfonts htmldoc выдает такой же pdf, как и раньше.
Кстати, pdf не такой уж и неправильный: проверьте результат преобразования
html-файла, в котором есть строка с _единственной_ буквой кириллицы - xpdf
покажет букву в этой строке абсолютно корректно. Проблема описана в #5183 не
совсем точно: на деле все буквы , не входящие в ISO-8859-1, присутствуют в
результирующем pdf, но отрендериваются xpdf'ом в одну позицию (легко проверить
на случае всего двух букв в строке).

Положительная половина:

С использованием шрифтов, полученных из urw-fonts, в сочетании с опцией
--embedfonts удаётся получить корректно отображающийся в xpdf и acroread(!) pdf.
Но без ложки дёгтя не обошлось - htmldoc встраивает шрифты "как есть", т.е.
просто вставляет содержимое pfa в результат. Объём результирующего pdf
непригоден для генерации pdf из html "на лету" (для web-применения). Более
продвинутая техника генерации "субшрифтов", содержащих только необходимые глифы,
не поддерживается htmldoc'ом.

В общем, текущий результат я могу оформить в виде новой сборки - на ISO-8859-1
нововведения не скажутся. Но реально поддержка "не ISO-8859-1" будет возможна
только с использованием опции --embedfonts. Такую опцию, согласно ChangeLog,
разработчики htmldoc и ввели ради поддержки "не ISO-8859-1" кодировок. Другое
дело, что техника встраивания шрифтов у htmldoc очень примитивная и будет давать
результирующие файлы слишком большого для web-применения объёма.
Comment 4 Michael Shigorin 2004-09-14 14:59:07 MSD
Давайте так.  Это ничего не ухудшает, зато по крайней мере будет дополнительная
возможность.

Да и объём пакета, кажется, уменьшается (правда, за счет добавления
urw-fonts-ttf к зависимостям).

Спасибо за исследование!
Comment 5 Andrei Bulava 2004-09-22 10:22:22 MSD
Исправлено в htmldoc-1.8.23-alt5

Корректный pdf с кириллицей можно получить только с указанием опции
--embedfonts, размер pdf'а в этом случае будет достаточно большим.
Comment 6 Michael Shigorin 2005-10-12 00:03:45 MSD
btw, http://lostclus.linux.kiev.ua/patches/index-ru.html :)
(повесить отдельно как FR?)