martes, 16 de abril de 2013

Lectura de ficheros con formato CHM en Linux

He tenido la necesidad de leer un fichero chm (ficheros de ayuda HTML compilados de Microsoft), que presentan siempre ciertas dificultades. Evince no los lee, y okular suele montar los párrafos entre si, con lo que se hace muy incómodo, aparte de que descoloca las tablas. Lo mejor, por supuesto, es disponer de un fichero con formato abierto, pero no siempre es posible y a veces los datos que necesitamos para hacer funcionar una máquina o un algoritmo está en ficheros chm. Buscando ayuda de nuestro gran amigo Internet, en esta página de linux.com dan varias aplicaciones que podemos utilizar. Me he centrado en dos:
1. KchmViewer - como la k indica, utiliza librerías qt y está integrada en el escritorio kde. Como tengo las librerías -uso k3b a veces- lo he probado.
2. ChmSee - a pesar de los defectos que señalan en la página de linux.com, realmente esta es una versión muy evolucionada y funciona muy bien.

Cualquiera de los dos han cubierto mis necesidades perfectamente y tienen una apariencia similar, con la apariencia de aplicaciones de KDE en kchmviewer y la visión más espartana de gnome en el otro.


Realmente, la razón para elegir es más el escritorio que estemos utilizando que otras características, ya que las dos funcionan adecuadamente. A vuestro gusto. Me ha faltado por probar GnoCHM, pero ya había cubierto mis necesidades.

3 comentarios:

  1. Hola.
    Puedes convertirlos de CHM a PDF con chm2pdf. Sólo necesitas instalar 3 dependencias:

    yum install chmlib python-chm htmldoc

    Y luego descargarte e instalar la aplicación (escrita en Python):

    http://code.google.com/p/chm2pdf/

    Descomprimes el tar.gz, entras en el directorio resultante y ejecutas como root:

    python setup.py install

    Un saludo!

    ResponderEliminar
  2. Interesante pero no me ha resultado útil.
    En primer lugar, es aun más fácil la instalación, ya que está en los repositorios de Fedora (la versión más actualizada, 0.91). Simplemente

    su -c 'yum install chm2pdf

    y ya está. Sin embargo, después de leer las instrucciones

    chm2pdf --help | less

    y añadir las opciones imprescindibles, me ha dado un montón de fallos, así que me quedo con los visores.

    ResponderEliminar
    Respuestas
    1. Que conste que en parte se deba a errores del fichero y este script puede ser útil para otros ficheros "mejor" configurados. Los errores fueron, por si le sirven a alguien:

      File "/usr/bin/chm2pdf", line 1098, in main(sys.argv)
      File "/usr/bin/chm2pdf", line 1092, in main convert_to_pdf(cfile, filename, outputfilename, options)
      File "/usr/bin/chm2pdf", line 386, in convert_to_pdf correct_file(page_filename, htmlout_filename, html_list, objective_urls, options)
      File "/usr/bin/chm2pdf", line 142, in correct_file image_catcher.feed(page)
      File "/usr/lib64/python2.7/sgmllib.py", line 104, in feed self.goahead(0)
      File "/usr/lib64/python2.7/sgmllib.py", line 174, in goahead k = self.parse_declaration(i)
      File "/usr/lib64/python2.7/markupbase.py", line 140, in parse_declaration "unexpected %r char in declaration" % rawdata[j])
      File "/usr/lib64/python2.7/sgmllib.py", line 111, in error raise SGMLParseError(message) sgmllib.SGMLParseError: unexpected '\x97' char in declaration

      Eliminar