Как я могу создать файл odt (LibreOffice/OpenOffice Writer) с программным обеспечением Java? Будет достаточно "привет мир". Я посмотрел сайт OpenOffice, но документация была неясно.
Как создать файл odt программно с помощью java?
Ответ 1
Взгляните на ODFDOM - API OpenDocument
ODFDOM - это бесплатный формат OpenDocument (ODF). Его цель - обеспечивают простой общий способ создания, доступ и управление файлами ODF, не требуя подробных знаний спецификации ODF. это предназначен для обеспечения разработчика ODF сообщество с легким легким рисунком программирование API, переносимое на любой объектно-ориентированный язык.
Текущая эталонная реализация написан на Java.
// Create a text document from a standard template (empty documents within the JAR)
OdfTextDocument odt = OdfTextDocument.newTextDocument();
// Append text to the end of the document.
odt.addText("This is my very first ODF test");
// Save document
odt.save("MyFilename.odt");
позже
На момент написания статьи (2016-02) нам сказали, что эти классы устарели... большое время, а документация API OdfTextDocument
сообщает вам:
Начиная с выпуска 0.8.8, заменяется на org.odftoolkit.simple.TextDocument в Простой API.
Это означает, что вы по-прежнему включаете в проект один и тот же активный .jar файл, simple-odf-0.8.1-incubating-jar-with-dependencies.jar
, но вы хотите распаковать следующий .jar, чтобы получить документацию: simple-odf-0.8.1-incubating-javadoc.jar
, а не odfdom-java-0.8.10-incubating-javadoc.jar
.
Кстати, ссылка на документацию загружает кучу файлов jar внутри .zip, который говорит "0.6.1"... но большая часть содержимого внутри, похоже, больше похожа на 0.8.1. Я понятия не имею, почему они говорят "с 0.8.8" в документации для "устаревших" классов: почти все уже отмечено устаревшим.
Соответствующий простой код выше:
odt_doc = org.odftoolkit.simple.TextDocument.newTextDocument()
para = odt_doc.getParagraphByIndex( 0, False )
para.appendTextContent( 'stuff and nonsense' )
odt_doc.save( 'mySpankingNewFile.odt' )
PS использую Jython, но Java должен быть очевиден.
Ответ 2
Я не пробовал, но с помощью JOpenDocument может быть вариант. (Кажется, это чистая библиотека Java для создания файлов OpenDocument.)
Ответ 3
Дополнение к ранее предоставленным решениям было бы JODReports, что позволяет создавать офисные документы и отчеты в формате ODT (из шаблонов, составленных с использованием текстовый процессор LibreOffice/OpenOffice.org Writer).
DocumentTemplateFactory templateFactory = new DocumentTemplateFactory();
DocumentTemplate template = templateFactory .getTemplate(new File("template.odt"));
Map data = new HashMap();
data.put("title", "Title of my doc");
data.put("picture", new RenderedImageSource(ImageIO.read(new File("/tmp/lena.png"))));
data.put("answer", "42");
//...
template.createDocument(data, new FileOutputStream("output.odt"));
При необходимости документы могут быть преобразованы в PDF, Word, RTF и т.д. с JODConverter.
Редактировать/обновить
Здесь вы можете найти пример проекта с использованием JODReports (с нетривиальными форматированием).
Ответ 4
Я написал jruby DSL для программного управления документами ODF.
https://github.com/noah/ocelot
Это не строго java, но он намного проще в использовании, чем ODFDOM.
Создание документа hello world так же просто, как:
% cat examples/hello.rb
include OCELOT
Text::create "hello" do
paragraph "Hello, world!"
end
Есть еще несколько примеров (включая пример таблицы или два) здесь.
Ответ 5
Я искал ответ на этот вопрос для себя. Я работаю над проектом для создания документов с различными форматами, и мне было плохо в библиотеке для создания файлов ODT. Наконец, я могу сказать, что ODFToolkit с последней версией библиотеки simple-odf является ответом на создание текстовых документов. Вы можете найти официальную страницу здесь: Apache ODF Toolkit (Incubating) - простой API Вот страница для загрузки версии 0.8.1 (последняя версия Simple API), поскольку я не нашел последнюю версию на официальной странице, только версия 0.6.1
И здесь вы можете найти Apache ODF Toolkit (incubating) cookbook
Ответ 6
Вы можете использовать JasperReports для создания своих отчетов, затем экспортировать его в ODS. Самое приятное в этом подходе -
- вы получаете широкую поддержку всех выходных форматов JasperReports, например. PDF, XLS, HTML и т.д.
- Jasper Studio позволяет легко создавать отчеты
Ответ 7
Решением может быть компания JODF Java API Independentsoft. Например, если мы хотим создать файл Open Document, используя этот Java API, мы можем сделать следующее:
import com.independentsoft.office.odf.Paragraph;
import com.independentsoft.office.odf.TextDocument;
public class Example {
public static void main(String[] args)
{
try
{
TextDocument doc = new TextDocument();
Paragraph p1 = new Paragraph();
p1.add("Hello World");
doc.getBody().add(p1);
doc.save("c:\\test\\output.odt", true);
}
catch (Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}
Существуют также .NET-решения для этого API.