2013-02-21 2 views

ответ

18

Раскрытие: Я веду проект docx4j

Хотя docx4j также может обрабатывать PPTX и XLSX, он в основном используется для манипуляций DOCX. В качестве иллюстрации, как на момент написания статьи, в docx4j forum имеется около 1000 тем. Форум pptx имеет только 10% объема.

Независимо от того, что вы хотите сделать с документом docx, docx4j должен быть в состоянии вам помочь. Существует single page overview общего рабочего процесса.

Для многих распространенных требований docx4j предоставляет API более высокого уровня. К ним относятся:

  • Создать/открыть/сохранить DOCX (конечно)

  • Генерация отчетов/документов, с использованием различных подходов: (I) Переменная замещения, (II) данных XML связывания (особенно сильно), и (III) MailMerge

  • Экспорт в HTML, XHTML

  • Экспорт в PDF (с поддержкой шрифта)

Для чего-либо еще вы можете манипулировать представлением JAXB от docx до содержимого вашего сердца. JAXB является стандартом сообщества Java, включенным в Java 6, и с сильной альтернативной реализацией в MOXy EclipseLink. (POI использует XML-компоненты вместо JAXB)

Существует web app, чтобы помочь вам изучить docx и сгенерировать Java-код для создания соответствующих объектов Java.

Конечно, если есть определенная задача, которую вы имеете в виду, может быть, что у docx4j или POI есть определенная сила там.

Как docx4j, так и POI являются лицензированными ASL v2.

docx4j активно поддерживается; его исходный код: on GitHub.

Кроме того, коммерческая поддержка доступна для docx4j, если вы хотите, а также несколько коммерческих расширений, например MergeDocx.

docx4j полагается на POI как библиотеку для its implementation формата OLE 2 Compound Document, за что мы благодарны.

+0

Вся обработка поступает из XML-синтаксического анализа вправо? Могу ли я, например, интерактивно использовать текстовый документ через docx4j. например, если я хочу найти определенный текст и выбрать результат точно так, как это делает окно поиска? – becks

+1

XML не привязан к объектам JAXB; тогда обработка обычно выполняется на этом уровне. docx4j - это библиотека. Чтобы использовать его в интерактивном режиме, вам нужно создать интерактивное приложение. docx4all является примером интерактивного приложения (wordprocessor) на основе docx4j. С docx4j вы можете искать текст и делать результаты с результатами. – JasonPlutext

+0

Поддерживает ли docx4j поддержку таблиц в файлах docx? Я просто попытался, например, создать файл docx для заказа на поставку и преобразовать его в pdf, и таблица была сильно отформатирована. Я использовал образец webapp на веб-сайте docx4j по адресу: http://webapp.docx4java.org/OnlineDemo/docx_to_pdf_fop.html –

2

Я думаю, что основное внимание Apache POI сосредоточено на работе с электронными таблицами, хотя у меня есть функции для чтения текстовых документов, и для этого используется xml beans. Docx4j в основном занимается документами docx с использованием jaxb. Обычно jaxb позволяет преобразовать объект java в java, поэтому я думаю, что docx4j будет предпочтительнее для вашего дела.

2

Я пробовал Apache POI, но проблема заключается в печати чего-либо из файла docx (например: для печати всех элементов «Heading1» из docx), он печатает множество плохих данных и пробелов.Docx4j избежит этих плохих данных, я попробовал.

2

Если вы имеете дело с документом docx, docx4j более удобен, чем POI Apache. Вы можете использовать следующие ссылки для изучения основ docx4j. Кроме того, есть хороший форум docx4j.

1. http://blog.iprofs.nl/2012/09/06/creating-word-documents-with-docx4j/ 2. http://www.smartjava.org/content/create-complex-word-docx-documents-programatically-docx4j?

0

Я не использовал docx4j, и я намерен попробовать его. Poi может обрабатывать только стандартные документы openxml. Файл Microsoft docx не поддерживает полностью формат openxml. Так много форматов может потерять использование poi. Docx4j утверждает, что он предназначен для поддержки 100% форматов файла docx. Я думаю, что это будет работать лучше.

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

  • Нет связанных вопросов^_^