Для преобразования формата CHM в PDF существует утилита chm2pdf, написанная на языке Python.
Если Python нет, можно пойти в обход:1. Нам нужна библиотека chmlib, в популярных дистрибутивах она есть.
2. Так же, нужна утилита extract_chmLib, находиться в пакете, где-то в chmlib-examples, где-то в chmlib-bin.
3. Утилита htmldoc,так же везде есть.
4. И объект испытаний, например RHCE.chm
Кстати, для chm2pdf так же нужна chmlib, Python и дополнительная библиотека на питоне.
И так, делаем два каталога:
mkdir /tmp/CHM/PDF /tmp/CHM/HTML;
и переходим в первый
сd /tmp/CHM
Извлекаем html страницы в каталог HTML
extract_chmLib RHCE.chm ./HTML
В каталоге HTML обнаруживаем следующие файлы:
18196.hhc
$FIftiMain
final
#IDXHDR
#ITBITS
$OBJINST
#STRINGS
#SYSTEM
#TOPICS
#URLSTR
#URLTBL
#WINDOWS
$WWAssociativeLinks
$WWKeywordLinks
Кто что значит, рассказывать не буду, смотрите Википедию и MSDN.
Нас интересует каталог ./final/, именно в нем находятся все страницы с текстом и картинки, если они были в книге.
Этот каталог и станет исходным для формирования PDF, который мы передадим в качестве параметра в утилиту htmldoc.
Авторы рекомендуют делать два прохода при конвертации.
Первый - индексация, сортировка, удаление лишних элементов и объединение в один каталог.
htmldoc -d PDF/ HTML/final/*.html
И второй - сама конвертация, но уже из каталога PDF:
htmldoc --compression=9 --book --size a4 --jpeg=100 -t pdf14 -f RHCE.pdf PDF/*.html
html --help для краткой справки
man htmldoc - для более подробного описания параметров.
В итоге получился правильный формат книги и на 2 мегабайта меньше размер.
URL: http://pavlinux.ru/2011/01/27/110
Обсуждается: http://www.opennet.dev/tips/info/2525.shtml