Como abrir e converter documentos CHM?

8

Eu tenho alguns documentos que estão em um formato .chm . Gostaria de saber se existe um formato de arquivo que pode ser mais fácil de navegar, suportado e de tamanho de arquivo igual no Ubuntu?

Se houver, gostaria de começar a converter todos esses livros e, provavelmente, usá-los com menos problemas em todos os meus PCs Ubuntu e meu telefone Android.

    
por Julio 26.02.2011 / 08:30

6 respostas

11

Você pode convertê-los para PDF usando o programa de linha de comando chm2pdf (install chm2pdf aqui ). Uma vez instalado, você pode executar o comando de um terminal como este:

chm2pdf --book in.chm out.pdf

Caso você não saiba, existem vários leitores de chm disponíveis - basta pesquisar chm no Centro de Software.

Você também pode extrair arquivos chm para html usando a ferramenta de linha de comando 7-Zip (install p7zip-full aqui ):

7z x file.chm
    
por dv3500ea 26.02.2011 / 08:58
3

Se você não quiser usar PDF, então eu sugiro o Epub, um formato de e-book bastante bom e aberto, você pode instalar um bom leitor para ele chamado Calibre no Ubuntu, o Caliber tem um recurso de conversão útil que pode importar arquivos chm e então convertê-los para outros formatos de epub incluídos. epubs podem ser facilmente lidos na maioria dos smartphones e tablets.

O Caliber pode ser instalado a partir do centro de software.

    
por Sabacon 27.02.2011 / 15:44
1

Há também xchm e alguns leitores chm no Android .

    
por elmicha 08.05.2011 / 00:23
1

Existe também o KChmViewer, se você preferir o KDE.

    
por Asmerito 26.02.2011 / 10:05
0

Vinho é suficiente.

Então: abra-o usando este soft

    
por Abdennour TOUMI 02.07.2014 / 12:48
0

O dv3500ea tem uma ótima resposta chm2pdf , mas eu prefiro lê-los como arquivos html.

Resumindo:

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

Fonte: link

Em seguida, abra ./outdir/index.html para visualizar os arquivos html convertidos! Yaaay! Muito melhor. Agora posso navegar como um arquivo .chm, mas também posso usar meu navegador Chrome para pesquisar texto nas páginas, imprimir com facilidade, etc.

Vamos fazer um comando chamado chm2html

Aqui está um bom script que eu escrevi.

  1. Copie e cole o script abaixo em um arquivo chm2html.py
  2. Torne-o executável: chmod +x chm2html.py
  3. Crie um diretório ~/bin se você ainda não tiver um: mkdir ~/bin
  4. Crie um link simbólico para chm2html.py no diretório ~/bin : ln -s ~/path/to/chm2html.py ~/bin/chm2html
  5. Efetue logout do Ubuntu, em seguida, faça login novamente ou recarregue seus caminhos com source ~/.bashrc
  6. Use isso! %código%. Isso converte automaticamente o arquivo .chm e coloca os arquivos .html em uma nova pasta chamada chm2html myFile.chm , então cria um link simbólico chamado ./myFile que aponta para ./myFile_index.html .

./myFile/index.html file:

#!/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.")
    
por Gabriel Staples 02.04.2018 / 22:34

Tags