Я работал с POI раньше, и он, безусловно, может сгенерировать документы Word. Но дьявол в деталях.
Word имеет тысячи функций: вы можете помещать нумерованные списки, начиная с № 13, с отрицательными отступами в две сочлененные ячейки таблицы, включенной в другую таблицу, которая сама является частью списка маркеров ... вы получаете эту идею. Когда в документации POI говорится, что они находятся в процессе разработки, это отражает то, что, вероятно, будет вечным состоянием в попытке догнать (для нас, недокументированную) спецификацию Word.
Документы с разумно «нормальным» набором используемых функций хорошо поддерживаются POI, интерфейсы и методы которого разумны и последовательны, но иногда требуют небольшой работы. Но, как говорит Паскаль, документы с не слишком непостоянным набором функций также поддерживаются RTF. У меня почти нет опыта «делать» RTF, но это, наверное, немного проще, чем работать с POI.
Если вы работаете в среде или для клиента, который настаивает на том, чтобы ваши подготовленные документы были .DOC
, а не .RTF
, тогда POI - это ваш единственный выбор, если вы не можете ввести шаг, в котором вы используете немного Office автоматизация для преобразования RTF в DOC.
Обновление: У меня было еще несколько идей за это время.
Использование POI или создание документов RTF - это то, что вы могли бы сделать практически на любой платформе. Например, на моей работе все серверы, выполняющие такую обработку, работают под управлением Linux.
Однако в вероятном случае, что ваши программы будут работать под Windows, есть еще одна альтернатива: Jacobhttp://www.land-of-kain.de/docs/jacob/
Джейкоб COM
интерфейс для Java; он по существу позволяет вам «дистанционно управлять» программами Windows, такими как Word и Excel. Документ, который я связал выше, не относится к собственному сайту Джейкоба, а к одной странице с рецептами куки-резака для использования Jacob. Сам проект находится на SourceForge: http://sourceforge.net/projects/jacob-project/ Но люди утверждают, и это правильно, что документации немного не хватает.
У Джейкоба есть преимущество перед всеми другими решениями, которые вы имеете дело с «настоящим» Словом, и поэтому все возможности доступны для Word. Это было бы альтернативой, если бы были детализированные аспекты вашего документа, которые просто невозможно обработать с помощью POI или через формат RTF.
Проверьте здесь: http://stackoverflow.com/questions/203174/whats-a-good-java-api-for-creating-word-documents – JCasso