How to open and convert CHM documents?
I have some documents that are in a .chm format. I wondered if there is a file format that can be easier to navigate, supported and of equal file size in Ubuntu? If there is, I would like to start converting all those books and probably using them with less hassle on all my Ubuntu PCs and my Android phone.
8 Answers 8
You can convert them to PDF using the command line program chm2pdf (install chm2pdf here). Once installed you can run the command from a terminal like this:
chm2pdf --book in.chm out.pdf
In case you didn’t know, there are several chm readers available — just search chm in the Software Centre.
You can also extract chm files to html using the command line tool 7-Zip (install p7zip-full here):
If you do not want to use PDF then I would suggest Epub, a fairly good, open e-book format, you can install a good reader for it called Calibre on Ubuntu, Calibre has a useful conversion facility that can import chm files and then convert them to other formats epub included. epubs can be easily read on most smart phones and tablets as well.
Calibre can be installed from the software center.
There is also KChmViewer, if you prefer KDE.
KChmViewer is Ok. but I’d prefer the firefox addon [CHM Reader]. Not a good solution for my issue, as I want to get rid of those lousy chm files I already have to a better supported format. Pdf isn’t good either. Options?
This is an old question, but a straight-forward answer is to use archmage which can host the chm contents as a website on localhost.
and open http://localhost:5000 in your webbrowser to open the documentation inside the chm file.
Calibre will do it all
- Install Calibre
- import the chm file into Calibre with Add books button
- use Convert books button to convert it to epub or pdf.
This is ultimately what worked for me. On the command line, calibre can be installed with apt and used as ebook-convert to convert the CHM to a PDF.
dv3500ea has a great chm2pdf answer, but I prefer to read them as html files.
In short:
sudo apt-get install libchm-bin extract_chmLib myFile.chm outdir
Then open up ./outdir/index.html to view the converted html files! Yaaay! Much better. Now I can navigate it just like a .chm file, but I can also use my Chrome browser to search the pages for text, easily print, etc.
Let’s make a command called chm2html
Here’s a nice script I wrote.
- Copy and paste the below script into a file chm2html.py
- Make it executable: chmod +x chm2html.py
- Create a ~/bin directory if you don’t already have one: mkdir ~/bin
- Make a symlink to chm2html.py in your ~/bin directory: ln -s ~/path/to/chm2html.py ~/bin/chm2html
- Log out of Ubuntu then log back in, or reload your paths with source ~/.bashrc
- Use it! chm2html myFile.chm . This automatically converts the .chm file and places the .html files into a new folder called ./myFile , then it creates a symlink called ./myFile_index.html which points to ./myFile/index.html .
chm2html.py file: get the latest version of this file on GitHub here from my eRCaGuy_dotfiles repo:
#!/usr/bin/python3 """ chm2html.py - convert .chm files to .html, using the command shown here, with a few extra features (folder names, shortcuts, etc): http://www.ubuntugeek.com/how-to-convert-chm-files-to-html-or-pdf-files.html - (this is my first ever python shell script to be used as a bash replacement) Gabriel Staples www.ElectricRCAircraftGuy.com Written: 2 Apr. 2018 Updated: 2 Apr. 2018 References: - http://www.ubuntugeek.com/how-to-convert-chm-files-to-html-or-pdf-files.html - format: `extract_chmLib book.chm outdir` - http://www.linuxjournal.com/content/python-scripts-replacement-bash-utility-scripts - http://www.pythonforbeginners.com/system/python-sys-argv USAGE/Python command format: `./chm2html.py fileName.chm` - make a symbolic link to this target in ~/bin: `ln -s ~/GS/dev/shell_scripts-Linux/chm2html/chm2html.py ~/bin/chm2html` - Now you can call `chm2html file.chm` - This will automatically convert the fileName.chm file to .html files by creating a fileName directory where you are, then it will also create a symbolic link right there to ./fileName/index.html, with the symbolic link name being fileName_index.html """ import sys, os if __name__ == "__main__": # print("argument = " + sys.argv[1]); # print 1st argument; DEBUGGING # print(len(sys.argv)) # DEBUGGING # get file name from input parameter if (len(sys.argv)
Шесть программ просмотра CHM для Linux
Даже если вы работаете только в Linux, вам наверняка придется использовать файлы формата Microsoft Compiled HTML Help (CHM). Множество проектов с открытым кодом, включая Apache , MySQL , PostgreSQL , Python и PHP , используют этот распространенный формат.
Microsoft разрабатывал CHM как проприетарный формат для Windows 98, взамен старого формата WinHelp (HLP). CHM все еще используется в Windows XP и Vista, хотя некоторые приложения используют более новый формат Microsoft Help 2 .
Файлы CHM представляют из себя совокупность веб-страниц, оглавление с гиперссылками и индекс, все это сжато с помощью LZX. Файлы CHM имеют небольшой размер (из-за сжатия), предоставляют возможность полнотекстового поиска и возможность объединения нескольких CHM-файлов в один с объединением оглавления и индекса.
Даже несмотря на то, что CHM - это закрытый формат Microsoft, существует несколько проектов, которые могут воспринимать этот формат.
KchmViewer
KchmViewer - стандартное средство KDE для просмотра файлов CHM. Современная версия 3.1 была выпущена в июне, хотя уже имеется бета-версия 4.0. Эта программа распространяется под лицензией GNU General Public License (GPL) и использует части кода другого средства просмотра - xCHM.
KchmViewer доступен в большинстве репозиториев. Можно также скачать и собрать его из исходников, путем стандартных команд configure и make . Только убедитесь в наличии пакета qt3-devel , для получения более детальной информации обратитесь к странице загрузок.
В KDE KchmViewer по умолчанию связан с файлами CHM, т.е. при клике на таком файле последует его автоматический запуск. Для отображения текста может быть использован либо визуальный компонент библиотеки Trolltech Qt либо оригинальный KHTML widget окружения KDE (это переключается в меню Settings). Мне попался один файл CHM, который отображался некорректно, и переключение метода отображения решило проблему.
KchmViewer поддерживает просмотр закладок, и предоставляет вкладки Contents, Index и Search. Программа правильно обрабатывает иностранные языки и многобайтовые символы. В документе можно устанавливать закладки, редактировать и удалять их. Можно смотреть оригинальный код HTML, и даже выбрать для этого определенный редактор через пункт меню Settings.
Help Explorer Viewer
Программа Help Explorer Viewer , разработанная Kama Software , бесплатна, но код ее не открыт. Есть версия как для Windows, так и для Linux, что весьма полезно при работе сразу с двумя операционными системами или в сети с системами обеих типов. Help Explorer Viewer можно использовать не только для просмотра файлов CHM, но и для файлов формата HLP (старых) и HXS (новых). Согласно веб-сайту, вы можете интегрировать Help Explorer Viewer в свое приложение через API.
Установка проста. Посетите страницу загрузки и скачайте версию для Linux, последняя версия 3.0. Зайдите в папку, в которую скачали файл и введите следующие команды root:
tar zxf HelpExplorer3.0_LINUX.tar.gz
cd Setup/
./setup.sh
После просмотра лицензионного соглашения конечного пользователя (EULA), установите Help Explorer Viewer в /usr/local/HelpExplorer . Если нужно удалить его, запустите в этой папке скрипт uninstall.sh . Установщик спросил меня, хочу ли я установить пункты меню KDE/GNOME. Хотя я и ответил да, ссылка на программу не появилась ни в главном меню, ни в меню Konqueror, ни даже в контекстном меню, которое появляется при нажатии правой кнопкой мыши на файле CHM. Не знаю, где эти ссылки должны появится, я нигде не смог найти их.
Help Explorer Viewer содержит все используемые механизмы поиска: оглавление (организовано иерархически, подобно дереву), индекс (список ключевых слов) и обычный поиск. Все мои пробные CHM-файлы открывались без проблем, но у меня не получилось изменить шрифт. Можно переключаться между вкладками Contents, Index, Search и Favorites (в других программах - Bookmarks).
ChmSee
ChmSee - пакет Gtk2+ для GNOME с открытым кодом, его веб-сайт написан в основном на китайском; если бы не некоторые части на английском, пришлось бы проводить установку и использование ChmSee мучительным методом проб и ошибок. Он свободен под лицензией GNU GPL, в августе была выпущена версия 1.0.
Установка ChmSee была бы совсем хлопотной, если бы не стандартные базы openSUSE. Если вы хотите собрать его из исходников, вам потребуются библиотеки Gtk2+, libglade-2.0, gecko, chmlib и OpenSSL. После получения пакета с исходниками необходимо ввести следующие команды:
tar xzf chmsee-1.0.0.tar.gz
cd chmsee-1.0.0
./configure
make
sudo make install
Если не сможете найти chmlib, придется вручную добавить параметр к команде configure ( --with-chmlib=/путь/до/chmlib ). После установки ChmSee оказался добавлен в меню openSUSE, но не в Konqueror или контекстное меню.
Можно изменять шрифты, используемые для отображения (кое какие отсутствуют и в KchmViewer, и в Help Explorer Viewer) через пункт меню Edit -> Setup. Будьте осторожны с функцией Clear, которая удаляет все рабочие файлы ChmSee и вызывает частые падения программы. Если его выбрать, то придется заново открыть файл CHM. В ChmSee нет вкладок Index или Search; по сути, в нем вообще нет функции поиска. Когда я проводил тестирование, некоторые файлы CHM показывали странные сообщения (и не отображался текст), а некоторые изображения не показывались вовсе.
ChmSee выглядит многообещающим, но еще необходимо многое сделать, прежде чем он достигнет уровня KchmViewer и Help Explorer Viewer.
Другие кандидаты
Пользователи Firefox могут скачать дополнение CHM Reader версии 0.2.1.1. Установка его проста. Эта утилита добавляет новую запись Open CHM Files в пункте меню File. Когда вы открываете файл CHM, оглавление по умолчанию скрыто, но можно поднять его вверх, нажав Ctrl-E. Просмотр файлов работал неплохо, но CHM Reader не предоставляет функции глобального поиска, а поиск в Firefox работает только на текущей странице.
Я пробовал GnoCHM , xCHM и KCHM (по-видимому, заброшенный; его последняя версия датируется 2003 годом), но столкнулся с проблемой зависимостей . Я не смог найти дистрибутивы, и установка из исходников была трудной.
Заключение
KchmViewer предлагает простую установку и замечательно соединяется с окружением рабочего стола. Help Explorer Viewer полезен для разработчиков и пользователей, работающих и с Linux, и с Windows. ChmSee содержит кое-какие ошибки, и я не рекомендовал бы его для повседневного использования. CHM Reader - хорошее дополнение, но отсутствие поиска является его недостатком.
Как открыть chm-файлы в Linux
Очень часто справочники хранятся в формате chm. Существует несколько способов открыть этот формат файлов:
Испытуемый документ — справочник по CSS.
Вот так это выглядит в Windows и таким оно должно остаться в Linux.
xchm
Кросс-платформенная программа, изначально написанная под Linux, впоследствии портированная под Mac OS X и Windows.
Итак, программа была установлена, документ был открыт.
Изначальная верстка вообще не показывается, русские буквы в содержании не отображаются.
gnochm
Для тех кто использует Gnome.
Запускаем программу, открываем документ.
Ну что же… Верстка сохранилась и это уже радует.
Текст на русском языке, но… содержание опять не отображается корректно.
kchmviewer
Приложение написано под kde, но никто не мешает использовать его в Gnome.
Официальный сайт программы: www.kchmviewer.net/
Программа запущена, документ открыт.
Разметка как надо, все на русском, никаких нареканий.
Как обычно это бывает с kde-приложениями — все сделано с умом и, что самое главное, работает корректно.
И еще один плюс.
Если закрыть программу и открыть ее еще раз, то вы увидите ту страницу, которую читали до закрытия.
В содержании тоже выбирается все корректно.
Оставьте свой комментарий!