Как открыть и конвертировать документы CHM?
У меня есть некоторые документы, которые находятся в .chm
формат. Я задавался вопросом, есть ли в Ubuntu формат файла, по которому легче ориентироваться, который поддерживается и который имеет одинаковый размер файла?
Если есть, я хотел бы начать конвертировать все эти книги и, вероятно, использовать их с меньшими хлопотами на всех моих компьютерах с Ubuntu и на моем телефоне Android.
8 ответов
Вы можете конвертировать их в PDF, используя программу командной строки chm2pdf ( установите chm2pdf здесь). После установки вы можете запустить команду из терминала следующим образом:
chm2pdf --book in.chm out.pdf
Если вы не знали, есть несколько читателей chm - просто поиск chm
в Центре программного обеспечения.
Вы также можете извлечь файлы chm в html, используя инструмент командной строки 7-Zip ( установите p7zip-full здесь):
7z x file.chm
Если вы не хотите использовать PDF, то я бы посоветовал Epub, довольно хороший, открытый формат электронных книг, вы можете установить в Ubuntu хорошую программу для его чтения под названием Caliber, в Caliber есть полезная функция преобразования, которая может импортировать файлы CHM, а затем конвертировать их в другие форматы epub включены. epubs можно легко прочитать на большинстве смартфонов и планшетов.
Калибр можно установить из центра программного обеспечения.
Калибр все сделает
Установить Калибр
импортируйте файл chm в Caliber с помощью
Add books
кнопкаиспользовать
Convert books
кнопку, чтобы преобразовать его в epub или pdf.
У dv3500ea отличный ответ chm2pdf, но я предпочитаю читать их как HTML-файлы.
Короче:
sudo apt-get install libchm-bin
extract_chmLib myFile.chm outdir
Источник: http://www.ubuntugeek.com/how-to-convert-chm-files-to-html-or-pdf-files.html
Тогда открой ./outdir/index.html
для просмотра преобразованных файлов HTML! Yaaay! Намного лучше. Теперь я могу перемещаться по нему так же, как файл.chm, но я также могу использовать свой браузер Chrome для поиска на страницах текста, печати и т. Д.
Давайте сделаем команду под названием chm2html
Вот хороший сценарий, который я написал.
- Скопируйте и вставьте приведенный ниже скрипт в файл
chm2html.py
- Сделайте его исполняемым:
chmod +x chm2html.py
- Создать
~/bin
каталог, если у вас его еще нет:mkdir ~/bin
- Сделайте символическую ссылку на chm2html.py в вашем
~/bin
каталог:ln -s ~/path/to/chm2html.py ~/bin/chm2html
- Выйдите из Ubuntu, затем снова войдите в систему или перезагрузите путь
source ~/.bashrc
- Используй это!
chm2html myFile.chm
, Это автоматически преобразует файл.chm и помещает файлы.html в новую папку с именем./myFile
затем он создает символическую ссылку./myFile_index.html
что указывает на./myFile/index.html
,
chm2html.py
файл:
#!/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) <= 1):
print("Error: missing .chm file input parameter. \n"
"Usage: `./chm2html.py fileName.chm`. \n"
"Type `./chm2html -h` for help. `Exiting.")
sys.exit()
if (sys.argv[1]=="-h" or sys.argv[1]=="h" or sys.argv[1]=="help" or sys.argv[1]=="-help"):
print("Usage: `./chm2html.py fileName.chm`. This will automatically convert the fileName.chm file to\n"
".html files by creating a directory named \"fileName\" right where you are, then it will also create a\n"
"symbolic link in your current folder to ./fileName/index.html, with the symbolic link name being fileName_index.html")
sys.exit()
file = sys.argv[1] # Full input parameter (fileName.chm)
name = file[:-4] # Just the fileName part, withOUT the extension
extension = file[-4:]
if (extension != ".chm"):
print("Error: Input parameter must be a .chm file. Exiting.")
sys.exit()
# print(name) # DEBUGGING
# Convert the .chm file to .html
command = "extract_chmLib " + file + " " + name
print("Command: " + command)
os.system(command)
# Make a symbolic link to ./name/index.html now
pwd = os.getcwd()
target = pwd + "/" + name + "/index.html"
# print(target) # DEBUGGING
# see if target exists
if (os.path.isfile(target) == False):
print("Error: \"" + target + "\" does not exist. Exiting.")
sys.exit()
# make link
ln_command = "ln -s " + target + " " + name + "_index.html"
print("Command: " + ln_command)
os.system(ln_command)
print("Operation completed successfully.")
Это старый вопрос, но прямой ответ - использовать
archmage
который может размещать содержимое chm как веб-сайт на localhost.
Например запустить
archmage -p 5000 file.chm
и откройте http://localhost:5000 в своем веб-браузере, чтобы открыть документацию внутри
chm
файл.
Справочная страница как ссылка:
http://manpages.ubuntu.com/manpages/trusty/man1/archmage.1.html