Hallo,
wir generieren bei uns in der Firma Dokumente mit Hilfe von Libre Office. Das Programm zum Generieren ist komplett in Java und verwendet die JAVA-UNO Api.
Bei der Generierung ist es auch so, dass wir manchmal mehrer Dokumente zusammenfügen. Der Quellcode zum Zusammenfügen sieht wie folgt aus:
String insertAnhangDocUrl = Tools2.savetemporaryasMSWord(invocation.getXAnhangComponent(), invocation);
invocation.getPageProps().setPropertyValue("PageDescName", pagestylename); //$NON-NLS-1$
XPropertySet cursorProps = UnoRuntime.queryInterface( XPropertySet.class, xTextCursorLetzteSeite);
cursorProps.setPropertyValue(BREAK_TYPE, BreakType.PAGE_BEFORE);
XDocumentInsertable xinsertAnhang = UnoRuntime.queryInterface(XDocumentInsertable.class, xTextCursorLetzteSeite);
File tmpFile = new File(insertAnhangDocUrl);
if (tmpFile.exists()) {
insertDocumentFromURL(xinsertAnhang, tmpFile);
invocation.getTempfiles().add(tmpFile);
} else {
invocation.setErfolg(false);
insertAnhangDocUrl)); //$NON-NLS-1$
invocation.getError().append(MessageFormat.format(Messages.getString("Doc2PdfImpl.tempfile_not_exists"), insertAnhangDocUrl));
}
// nach dem Anhaengen des Attachments dessen
// Paragrapheneigenschaften tunen
Tools2.setParticularParaProps(invocation.getXWriterComponent(), paraPropsArray, anzahlParas);
Die entscheidende Zeile ist wohl das Einfügen des Break_Type. Es ist nun so das Verhalten, dass mit Version 7.4.7 ein Seitenumbruch eingefügt wird, dann kommt ein Abschnittswechsel und dann wird das angehangene Dokument auf der neuen Seite gestartet.
Mit Version 7.6.7 kommt erst der Abschnittswechsel, dann kommt auf einer neuen Seite der Seitenumbruch und wieder auf einer neuen Seite startet das angehangene Dokument. So entsteht also eine Leerseite.
Kann jemand dieses Phänomen erklären und ist das ein Bug oder ist mein Code vielleicht nicht richtig? Ich brauche auch eine Lösung, die mit beiden Versionen funktioniert.
Hier sind beide Dokumente zum Vergleich angehangen:
test-747.docx (85.9 KB)
test-767.docx (84.6 KB)