Summary: | htmldoc uses bad fonts (without cyrillic glyphs) | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Michael Shigorin <mike> |
Component: | htmldoc | Assignee: | 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
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 :-( --- Valentin Nechaev Если в выходном документе htmldoc'а выделить кусок того, что у него вместо текста, и скопировать, например, в xterm с koi8 - будет виден исходный текст без проблем. Копание внутри htmldoc показало, что он собственно восьмибитный вход никак не трогает. Более того, в заданиях вида А он обрезает до 8 бит (а вот это уже явная бага). Настройка кодировки играет роль только в задании таблицы понимания кодировки шрифта (как она там в pdf зовётся); это задание делается правильно, но вот сами фонты из стандартной поставки не знают ничего за пределами iso-8859-1. Если подменить шрифты на содержащие кириллицу - будет работать. (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-применения объёма. Давайте так. Это ничего не ухудшает, зато по крайней мере будет дополнительная возможность. Да и объём пакета, кажется, уменьшается (правда, за счет добавления urw-fonts-ttf к зависимостям). Спасибо за исследование! Исправлено в htmldoc-1.8.23-alt5 Корректный pdf с кириллицей можно получить только с указанием опции --embedfonts, размер pdf'а в этом случае будет достаточно большим. btw, http://lostclus.linux.kiev.ua/patches/index-ru.html :) (повесить отдельно как FR?) |