Autor Beitrag
MHA
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Do 05.01.12 19:45 
Hallo,

ich hab ein Problem, bei dem ich absolut nicht weiter komme.
Mein Programm erzeugt OpenOffice Writer-Dokumente und speichert diese. Irgendwann sollen all die zuvor erzeugten Dokumente in einem neuen, leeren Dokument zusammengefasst werden. Dabei soll jedes Dokument auf eine neue Seite. Der Ablauf sieht also so aus: neues Dokument erzeugen, gespeichertes Dokument einfügen, Seitenumbruch einfügen, nächstes Dokument einfügen, Seitenumbruch usw....
Leider funktioniert der Seitenumbruch nicht und alle Dokumente werden einfach hintereinander geklatscht! Ich verzweifle gleich :-(

Hier mal die Methode um die es geht:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
using uno;
using unoidl.com.sun.star.beans;
using unoidl.com.sun.star.document;
using unoidl.com.sun.star.lang;
using unoidl.com.sun.star.frame;
using unoidl.com.sun.star.text;
using unoidl.com.sun.star.uno;
using unoidl.com.sun.star.view;


public void AddDocuments(List<string> FileList)
{
   foreach (var file in FileList)
   {
      var xTextDocucment = ((XTextDocument)xComponent);
      var xText = xTextDocucment.getText();
      var xTextCursor = xText.createTextCursor();

      ((XDocumentInsertable)xTextCursor).insertDocumentFromURL(PathConverter(file), new PropertyValue[0]);

      var xViewCursor = ((XTextViewCursorSupplier) xTextDocucment.getCurrentController()).getViewCursor();
      var xPageCursor = (XPageCursor)xViewCursor;
      xPageCursor.jumpToLastPage();
      xPageCursor.jumpToEndOfPage();

      var xPropSet = (XPropertySet)xPageCursor;
      xPropSet.setPropertyValue("BreakType", new Any((int)unoidl.com.sun.star.style.BreakType.PAGE_AFTER));
   }
}


Vielleicht könnt ihr mir ja den Fehler benennen und weiterhelfen!

Vielen Dank!
MHA Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 06.01.12 11:59 
Puh, hab ich's selbst geschafft!
Vielleicht hilft die Lösung ja jemanden weiter:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
public void AddDocuments(List<string> FileList)
{
    var xTextDocucment = ((XTextDocument)xComponent);
    var xText = xTextDocucment.getText();
    var xTextCursor = xText.createTextCursor();

    foreach (var file in FileList)
    {
       xTextCursor.gotoEnd(false);
       
       var xPropSet = (XPropertySet)xTextCursor;
       xPropSet.setPropertyValue("BreakType", new Any((int)unoidl.com.sun.star.style.BreakType.PAGE_BEFORE));
       
      ((XDocumentInsertable)xTextCursor).insertDocumentFromURL(PathConverter(file), new PropertyValue[0]);
    }
}


Eigentlich war es einfacher als gedacht ;-)