Слияние двух файлов .odt из кода
Как вы объединяете два файла .odt? Делать это вручную, открывая каждый файл и копируя содержимое, будет работать, но это невозможно.
Я попробовал odttoolkit Simple API (simple-odf-0.8.1 -кубирование), чтобы выполнить эту задачу, создав пустой 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, но изменив его на false, нарушает (почти) все форматирование. Я делаю что-то неправильно? Есть ли другой путь?