web-dev-qa-db-fra.com

Comment ouvrir et convertir des documents CHM?

J'ai des documents au format .chm. Je me suis demandé s'il existait un format de fichier plus facile à naviguer, pris en charge et de taille égale dans Ubuntu.

Si tel est le cas, j'aimerais commencer à convertir tous ces livres et à les utiliser sans souci sur tous mes ordinateurs Ubuntu et mon téléphone Android.

9
Julio

Vous pouvez les convertir en PDF à l'aide du programme en ligne de commande chm2pdf ( installez chm2pdf ici ). Une fois installé, vous pouvez exécuter la commande depuis un terminal comme celui-ci:

chm2pdf --book in.chm out.pdf

Si vous ne le saviez pas, plusieurs lecteurs chm sont disponibles. Il vous suffit de rechercher chm dans le centre de logiciel.

Vous pouvez également extraire des fichiers chm au format HTML à l'aide de l'outil de ligne de commande 7-Zip ( installez p7Zip-full ici ):

7z x file.chm
12
dv3500ea

Si vous ne voulez pas utiliser PDF, alors je vous suggérerais Epub, un format de livre électronique assez bon et ouvert, vous pouvez installer un bon lecteur appelé Calibre sur Ubuntu. Calibre dispose d'un utilitaire de conversion utile pouvez importer des fichiers chm puis les convertir en d’autres formats .epub inclus. Les epubs peuvent également être lus facilement sur la plupart des téléphones intelligents et des tablettes.

Calibre peut être installé à partir du centre logiciel.

3
Sabacon

Il y a aussi KChmViewer, si vous préférez KDE.

2
Asmerito

Il y a aussi xchm et quelques lecteurs chm sur Android .

1
elmicha

dv3500ea a un grand réponse chm2pdf , mais je préfère les lire sous forme de fichiers html.

En bref:

Sudo apt-get install libchm-bin
extract_chmLib myFile.chm outdir

Source: http://www.ubuntugeek.com/how-to-convert-chm-files-to-html-or-pdf-files.html

Ensuite, ouvrez ./outdir/index.html pour afficher les fichiers HTML convertis! Yaaay! Beaucoup mieux. Maintenant, je peux naviguer comme un fichier .chm, mais je peux aussi utiliser mon navigateur Chrome pour rechercher du texte dans les pages, l’imprimer facilement, etc.

Faisons une commande appelée chm2html

Voici un joli script que j'ai écrit.

  1. Copiez et collez le script ci-dessous dans un fichier chm2html.py
  2. Le rendre exécutable: chmod +x chm2html.py
  3. Créez un répertoire ~/bin si vous n'en avez pas déjà un: mkdir ~/bin
  4. Faites un lien symbolique vers chm2html.py dans votre répertoire ~/bin: ln -s ~/path/to/chm2html.py ~/bin/chm2html
  5. Déconnectez-vous d'Ubuntu, puis reconnectez-vous ou rechargez vos chemins avec source ~/.bashrc
  6. Utilise le! chm2html myFile.chm. Cela convertit automatiquement le fichier .chm et place les fichiers .html dans un nouveau dossier appelé ./myFile, puis crée un lien symbolique appelé ./myFile_index.html qui pointe sur ./myFile/index.html.

Fichier 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 __== "__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.")
0
Gabriel Staples

Vin est suffisant.

Puis: Ouvrez-le avec ce logiciel

enter image description here

0
Abdennour TOUMI