docx lässt sich nicht entpacken
Verfasst: Di, 21.06.2016 10:51
Hallo,
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:
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
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