2012-05-02 42 views
6

Tôi có ý tưởng chuyển đổi tệp tài liệu Word (.doc/.docx) sang định dạng tệp Trợ giúp (.chm). Tôi muốn sử dụng Java để chuyển đổi các tập tin. Công thức của tôi rất đơn giản. Để làm cho trang Mục lục và các liên kết khác trong tài liệu word, như trình thám hiểm gói hoặc Trình thám hiểm tệp và làm cho việc điều hướng người dùng đơn giản hơn, nhanh hơn và dễ dàng điều hướng giữa các trang trong tài liệu.Java - Chuyển đổi tệp doc/docx sang tệp chm

Vì vậy, câu hỏi của tôi là:

Có bất kỳ thư viện bản địa trong java có thể được nhập khẩu và sử dụng cho chuyển đổi File?

Hãy chia sẻ ý tưởng của bạn để triển khai khái niệm ở trên.

+2

Nghe có vẻ như là một ý tưởng hay nhưng cực kỳ khó trong thực tế. Chuyển đổi DOC sang bất cứ thứ gì là khá khó, DOCX ít hơn nhưng vẫn là một công việc lớn. Vì bạn đang làm việc trong lĩnh vực Java, bạn có thể muốn tìm một định dạng trợ giúp hoạt động trên tất cả các nền tảng (chm chỉ dành cho Windows). –

+1

@jowierun vâng, tôi biết chm chỉ dành cho cửa sổ .. –

+2

Apache POi có [hỗ trợ đọc và ghi tệp doc] (https://poi.apache.org/hwpf/index.html). – oers

Trả lời

6

Nhiệm vụ khá khó khăn của nó được thực hiện trong Java. Nhưng bạn vẫn có thể làm điều đó nếu bạn cài đặt Microsoft HTML Help Workshop.

  1. Trước tiên, bạn có thể trích xuất văn bản của tài liệu Word qua Apache POI rồi xuất chúng dưới dạng tài liệu HTML vào thư mục tạm thời.
  2. Tiếp theo, bạn cần phải tạo tệp HHP. Nó sẽ khá dễ dàng để tạo ra vì nó là một tập tin văn bản. Chỉ cần thực hiện theo các thông số kỹ thuật được cung cấp here
  3. Sau đó, bạn cũng cần có một tệp HHC tương ứng. Tài liệu HTML đơn giản của nó theo định dạng sau:

    <html> 
    <head> 
    </head> 
    <body> 
    <ul> 
    <li><object type="text/sitemap"> 
    <param name="Name" value="Foo Directory"> 
    <param name="Local" value="BarDirectory/index.htm"> 
    <param name="ImageNumber" value="1"> 
    </object></li> 
    <ul> 
    <li><object type="text/sitemap"> 
    <param name="Name" value="Topic1"> 
    <param name="Local" value="BarDirectory/Bar.htm"> 
    <param name="ImageNumber" value="11"> 
    </object></li> 
    <li><object type="text/sitemap"> 
    <param name="Name" value="Topic1"> 
    <param name="Local" value="BarDirectory/Foo.htm"> 
    <param name="ImageNumber" value="11"> 
    </object></li> 
    </ul> 
    </ul> 
    </body> 
    </html> 
    

    Tương tự, tìm cấu trúc cho tệp HHK.

  4. Khi bạn đã hoàn tất, bạn có thể thực thi hhc.exe <inputfile.hhp> từ Java. Điều đó nên thực hiện công việc.
+0

@Avadhani Vâng tôi hiểu.Nhưng việc sử dụng trình biên dịch trợ giúp HTML có vẻ là cách duy nhất có thể để có được tệp CHM cuối cùng vì CHM là định dạng thuần túy của Windows. –

+0

@Sakha Ok nhưng hãy để chúng tôi xem giải pháp tốt nhất .... –

0

Không phải là tôi biết hoặc tôi có thể tìm thấy. Nhưng thay vào đó, những gì về việc làm một chương trình java mà làm mọi thứ cho bạn, thao tác phần mềm cần thiết mà bạn sẽ sử dụng nếu bạn đã làm điều đó bằng tay? chỉ cần gửi các lệnh và có nó làm điều đó cho bạn. Tôi sẽ cung cấp một số mã, nhưng tôi đã không làm điều này trong java.

Một cách khác là làm điều đó trong VBScript, gọi một số lớp Java để chạy, và sử dụng VBScript để gửi tổ hợp phím đến chương trình. Chỉ có nhược điểm là phương pháp này không thể chạy trong nền và không thể sử dụng máy tính của bạn cho đến khi nó kết thúc.

Các vấn đề liên quan