Seite 1 von 1

Bild aus einem Writer-Dokument entfernen

Verfasst: So, 27.02.2011 12:20
von clag
Hallo Kenner und Könner,

wie lösche/entferne ich ein Bild aus einem Writer-Dokument
den Namen des zu löschenden Bild habe ich schon in einer Variablen

Code: Alles auswählen

For i = 0 to oDocGraphics.count - 1
   grfk_url = oDocGraphics.GetbyIndex(i).GraphicURL
   oDocGraphics.GetbyIndex(i).Title = FileNameoutofPath(grfk_url, "/") 
   grfk_AltName = oDocGraphics.GetbyIndex(i).Title

   if grfk_AltName = "dasgesuchte.png" then 
   .......????
schonmal Danke

Re: Bild aus einem Writer-Dokument entfernen

Verfasst: So, 27.02.2011 15:32
von Axel Richter
Hallo clag,

ich nehme Mal an, dass oDocGraphics eine DrawPage ist. Per xray findest Du in der DrawPage eine Methode remove http://api.openoffice.org/docs/common/r ... tml#remove.

Code: Alles auswählen

...
   if grfk_AltName = "dasgesuchte.png" then 
    oDocGraphics.remove(oDocGraphics.GetbyIndex(i))
...
Das funktioniert natürlich nur, wenn oDocGraphics eine DrawPage ist.

viele Grüße

Axel

Re: Bild aus einem Writer-Dokument entfernen

Verfasst: So, 27.02.2011 15:58
von komma4

Code: Alles auswählen

oDocGrahics = ThisComponent.GraphicObjects
ist die collection der Grafiken (Reverse engneering mit gepostetem Code)


Axel Richter hat geschrieben:Per xray findest Du in der DrawPage eine Methode remove
Den Tipp XRAY einzusetzen bekam der Kollege schon öfter. Fragt aber lieber (mit einem unvollständigen Code) nach :roll:

Re: Bild aus einem Writer-Dokument entfernen

Verfasst: So, 27.02.2011 16:15
von clag
Hallo Axel Richter,

Danke für deine Aktion
hatte mit remove und delete schon erfolglos rumprobiert

Code: Alles auswählen

   oDocGraphics.GetbyIndex(i).remove
bewirkte nichts bzw eine Fehlermeldung

nach reichlich suchen habe ich in einem anderen Makro dann "dispose" entdeckt,
damit wurde zwar eine Tabelle entfernt, aber mit dem Bild hat es dann auch funktioniert :)

Code: Alles auswählen

....
if grfk_AltName = "tweet.png" then 
   oDocGraphics.GetbyIndex(i).dispose
....

der Code tut jetzt das gewünschte

aber so richtig durchblicken tu da ich nicht :(