合并代码中的两个.odt文件

Del*_*ris 11 java openoffice.org

你如何合并两个.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);
}
Run Code Online (Sandbox Code Playgroud)

而且工作得相当好,但是它丢失了有关字体的信息 - 原始文件是Arial Narrow和Windings(用于复选框)的组合,输出masterFile都在TimesNewRoman中.起初我怀疑insertContentFromDocumentAfter的最后一个参数,但是将其更改为false会中断(几乎)所有格式化.难道我做错了什么?还有其他方法吗?

ngu*_*lam 1

我认为这就是“按设计工作”。

我用全局文档尝试过一次,该文档导入文档并按原样显示它们......只要段落样式具有不同的名称!

使用相同命名的模板将被“主”文档具有的值覆盖。

因此,我最终克隆了具有唯一(每个文档)名称的标准样式。

华泰