如何使用java以编程方式创建odt文件?
如何使用 Java 以编程方式创建 odt (LibreOffice/OpenOffice Writer) 文件?一个“hello world”的例子就足够了。我查看了 OpenOffice 网站,但文档不清楚。
How can I create an odt (LibreOffice/OpenOffice Writer) file with Java programmatically? A "hello world" example will be sufficient. I looked at the OpenOffice website but the documentation wasn't clear.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(8)
我还没有尝试过,但使用 JOpenDocument 可能是一个选择。 (它似乎是一个纯Java库,用于生成OpenDocument文件。)
先前给出的解决方案的补充是 JODReports,它允许以 ODT 格式创建 Office 文档和报告(从模板,使用 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"));
或者,可以使用 JODConverter 将文档转换为 PDF、Word、RTF 等。
编辑/更新
在 GitHub 上, ansgarkonermann/jodreports-examples 是一个使用 JODReports 的示例项目(不包含- 简单的格式化案例)。
ODF Toolkit 项目(代码托管于 Github) 是前 ODFDOM 项目的新家,直到 2018 年 11 月 27 日为止 Apache 孵化器项目。
我一直在为自己寻找这个问题的答案。我正在开发一个用于生成不同格式文档的项目,并且我非常需要库来生成 ODT 文件。
我终于可以说,带有最新版本 simple-odf 库的 ODFToolkit 是生成文本文档的答案。
您可以在这里找到官方页面:
Apache ODF 工具包(孵化)- 简单 API
这是 一个页面下载0.8.1版本(Simple API的最新版本),因为我在官方页面没有找到最新版本,只有0.6.1版本
,在这里你可以找到Apache ODF 工具包(孵化)食谱
解决方案可能是 JODF Java API Independentsoft 公司。
例如,如果我们想要使用此 Java API 创建一个 Open Document 文件,我们可以执行以下操作:
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();
}
}
}
该 API 也有 .NET 解决方案。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
查看ODFDOM - OpenDocument API
稍后
截至撰写本文时(2016 年 2 月),我们被告知这些类已被弃用......很大的时间,以及
OdfTextDocument
API文档告诉你:这意味着您的项目中仍然包含相同的活动 .jar 文件,
simple-odf-0.8.1-incubating-jar-with-dependency.jar
,但您希望解压以下 .jar获取文档:simple-odf-0.8.1-incubating-javadoc.jar
,而不是odfdom-java-0.8.10-incubating-javadoc.jar
。顺便说一句,文档链接下载了 .zip 中的一堆 jar 文件,其中显示“0.6.1”...但里面的大部分内容似乎更像 0.8.1。我不知道为什么他们在“已弃用”类的文档中说“自 0.8.8 起”:几乎所有内容都已标记为“已弃用”。
与上述等效的简单代码如下:
PS 我使用 Jython,但 Java 应该是显而易见的。
Take a look at ODFDOM - the OpenDocument API
later
As of this writing (2016-02), we are told that these classes are deprecated... big time, and the
OdfTextDocument
API documentation tells you:This means you still include the same active .jar file in your project,
simple-odf-0.8.1-incubating-jar-with-dependencies.jar
, but you want to be unpacking the following .jar to get the documentation:simple-odf-0.8.1-incubating-javadoc.jar
, rather thanodfdom-java-0.8.10-incubating-javadoc.jar
.Incidentally, the documentation link downloads a bunch of jar files inside a .zip which says "0.6.1"... but most of the stuff inside appears to be more like 0.8.1. I have no idea why they say "as of 0.8.8" in the documentation for the "deprecated" classes: just about everything is already marked deprecated.
The equivalent simple code to the above is then:
PS am using Jython, but the Java should be obvious.