Существует ли Java API, который может создать богатые документы Word? [закрытый]

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

110
задан Sjoerd Pottuit 20 September 2018 в 17:39
поделиться

16 ответов

В 2007 мой проект успешно использовал OpenOffice.org Универсальные Сетевые объекты интерфейс (UNO), чтобы программно генерировать MSWord совместимые документы (*.doc), а также соответствующие документы в формате PDF, из веб-приложения Java (платформа Struts/JSP).

OpenOffice ООН также позволяет Вам создать СОВМЕСТИМЫЕ С MS OFFICE диаграммы, электронные таблицы, представления, и т.д. Мы смогли динамично создать сложные документы Word, включая диаграммы и таблицы.

Мы упростили процесс при помощи документов шаблона MS-Word с закладкой, вставляет, в который программное обеспечение вставило содержание, однако, можно создать документы полностью с нуля. Цель состояла в том, чтобы иметь программное обеспечение, генерируют отчетные документы, которые могли совместно использовать и далее настроить конечные пользователи прежде, чем преобразовать их в PDF для заключительной доставки и архивирования.

можно дополнительно представить документы в форматах OpenOffice, если Вы хотите, чтобы пользователи использовали OpenOffice вместо MS Office. В нашем случае пользователи хотят использовать инструменты MS-Office.

ООН включена в комплекте OpenOffice. Мы просто связали наше приложение Java со связанными с ООН библиотеками в комплекте. Комплект разработчика программного обеспечения OpenOffice (SDK) доступен содержащий примеры приложений и Руководство разработчика ООН.

я не занялся расследованиями, может ли последний OpenOffice ООН генерировать MS Office 2 007 Открытых форматов XML-документа.

важные вещи о OpenOffice ООН:

  1. Это - бесплатное программное обеспечение
  2. , Это поддерживает несколько языков (например, Visual Basic, Java, C++ и другие).
  3. Это платформенно независимо (Windows, Linux, Unix, и т.д.).

Вот некоторые полезные веб-сайты:

56
ответ дан Lucky 24 November 2019 в 03:16
поделиться

Еще одна возможность, так как это - веб-приложение.

я смог представить страницу HTML с набором типа MIME к "приложению/MSWord", которое заставило браузер порождать Word, который импортировал HTML очень хорошо, позволив редактирования и сохранив так же, как если бы я произвел реальный документ в формате Word.

Таблицы хорошо работают, но изображения я еще не получил работу. Это может быть столь же легко как просто тег в HTML, или мне, вероятно, придется передать отдельную часть потоком ответа, содержащего данные изображения в двоичном файле или некоторый другой метод, который я еще не придумал.:)

0
ответ дан billjamesdev 24 November 2019 в 03:16
поделиться

После немного большего количества исследования я столкнулся iText, PDF и API создания RTF-файла. Я думаю, что могу использовать поколение RTF для создания читаемого Документом файла, который может тогда быть отредактирован с помощью Doc и повторно сохранен.

у Кого-либо есть опыт с iText, используемым этим способом?

0
ответ дан billjamesdev 24 November 2019 в 03:16
поделиться

Я разработал базирующиеся файлы слова чистого XML в прошлом. Я использовал.NET, но язык не должен иметь значения, так как это - истинно XML. Это не была самая легкая вещь сделать (имел проект, который потребовал его пара несколько лет назад.) Они действительно только работают в Word 2007 или выше - но все, в чем Вы нуждаетесь, является отчетом Microsoft, которые описывают то, что делает каждый тег. Можно выполнить все, что Вы хотите с тегами тот же путь, как будто Вы использовали Word (конечно, немного более болезненный первоначально.)

1
ответ дан Peter Mortensen 24 November 2019 в 03:16
поделиться

Существует инструмент под названием JODConverter, который сцепляется в открытый офис для представления, это - преобразователи формата файла, существуют версии, доступные как веб-приложение (находится у кота), который Вы отправляете на и инструмент командной строки. Я запускал HTML в него и преобразовывал в .doc и PDF успешно, это находится в довольно большом проекте, еще не пошли живые, но я думаю, что собираюсь быть использованием его. http://sourceforge.net/projects/jodconverter/

2
ответ дан Andrew Hancox 24 November 2019 в 03:16
поделиться

Можно использовать Java мост COM как JACOB. Если бы это от стороны клиента, другая опция состояла бы в том, чтобы использовать JavaScript.

2
ответ дан Gulzar Nazim 24 November 2019 в 03:16
поделиться

Попробуйте Aspose. Слова для Java.

Aspose. Слова для Java являются усовершенствованной (коммерческой) библиотекой классов для Java, который позволяет Вам выполнить большой диапазон задач обработки документов непосредственно в рамках Ваших JAVA-приложений.

Aspose. Слова для Java поддерживают DOC, OOXML, RTF, HTML и форматы OpenDocument. С Aspose. Слова можно генерировать, изменить и преобразовать документы, не используя Microsoft Word.

3
ответ дан Seki 24 November 2019 в 03:16
поделиться

Я думаю , ПОИ Apache может сделать задание. Возможная проблема в зависимости от использования, Ваше стремление к может быть вызвано тем, что HWPF находится все еще в ранней разработке.

HWPF является набором API для чтения и записи Microsoft Word 97 (-XP) документы с помощью (только) Java.

30
ответ дан Jorge Ferreira 24 November 2019 в 03:16
поделиться

Я использовал Aspose. Слова , чтобы сделать слияние в.NET. Я полагаю, что у них также есть версия Java.

2
ответ дан tvanfosson 24 November 2019 в 03:16
поделиться

docx4j или пои, оба из которых являются ASL v2

@wondersofcomputing: iText на самом деле свободен и с открытым исходным кодом

1
ответ дан JasonPlutext 24 November 2019 в 03:16
поделиться

iText действительно прост в использовании.

Если вы запрашиваете документы, вы можете вызвать abiword (бесплатный текстовый процессор с поддержкой нескольких операционных систем) из команды В строке есть несколько опций конвертирования формата преобразования.

2
ответ дан 24 November 2019 в 03:16
поделиться

После небольшого исследования я наткнулся на iText, API для создания PDF и RTF-файлов. Я думаю, что могу использовать поколение RTF для создания файла, читаемого в Doc, который затем можно редактировать с помощью Doc и повторно сохранять.

Кто-нибудь имеет опыт работы с iText, используемым таким образом?

Билл, POI и API iText очень похожи с точки зрения программирования. Я работал с обоими в прошлом и нашел их простыми в использовании и хорошо документированными.

С iText вы получаете возможность переключаться между форматами (RTF и PDF) с небольшими изменениями в коде. Если я правильно помню, контент создается с использованием тех же вызовов, а затем устанавливается в формате PDF или RTF с использованием нескольких строк кода.

Однако я считаю, что форматирование в RTF ограничено по сравнению с DOC. Я не знаю, если вы Вы сможете реализовать расширенные функции, которые вы ищете (таблицы, встроенные изображения) без особых хлопот, если вообще.

Учитывая то, что вы сказали, что у HWPF недостаточно функциональности для ваших нужд (я имел дело только со стороной POI в Excel), ваша лучшая ставка может заключаться в том, чтобы убедить силы в том, что PDF - лучшая технология. за работу .

1
ответ дан 24 November 2019 в 03:16
поделиться

Попробуйте Aspose.Words для Java, он работает в любой ОС, где установлена ​​Java.

Он выводит документ в DOC, DOCX или RTF, если вам нужен выходной формат MS Word. Все они поддерживаются одинаково хорошо.

Используя этот API, вы можете создать документ с нуля, буквально из узлов и установить их свойства форматирования. Вы также можете использовать DocumentBuilder, который предоставляет методы более высокого уровня, такие как создание строки таблицы, вставка поля и т. Д. Или вы можете копировать / присоединять / перемещать части между существующим предварительно созданным документом, скажем, вы хотите собрать контракт, просто возьмите и скопируйте фрагменты из нескольких документов и Aspose.Words правильно объединят стили, форматирование списка и т. д. в итоговый документ.

Вы сможете вставить поле оглавления, используя Aspose.Words, но на сегодняшний день, поле TOC потребует обновления поля при открытии документа в Microsoft Word. Однако мы собираемся выпустить полную поддержку полей оглавления в начале 2010 г. Например, он будет создавать полное оглавление, как это делает MS Word.

Я в команде Aspose.Words.

4
ответ дан 24 November 2019 в 03:16
поделиться

Это упоминалось всего один раз, поэтому я хотел бы вызвать библиотеку docx4j, так как с docx4j я добился большего успеха, чем с чем-либо другим. Поддержка Apache POI документов Word не очень хороша. Кроме того, в отличие от Aspose.Words, docx4j является библиотекой с открытым исходным кодом.

Единственным недостатком является то, что с docx4j вы должны создавать документы формата Office Open XML (docx), а не документы формата OLE2 (doc). Это формат по умолчанию для Word 2007, но пользователям Word 2003 и более ранних версий потребуется установить пакет совместимости.

4
ответ дан 24 November 2019 в 03:16
поделиться

Несмотря на то, что это намного позже, чем запрос, это может помочь другим. Docmosis предоставляет Java API для создания документов в формате doc, pdf, odt, используя документы в качестве шаблонов. Он использует OpenOffice в качестве движка для выполнения преобразования форматов. Манипуляции с документами и их наполнение выполняются самим Docmosis.

0
ответ дан 24 November 2019 в 03:16
поделиться

Вы можете использовать это: http://code.google.com/p/java2word

Я реализовал этот API под названием Java2Word. с помощью нескольких строк кода вы можете сгенерировать один документ Microsoft Word.

Например:

IDocument myDoc = new Document2004();
myDoc.getBody().addEle(new Heading1("Heading01"));
myDoc.getBody().addEle(new Paragraph("This is a paragraph...")

Там есть несколько примеров использования. В основном вам понадобится один jar-файл. Дайте мне знать, если вам нужна дополнительная информация о том, как это настроить.

* Я написал это, потому что у нас была реальная необходимость в одном проекте. Больше в моем блоге:

http ://leonardo-pinho.blogspot.com/2010/07/java2word-word-document-generator-from.html *

ура Leonardo

Edit : Проект в ссылке перемещен на https://github.com/leonardoanalista/java2word

9
ответ дан 24 November 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: