beim Versuch ein docx (das ja auch nur ein zip ist, ähnlich odt) liefert folgendes Makro (das für odt, ods, ... funktioniert, siehe z.B. viewtopic.php?f=25&t=65927) die Fehlermeldung (getestet in OOo 3.3.0 und AOO 4.1.2):
in Zeile:
Code: Alles auswählen
z.initialize(args())
Code: Alles auswählen
Sub initialisieren()
Dim args(0)
tmp = ermittle_pfad()
z = createUnoService("com.sun.star.packages.Package")
args(0) = ThisComponent.URL
If right(args(0), 4) <> "docx" Then
Msgbox "Das aktuelle Dokument ist kein docx, Makro wird beendet", 16, "kein docx"
Exit Sub
Else
z.initialize(args())
ebene = z.getByHierarchicalName("media")
alles = ebene.getElementNames()
schreiben = createUnoService("com.sun.star.ucb.SimpleFileAccess")
For i = LBOUND(alles()) To UBOUND(alles())
stream = z.getByHierarchicalName("media/" & alles(i)).GetInputStream()
schreiben.WriteFile(tmp & "/media/" & alles(i), stream)
Next i
End If
End Sub
Function ermittle_pfad()
pfad = createUnoService("com.sun.star.util.PathSettings")
ermittle_pfad = pfad.temp
End Function
Hat jemand eine Lösung wie ich das docx mit OO-Makro (ohne Zusatzsoftware) entpackt bekomme? (mit z.B. 7zip geht das und ich könnte mittels Makro z.B. pkzip nutzen, würde aber gerne mit OO-Bordmitteln auskommen)
Anmerkung:
Die Zeile "ebene = z.getByHierarchicalName("media")" ist nicht korrekt und müsste wohl heissen "ebene = z.getByHierarchicalName("word/media")" aber wie oben beschrieben tritt ja der angefragte Fehler schon davor auf, so das zunächst dieser Fehler eine Lösung brauchte
Gruß
Stephan