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

Как создать файл odt программно с помощью java?

Как я могу создать файл odt (LibreOffice/OpenOffice Writer) с программным обеспечением Java? Будет достаточно "привет мир". Я посмотрел сайт OpenOffice, но документация была неясно.

4b9b3361

Ответ 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.