2012-05-02 2 views
6

У меня есть идея конвертировать файлы документа Word (.doc/.docx) в файл файла справки (.chm). Я хочу использовать Java для преобразования файлов. Моя формула проста. Чтобы страница Оглавления и другие ссылки в текстовом документе, в качестве проводника пакетов или Проводника Файлов, и сделать навигацию пользователя проще, быстрее и удобнее перемещаться между страницами документа.Java - преобразовать файл doc/docx в файл chm

Итак, мой вопрос:

Есть ли родные библиотеки Java, которые могут быть импортированы и использованы для преобразования файлов?

Пожалуйста, поделитесь своими идеями, чтобы реализовать вышеуказанную концепцию.

+2

Это звучит неплохо, но чрезвычайно сложно на практике. Преобразование DOC во что-либо довольно сложно, DOCX меньше, но все же большая работа. Поскольку вы работаете в сфере Java, вам может понадобиться найти формат справки, который работает на всех платформах (chm только для Windows). –

+1

@jowierun да, я знаю, chm предназначен только для окон. –

+2

Apache POi имеет [поддержку для чтения и записи файлов doc] (https://poi.apache.org/hwpf/index.html). – oers

ответ

6

Его довольно сложная задача, выполняемая на Java. Но вы все равно можете это сделать, если вы установите мастер справки Microsoft HTML.

  1. Сначала вы можете извлечь текст документов Word через Apache POI, а затем вывести их в виде HTML-документов во временный каталог.
  2. Далее вам нужно создать файл HHP. Его нужно довольно легко создать, так как это текстовый файл. Просто следуйте приведенным спецификациям. here
  3. Тогда у вас также должен быть соответствующий файл HHC. Его простой HTML-документ в следующем формате:

    <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> 
    

    Аналогичным образом найдите структуру файла HHK.

  4. Как только вы закончите, вы можете выполнить hhc.exe <inputfile.hhp> с Java. Это должно выполнить эту работу.
+0

@Avadhani Да, я понимаю.Но использование HTML-компилятора справки, по-видимому, является единственным способом получить окончательный файл CHM, потому что CHM является чистым проприетарным форматом Windows. –

+0

@Sakha Хорошо, но давайте посмотрим на лучшее решение .... –

0

Не знаю, что я знаю или что могу найти. Но вместо этого, как насчет создания java-программы, которая сделает все для вас, манипулируя необходимым программным обеспечением, которое вы будете использовать, если бы вы сделали это вручную? просто отправляя команды и делайте это для вас. Я бы предоставил некоторый код, но я не сделал этого в java.

Альтернативой было бы сделать это в VBscript, вызывая определенные классы java для запуска и используя VBScript для отправки нажатий клавиш программам. Единственным недостатком этого метода было бы то, что вы не могли бы запустить его в фоновом режиме , и не мог использовать ваш компьютер до его завершения.

Смежные вопросы