【发布时间】:2014-10-01 18:31:44
【问题描述】:
如何合并两个 .odt 文件?手动打开每个文件并复制内容是可行的,但不可行。
我已尝试使用 odttoolkit Simple API (simple-odf-0.8.1-incubating) 来完成该任务,创建一个空的 TextDocument 并将所有内容合并到其中:
private File masterFile = new File(...);
...
TextDocument t = TextDocument.newTextDocument();
t.save(masterFile);
...
for(File f : filesToMerge){
joinOdt(f);
}
...
void joinOdt(File joinee){
TextDocument master = (TextDocument) TextDocument.loadDocument(masterFile);
TextDocument slave = (TextDocument) TextDocument.loadDocument(joinee);
master.insertContentFromDocumentAfter(slave, master.getParagraphByReverseIndex(0, false), true);
master.save(masterFile);
}
而且效果相当好,但是它会丢失有关字体的信息 - 原始文件是 Arial Narrow 和 Windings 的组合(用于复选框),输出 masterFile 都在 TimesNewRoman 中。起初我怀疑 insertContentFromDocumentAfter 的最后一个参数,但将其更改为假中断(几乎)所有格式。难道我做错了什么?有没有其他办法?
【问题讨论】:
-
我正在尝试实现相同但无法从 maven 获取该版本的库
-
@vbazaga86 是的,该版本在 maven 上不可用。因为在那个版本出来半年之后,他们仍然没有修复他们的构建过程。我将它作为 odftoolkit-0.6.1 的一部分手动下载并从 jar 安装到我的本地 repo 中。
-
目前我有同样的问题要解决,我发现只有两个好的 java 库可以解决这个问题:Apache ODF Toolkit 和 jOpenDocument。哪个更好?
-
@makkasi 以上是Apache Toolkit的一部分,其他的我不知道。如果您尝试并成功完成此任务,请务必告诉我。
标签: java openoffice.org