Làm thế nào để mở và chuyển đổi tài liệu CHM?


9

Tôi có một số tài liệu ở .chmđịnh dạng. Tôi tự hỏi nếu có một định dạng tệp có thể dễ dàng điều hướng, hỗ trợ và có kích thước tệp bằng nhau trong Ubuntu?

Nếu có, tôi muốn bắt đầu chuyển đổi tất cả những cuốn sách đó và có thể sử dụng chúng với ít rắc rối hơn trên tất cả các máy tính Ubuntu và điện thoại Android của tôi.


Câu trả lời:


13

Bạn có thể chuyển đổi chúng thành PDF bằng chương trình dòng lệnh chm2pdf ( cài đặt chm2pdf tại đây ). Sau khi cài đặt, bạn có thể chạy lệnh từ thiết bị đầu cuối như thế này:

chm2pdf --book in.chm out.pdf

Trong trường hợp bạn không biết, có một số trình đọc chm có sẵn - chỉ cần tìm kiếm chmtrong Trung tâm phần mềm.

Bạn cũng có thể trích xuất các tệp chm thành html bằng công cụ dòng lệnh 7-Zip ( cài đặt p7zip-full tại đây ):

7z x file.chm

Chuyển đổi Pdf không phải là một giải pháp tôi đang tìm kiếm. Tuy nhiên, cảm ơn bạn đã trả lời nhanh chóng. Thêm ý tưởng?
Julio

3

Nếu bạn không muốn sử dụng PDF thì tôi sẽ đề xuất Epub, một định dạng sách điện tử mở khá tốt, bạn có thể cài đặt một trình đọc tốt cho nó có tên Calibre trên Ubuntu, Calibre có một công cụ chuyển đổi hữu ích có thể nhập tệp chm và sau đó chuyển đổi chúng sang định dạng khác epub bao gồm. epub có thể dễ dàng đọc trên hầu hết các điện thoại thông minh và máy tính bảng.

Calibre có thể được cài đặt từ trung tâm phần mềm.


2

Ngoài ra còn có KChmViewer, nếu bạn thích KDE.


KChmViewer là Ok. nhưng tôi thích addon firefox [CHM Reader]. Không phải là một giải pháp tốt cho vấn đề của tôi, vì tôi muốn thoát khỏi những tập tin chm tệ hại đó, tôi đã có một định dạng được hỗ trợ tốt hơn. Pdf cũng không tốt. Lựa chọn?
Julio



0

dv3500ea có một câu trả lời chm2pdf tuyệt vời , nhưng tôi thích đọc chúng dưới dạng tệp html.

Nói ngắn gọn:

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

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

Sau đó mở ra ./outdir/index.htmlđể xem các tập tin html được chuyển đổi! Yaaay! Tốt hơn nhiều. Bây giờ tôi có thể điều hướng nó giống như một tệp .chm, nhưng tôi cũng có thể sử dụng trình duyệt Chrome của mình để tìm kiếm các trang cho văn bản, dễ dàng in, v.v.

Hãy thực hiện một lệnh được gọi là chm2html

Đây là một kịch bản hay tôi đã viết.

  1. Sao chép và dán đoạn script dưới đây vào một tập tin chm2html.py
  2. Làm cho nó thực thi: chmod +x chm2html.py
  3. Tạo một ~/binthư mục nếu bạn chưa có:mkdir ~/bin
  4. Tạo một liên kết tượng trưng đến chm2html.py trong ~/binthư mục của bạn :ln -s ~/path/to/chm2html.py ~/bin/chm2html
  5. Đăng xuất khỏi Ubuntu sau đó đăng nhập lại hoặc tải lại đường dẫn của bạn với source ~/.bashrc
  6. Sử dụng nó! chm2html myFile.chm. Điều này sẽ tự động chuyển đổi tệp .chm và đặt các tệp .html vào một thư mục mới được gọi ./myFile, sau đó nó tạo ra một liên kết tượng trưng được gọi là ./myFile_index.htmltrỏ tới ./myFile/index.html.

chm2html.py tập tin:

#!/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.")
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.