Подтвердить что ты не робот

Конвертировать Word doc в HTML программно в Java

Мне нужно преобразовать документ Word в HTML файл в Java. Функция примет входной документ слова, и вывод будет html файлом (-ами) на основе количества страниц, которые имеет документ слова, т.е. если документ слова имеет 3 страницы, тогда будет создано 3 html файла с требуемым разрывом страницы.

Я искал API с открытым исходным кодом/некоммерческие API, которые могут конвертировать doc в html, но без результата. Любой, кто сделал этот вид работы, прежде чем помогать, помогите.

Спасибо

4b9b3361

Ответ 2

Я рекомендую JODConverter, он использует OpenOffice.org, который обеспечивает, пожалуй, лучшие фильтры импорта/экспорта для форматов OpenDocument и Microsoft Office доступный сегодня.

JODConverter имеет много документов, скриптов и руководств, которые помогут вам.

Ответ 3

Я успешно использовал следующий подход в производственных системах, где новый формат XML MS Word недоступен:

Создайте процесс, который сделает что-то похожее на:

http://www.oooninja.com/2008/02/batch-command-line-file-conversion-with.html

Вероятно, вы захотите запустить openoffice один раз при запуске своей программы и вызвать python script столько раз в течение своей программы, в которой вы нуждаетесь (с некоторой проверкой, чтобы гарантировать, что ooffice-процесс всегда есть).

Другой вариант - вызывать следующую команду каждый раз, когда вам нужно выполнить преобразование:

ooffice -headless "macro://< путь к макросу ooffice vb для преобразования, с параметром, указывающим на файл > "

Я многократно использовал макро-подход, и он работает хорошо (извините, у меня нет доступного макрокода).

Несмотря на то, что есть механизмы для этого через MS Word, им нелегко от Java, и им нужны другие программы поддержки для управления MS Word через OLE.

Я тоже использовал abiword, что хорошо работает для многих документов, но запутывается с более сложными документами (ooffice, похоже, обрабатывает все, что я на него набросал). Abiword имеет немного более простой интерфейс командной строки для преобразования, чем ooffice.

Ответ 4

Это проще сделать в новом MS word docx, поскольку формат находится в XML. Вы можете использовать XSL для преобразования документа Word в формате XML в формат HTML.

Если ваш документ Word находится в старой версии, вы можете использовать библиотеку POI http://poi.apache.org/, а затем получить доступ к этому и сгенерировать объект Java, и с этой точки вы можете легко преобразовать его в формат HTML с помощью HTML java библиотека

http://www.dom4j.org/dom4j-1.4/apidocs/org/dom4j/io/HTMLWriter.html

Ответ 5

Если это docx, вы можете использовать docx4j (ASL v2). Это использует XSLT для создания HTML.

Однако он даст вам один HTML для всего документа.

Если вам нужен HTML на странице, вы можете что-то сделать с тегом lastRenderedPageBreak, который Word помещает в docx (при условии, что вы использовали Word для его создания).

Ответ 6

Я вижу, что этот поток появляется во внешних ссылках и имеет случайную запись, поэтому я думал, что опубликую обновление (надеюсь, никто не возражает). OpenOffice продолжает развиваться, и выпуск 3.2 снова улучшает фильтры импорта импорта слов. OpenOffice и Java могут работать на многих платформах, поэтому Java-системы могут использовать API OpenOffice UNO напрямую для импорта/обработки/экспорта документов во многих форматах (включая слово и pdf) или использовать библиотеку, например JODReports или Docmosis для облегчения. У обоих есть свободные/открытые варианты.

Ответ 7

Я пробовал этот путь и его работу со мной с этого сайта http://code.google.com/p/xdocreport/wiki/XWPFConverterXHTML

Это работает только с docx, чтобы преобразовать его в html, включая изображения внутри этого документа.

    // 1) Load DOCX into XWPFDocument
    InputStream doc = new FileInputStream(new File("c:/document.docx"));
    XWPFDocument document = new XWPFDocument(doc);

   // 2) Prepare XHTML options (here we set the IURIResolver to load images from a "word/media" folder)
            XHTMLOptions options = XHTMLOptions.create(); //.URIResolver(new FileURIResolver(new File("word/media")));;

            // 3) Extract image
            String root = "target";
            File imageFolder = new File( root + "/images/" + doc );
            options.setExtractor( new FileImageExtractor( imageFolder ) );
            // 4) URI resolver
            options.URIResolver( new FileURIResolver( imageFolder ) );


            OutputStream out = new FileOutputStream(new File("c:/document.html"));
            XHTMLConverter.getInstance().convert(document, out, options);

Я надеюсь, что это решит вашу проблему.

Ответ 8

Вам нужно будет найти спецификацию MS word doc (поскольку она в основном представляет собой двоичный дамп любого слова в данный момент времени) и медленно проходит через элемент по элементу, преобразуя ms word "objects/states" к html equiv. вы можете найти script, чтобы сделать это для u, поскольку это действительно не забавная работа, и я бы посоветовал вам (конвертирование форматов файлов или даже чтение из коммерческих файлов по своему усмотрению всегда сложно и часто неполно), PS: просто google doc2html

Ответ 9

Если вы нацеливаете файлы Word 2007 с использованием формата ooxml, это может помочь article. И есть проект Ooxml4j, который реализует ooxml для библиотеки Java.

Если вы нацеливаете двоичные файлы, хотя... это еще одна проблема.

Ответ 10

import officetools.OfficeFile; // package available at www.dancrintea.ro/doc-to-pdf/
...
FileInputStream fis = new FileInputStream(new File("test.doc"));
FileOutputStream fos = new FileOutputStream(new File("test.html"));
OfficeFile f = new OfficeFile(fis,"localhost","8100", true);
f.convert(fos,"html");

Все возможные преобразования:

doc → pdf, html, txt, rtf

xls → pdf, html, csv

ppt → pdf, swf

html → pdf

Ответ 11

Вы можете использовать офис Micrsoft онлайн

во-первых, на стороне сервера запрос https://view.officeapps.live.com/op/view.aspx?src= 'URL-адрес вашего файла документации'

затем используйте jsoup для анализа результата HTML

когда доступ с мобильного телефона HTML будет иметь рамку.