OO Writer dokument komplett parsen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

harrybo
**
Beiträge: 45
Registriert: Mi, 10.03.2004 14:06
Wohnort: Aachen
Kontaktdaten:

OO Writer dokument komplett parsen

Beitrag von harrybo »

Hallo,

ich konzipiere zurzeit eine OO Basic Exportroutine, die ein komplettes Writer Dokument in ein spezielles XML Format exportiert (XSLT Filter haben sich für meine Zwecke als ungeeignet herausgestellt). Das Dokument enthält auf der ersten Seite ein Formular mit Metadaten, es folgen Kapitel, Unterkapitel, Text (in verschiedenen Formatierungen), Bilder, Tabellen, OLE Objekte in beliebiger Reihenfolge.

Das Ganze möchte ich nun sequentiell durchparsen, dabei natürlich erkennen, was dort jeweils steht und entsprechend rausschreiben.

Kann mir jemand einen Tipp oder Beispielcode geben, wie das am besten zu realisieren ist?

danke und gruß, harrybo
harrybo
**
Beiträge: 45
Registriert: Mi, 10.03.2004 14:06
Wohnort: Aachen
Kontaktdaten:

Beitrag von harrybo »

Hier mal ein erster Ansatz, den ich mittlerweile habe:

Code: Alles auswählen

sub checkDoc
	Dim vDoc As Object
	Dim Enum As Object
	Dim TextElement As Object
		
	vDoc = ThisComponent()
	'msgbox vDoc.dbg_properties
	Enum = vDoc.Text.createEnumeration  ' Enumeration-Objekt erzeugen
	While Enum.hasMoreElements()  ' Schleife über alle Text-Elemente
      TextElement = Enum.nextElement()
      'msgbox TextElement.dbg_Properties
      If TextElement.supportsService("com.sun.star.text.TextTable")  Then
        ' Textelement ist eine Tabelle
        print #giExportXML, TextElement.???
      End If
      If TextElement.supportsService("com.sun.star.text.Paragraph") Then
        ' Textelement ist ein Absatz
        print #giExportXML, TextElement.???
      End If
	Wend
end sub
Im obigen Beispiel soll zunächst der Text des Absatzes in eine externe Datei (#giExportXML) geschrieben werden. Später wird dann genauer geschaut werden müssen, was das Textelement enhält.
Ich bin leider nicht vertraut mit dem Handling des Objekts Textelement. Kann da jemand helfen?

gruß, harrybo
Antworten