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会中断(几乎)所有格式化.难道我做错了什么?还有其他方法吗?
我认为这就是“按设计工作”。
我用全局文档尝试过一次,该文档导入文档并按原样显示它们......只要段落样式具有不同的名称!
使用相同命名的模板将被“主”文档具有的值覆盖。
因此,我最终克隆了具有唯一(每个文档)名称的标准样式。
华泰