Wie entferne ich alle Bilder in einem Dokument in LibreOffice Writer?

10

Ubuntu 12.04

Ich möchte alle Bilder aus einem Dokument in LibreOffice Writer entfernen. Mein Dokument enthält ~ 350 Bilder. Gibt es eine Möglichkeit, sie massenhaft und nicht einzeln zu löschen ? Ich habe versucht, Extras> Optionen> LibreOffice Writer> Ansicht> Anzeige> "Grafiken und Objekte" zu deaktivieren. Aber die Platzhalter sind immer noch sichtbar.

Bearbeiten: Ich weiß, wie man die Seite als reine Textdatei speichert, aber ich muss sie in meinem Dokument formatieren.

Chella
quelle
@Chelia: Haben Sie versucht, das Dokument als reine Textdatei zu speichern (in den Einstellungen "Speichern unter")?
stephenmyall
Aber warum funktioniert das Deaktivieren von "Optionen> libreoffice writer> Ansicht> Anzeige>" Grafiken und Objekte "" nicht? Ich versuchte es. Für mich geht das. Wenn diese Einstellung aktiviert ist, werden beim nächsten Öffnen eines Dokuments mit Grafiken nur die Platzhalter angezeigt.
er müsste noch die Platzhalter @ vasa1 entfernen :)
Rinzwind
Wahr! Es ist jedoch nicht klar, was das endgültige Ziel ist oder warum OP die Bilder nicht sehen möchte. Das Exportieren als reine Textdatei kann viele Formatierungen beeinträchtigen.
genau..! Ich werde alle Formatierungen verlieren, wenn ich es nur mit Text speichere.
Chella

Antworten:

12

Sie können auch ein kurzes Makro in LibreOffice verwenden, um alle Bilder in einem Dokument zu entfernen:

Sub RemoveImages

   Dim oDoc as Object
   oDoc = ThisComponent

   Dim oGraphics as Object
   oGraphics = oDoc.getGraphicObjects()

   Dim oImg as Object

   For Each oImg in oGraphics
       oDoc.getText().removeTextContent(oImg)
   Next 

End Sub

Dieses Beispiel kann auch geändert werden, um die Eigenschaften von Bildern zu ändern (z. B. alle einheitlich zu gestalten) sowie Formobjekte usw. zu behandeln.

Makros erstellen

LibreOffice bietet eine Basissprache sowie eine IDE zum Erstellen, Debuggen, Speichern und Ausführen von Code.

Verwenden Sie zum Öffnen des Makrodialogs Alt+ F11oder im Menü Extras > Makros > Makros organisieren > LibreOffice Basic

Code wird in Modulen platziert , die in Bibliotheken organisiert sind . Sie können Ihre eigenen erstellen, aber für die meisten Zwecke können Sie die integrierte MyMacros- Bibliothek und das integrierte Modul1 verwenden .

Wenn der Makrodialog geöffnet ist, markieren Sie Modul1 und drücken Sie Bearbeiten . Dies öffnet die IDE.

Code ist in Subs und Funktionen organisiert. In Anlehnung an VBA werden Funktionen verwendet, um einen Wert zurückzugeben, und Subs geben keinen Wert zurück. Sie können Ihre eigenen Subs und Funktionen überall unterhalb von Main definieren. Um diesen Code zum Entfernen von Bildern zu verwenden, fügen Sie ihn einfach in das Modul ein.

Makros verwenden

Sie können den Code direkt in der IDE ausführen, indem Sie auf eine beliebige Stelle im Sub klicken, die Sie ausführen möchten, und drücken F5. (Da Funktionen einen Wert zurückgeben, müssen sie von einem Sub aufgerufen werden.) Sie können den Code auch über die Dialogschaltflächen oder das Menü ausführen. Die IDE enthält einen integrierten Debugger, der beim Schreiben von neuem Code von entscheidender Bedeutung ist.

Wenn Sie das nächste Mal das Makrodialogfeld öffnen, wird das Sub als Makro aufgelistet und kann dann ausgeführt werden, ohne die IDE zu öffnen. Einzelne Makros können auch Menü- oder Symbolleistenelementen zugewiesen werden.

Hinweis: Dieses Makro wird auf jedem aktiven Dokument ausgeführt. Wenn Sie ein Makro über das Menü oder den Makrodialog ausführen, kann davon ausgegangen werden, dass dies das Dokument ist, in dem Sie gerade die Schaltfläche gedrückt haben. Wenn Sie jedoch die IDE zum Erstellen, Ausführen oder Debuggen von Code verwenden, stellen Sie sicher, dass Sie kein anderes Dokument zum aktiven Dokument gemacht haben.

LibreOffice Basic

LibreOffice Basic ist VBA sehr ähnlich, aber diese Ähnlichkeit kann auch täuschen, da das Objektmodell völlig anders ist und die Syntax auch viele Unterschiede aufweist.

Wenn Sie beispielsweise in VBA einen Verweis auf ein Bildobjekt haben, verfügt das Bildobjekt über eine Löschmethode. Hier haben oder erben Objekte nur sehr wenige Methoden. Um das Bildobjekt zu löschen, verwenden Sie das Dokumentelement mit einer Struktur und Syntax, die einem browserbasierten DOM sehr ähnlich ist.

Die LibreOffice-Hilfe enthält Links für den Einstieg in LibreOffice Basic.

chaskes
quelle
Wenn es nicht zu viel Mühe gibt, kann eine kleine Anleitung hilfreich sein, wie der Code tatsächlich in ein Makro konvertiert wird. Angesichts all der Schreie über Java sollten die Leute auch wissen, dass eine JRE erforderlich ist, damit Makros funktionieren. Hoffen wir, dass LibreOffice endlich Java-frei wird.
Genius. :) Und funktioniert immer noch in LibO Writer 5.1, es könnte sich lohnen, es hinzuzufügen.
Dɑvïd
5

Ich gehe davon aus, dass der Text des Dokuments formatiert ist und das Speichern nur als Text nicht ideal ist. In diesem Fall könnte man einen etwas längeren Ansatz wählen:

  • Erstellen Sie einen temporären Ordner.

  • Öffnen Sie das Dokument normal in LibreOffice.

  • Wählen Sie Save Asund hier HTML Document (Writer) (.html)als Format auswählen .

    • Geben Sie außerdem den temporären Ordner für das Ziel an und geben Sie der vorgeschlagenen HTML-Datei einen geeigneten Namen. Save as htmlStimmen Sie dem Format im nächsten Bildschirm zu und nicht dem Format.
  • Schließen Sie LibreOffice.

  • Öffnen Sie den oben erstellten temporären Ordner. Sie sollten eine HTML-Datei und eine Reihe von Bildern sehen.

    • Löschen Sie die Bilder, wenn sie nicht weiter benötigt werden.
  • Öffnen Sie dann die .htmlDatei in einem geeigneten Texteditor, um die Tags zu entfernen, die andernfalls zu Lücken im Dokument führen würden.

    • In Geany habe ich <IMG SRC="[^>]+>beispielsweise den Suchausdruck verwendet und nichts im Feld "Ersetzen durch".

Geany

  • Speichern Sie die HTML-Datei. Wenn es jetzt in einem Browser oder sogar in LibreOffice angezeigt wird, gibt es keine Bilder, keine Platzhalter, nur formatierten Text.

Bearbeiten: Anstatt einen GUI-basierten Texteditor zu verwenden, kann man die Befehlszeile folgendermaßen verwenden , vorausgesetzt, einer befindet sich im entsprechenden Ordner und cli.htmlder Name wird beim Speichern htmlin LibreOffice angegeben.

perl -p -i.bak -e 's/<IMG[^>]+>//g' cli.html

Eine Sicherungsdatei cli.html.bakwird für alle Fälle erstellt ...


quelle