Alle Bilder gleichzeitig Verankerung ändern?

Daß man seit einer der letzten Versionen die Standardverankerung setzen kann, ist schon mal positiv, doch wenn man nun bei einem existierenden Dokument mit mehreren Hundert Bildern die Verankerung aller Bilder einzeln ändern will/muß, ist das eine sehr mühselige Arbeit.

Deswegen die Frage: Kann ich irgendwie bei allen bereits im Dokument vorhandenen Bildern gleichzeitig deren Verankerung ändern auf z. B. “als Zeichen” oder muß ich die alle einzeln ändern?

Obligatorisch bitte angeben, verwendetes Betriebssystem und die LibreOffice Version.
In welchem Dateiformat speicherst du?
Wie hast du die Bilder bisher verankert?


Ich kenne keine Möglichkeit alle Bilder auf einmal zu ändern.

Was die Verankerung für das Bild bewirkt, kannst du hier nachlesen:
Verankerung für das Bild festlegen

Win 8.1 mit Office 7.6.2.1

Dateiformat seit Jahren odt

Bisher erfolgte die Verankerung automatisch “am Zeichen”, und ich möchte alle auf “als Zeichen” ändern. Nur so werde ich die hässlichen und überflüssigen Leerzeilen unter den Bildern los. Und nachdem das 15 Dateien mit jeweils 500 - 2000 Seiten sind, bei denen sich auf jeder Seite 3 Bilder befinden, ist das einzeln ein Horrortrip.

Kannst du denn mal eine Musterdatei (2-3 Seiten, persönliche Daten entfernen/ersetzen) hier hochladen, damit es jemand untersuchen kann bzw. eine Vorstellung davon bekommt, was du genau meinst. Und beschreibe bitte genau, wie ein Bild eingbettet sein soll (Position/Größe, Verankerung, Umlauf?). Danke.

Muster sind in meinem anderen Thread zu sehen:

Ich würde das Ganze per Makro erledigen:

SUB VerankerungWechseln
	oGraph = ThisComponent.getGraphicObjects()
	FOR i = 0 TO oGraph.Count - 1
		oGraph.getByIndex(i).AnchorType = 1
	NEXT i
END SUB

Der AnchorType 1 ist “AS_CHARACTER”. Das ist wohl hier nach geordnet:
com.sun.star.text.TextContentAnchorType

1 Like

Das Makro funktioniert für diese Aufgabe wunderbar - nur ht es leider eine Nebenwirkung:

Alle FSK-Logos, die zuvor noch nicht “als Zeichen” verankert waren, sind nun nicht mehr zentriert sondern linksbündig ausgerichtet. Warum, das weiß ich nicht…

Nun wäre die Frage, ob Du das Makro so erweitern/umschreiben kannst, daß es nicht nur die Verankerung auf “als Zeichen” ändert, sondern auch alle Bilder auf Ausrichtung “zentriert” setzt? Damit wäre mir sehr geholfen…

Besten Dank auf jeden Fall schon mal jetzt, das Makro hat schon viel Arbeit gespart

Ich schaue mir das einmal an. Der Haken daran ist natürlich: Die Zentrierung ist keine Eigenschaft des Bildes sondern eine des Absatzes. Wenn Du bei allen Bildern ein einheitliches Absatzformat gesetzt hättest, dann bräuchtest Du dort nur die Zentrierung einzustellen. So werden die Bilder bei der Erstellung der Handbücher ausgerichtet.

Ja, und wenn @magmadrag nicht auch noch direkte Formatierung verwendet hätte, wie z.B. in der letzten Zeile der Tabelle (Direkte Formatierung: mittig)


In der Tabelle wird die Absatzvorlage “Tabelleninhalt” verwendet. Man bräuchte aber zwei Absatzvorlagen für die Tabelle, eine für Bilder (mittig) und eine für Text (linksbündig).


@RobertG Leider verwenden viele OP’s Writer immer noch wie eine Schreibmaschine. Da frag ich mich manchmal, wozu schreiben wir Handbücher?

1 Like

So, hier mit dem Zentrieren:

SUB VerankerungWechseln
	oGraph = ThisComponent.getGraphicObjects()
	FOR i = 0 TO oGraph.Count - 1
		oGraph.getByIndex(i).AnchorType = 1
		oGraph.getByIndex(i).Anchor.ParaAdjust = 3
	NEXT i
END SUB

0: links; 1 rechts; 2 Blocksatz; 3 zentriert; 4 Blocksatz mit letzter Zeile komplett nach rechts gezogen

@Hrbrgr : Die Handbücher machen wir doch in der Hauptsache um zu zeigen, dass LibreOffice das auch richtig kann. Das Arbeiten ohne Vorlagen bekommen ja viele von der MS-Seite direkt beigebracht - auch viele Leute, die professionell (in Büros) Texte verfassen müssen. Das geht auch dort munter mit Tabulator, Leertaste und immer im Textformat “Standard”. Und wenn der Abstand zum nächsten Absatz nicht ausreicht: Einfach noch einen Return und notfalls einmal die Schriftgröße zwischenzeitig anpassen.

Die Unterschiede in der Ausrichtung habe ich deswegen so gewählt, weil es für mich einfach mehr Sinn ergibt. Die ersten 3 Zeilen links, dann mittig, dann Blocksatz und falls danach nochmal eine Zeile kommt, ist die auch wieder zentriert.
Die Bilder selbst dürfen alle zentriert sein, da das der einfachste Weg ist. Außer dem FSK haben die Bilder nicht mehr Platz, als daß deren Ausrichtung optisch irgend etwas ändern würde.

Tja, dann werd ich mich wohl bald am neuen Makro versuchen…^^ Besten Dank!

Ist vermutlich eine dumme Frage, aber ich sehe keine andere potentielle Ursache:

Kann das sein, daß das Makro unerwartete “Nebenwirkungen” hat?
Folgender Sachverhalt: Jede dieser Dateien hat unzählige Verzeichniseinträge auf Ebenen 3 + 4 (und wenig auf 1 + 2). Die Datei, die ich gerade aktualisiert habe, war dann beinahe “faszinierend”: Zusätzlich zu deb von mir erstellten Einträgen auf Ebene 4 gab es bei rund 20 jeweils 10+ weitere auf Ebene 4, gesetzt auf ein Leerzeichen, wo gar kein Leerzeichen ist.
Bei fast jedem Versuch, die Verzeichniseinträge direkt zu bearbeiten, ist LibreOffice abgestürzt. Mit einer Ladung manueller Nacharbeit konnte ich das dann bereinigen, aber es war durchaus seltsam.

Falls es nicht vom Makro kommt: Wie kann so etwas entstehen? Schon allein der Fakt, daß ein Eintrag auf einem Leerzeichen gesetzt ist, wo gar keines existiert, sorgt bei mir mal wieder für großes Rätselraten

Das Makro macht ja nur 2 Dinge: Es sucht alle Bilder auf (graphische Objekte), setzt dort den Anker als Zeichen (Bild erscheint als Zeichen) und setzt den Absatz, in dem das Bild liegt, auf “zentriert”.

Vielleicht hast Du irgendwelche graphischen Objekte zusätzlich in Deiner Datei? Ohne die Datei kann ich dazu nichts sagen. Bliebe vielleicht die Möglichkeit zu schauen, ob das Objekt in einer Tabelle steckt …

SUB VerankerungWechseln
	oGraph = ThisComponent.getGraphicObjects()
	FOR i = 0 TO oGraph.Count - 1
		IF NOT IsEmpty(oGraph.getByIndex(i).Anchor.TextTable) THEN
			oGraph.getByIndex(i).AnchorType = 1
			oGraph.getByIndex(i).Anchor.ParaAdjust = 3
		END IF
	NEXT i
END SUB

Das setzt jetzt nur die Grafiken in einer Tabelle einer Writer-Datei zentriert und mit der Verankerung als Zeichen.

Möglicherweise hilft diese Extension:
https://extensions.libreoffice.org/en/extensions/show/change-multiple-images-in-writer-pictool
.
(Bild entnommen aus der oben verlinkten Seite.)
.

Im weiter oben verlinkten Thread findet sich auch dieser Download-Link:

Das ist natürlich keine vollständige Datei (die wären einfach zu groß). Ich habe “nur” ein paar der Seiten aus einer Datei kopiert und in eine neue eingefügt. Das Kuriose dabei war dann schon mal, daß die Kopie bedeutend mehr “Material” hatte, als das Original, denn leere Tabellen wie auf den Seiten 3 - 6 gibt es im Original nicht.
Die auf Seite 6 außerhalb/oberhalb der Tabelle sichtlichen Bilder lassen sich auch nicht löschen. Was heißt: Ich lösche, sie sind weg, speichere, und sie sind wieder da.
An diesem Problem mußte ich lange kniffeln, und letztendlich war es dann “nur” eine Änderung der Verankerung, nach der die Löschung dann bestehen blieb.
Woher allerdings die leeren Tabellen kommen (im Original verm. vor langer Zeit gelöscht und deswegen nicht mehr sichtbar) bzw. warum diese urplötzlich wieder auftauchen, das muß mir jemand erklären, der Office programmiert hat.

Hinsichtlich der immer wiederkehrenden Hinweise in Sachen Handbuch: Nach über 30 Jahren praktisch komplett ohne Handbuch und komplett autodidakt, habe ich damit definitiv ein Problem. Vor allem hinsichtlich des Aspekts, wenn mir ein Handbuch zeigt, daß es auf diesem Wege genau so funktioniert, wie ich es will, und in der Praxis das Ergebnis dann ein komplett anderes ist. Schulung mit 6 Kollegen… alle Rechner identisch, sowohl von Hard- als auch von Software. Der Dozent diktiert wortwörtlich aus dem Handbuch, wodurch 7 x das selbe Ergebnis den Bildschirm zieren sollte. Daß es dann jedoch zu drei (!) unterschiedlichen Ergebnissen kam, obwohl die Voraussetzungen komplett identisch waren, konnten weder der Dozent noch das Handbuch erklären.
Und: Wenn ich ein Handbuch brauche, um eine Tabelle zu befüllen, warum ist dann die von mir angewandte Methode technisch überhaupt erst möglich, wenn sie denn so “falsch” ist?

Es steht dir natürlich frei, ob du ein Handbuch benutzen möchtest oder nicht.
Tatsächlich ist es so, dass die Handbücher von Freiwilligen nach bestem Wissen erstellt werden.
Zu denen die Handbücher erstellen, gehören auch @RobertG und ich @Hrbrgr.
In einem Handbuch kann nicht immer alles Abgebildet werden und schon gar nicht unkonventionelle Vorgehensweisen. Auch Fehler des Programms oder andere Unzulänglichkeiten zieren kein Handbuch.

Du schreibst:

…und in der Praxis das Ergebnis dann ein komplett anderes ist.

Das nenne ich mal eine pauschale “Abwatschung” ohne konkreten Hintergrund des Vorgehens der einzelnen Teilnehmer.
Aber um diese Unzulänglichkeiten abzufangen versuchen wir hier anderen Usern zu helfen.
Da ist der erste Weg natürlich immer der Hinweis auf Handbücher und andere Hilfen.


Vielleicht für die Zukunft, erst die “Hausordnung lesen”, dann das Problem soweit wie möglich detailliert beschreiben. Oder doch vielleicht erst mal ins Handbuch schauen. :wink:

@magmadrag : Wenn ich die Datei herunter lade und in den Navigator schaue, dann sehe ich da bei den Bildern ziemlich viel Kopien. Einige hast Du vermutlich schon gelöscht. Dass da aber eine Kopie einer Kopie einer Kopie (also das 4. gleiche Bild) auftaucht lässt mich doch daran zweifeln, dass für das ursprüngliche Vorhaben der richtige Weg gewählt worden ist. Und sehe ich dann die Zahlen bei den Bildern, dann scheint mir das Ganze nur noch unübersichtlich zu sein.

Ich hätte das mit einer Datenbank gelöst. Die kann auch Berichte, die Bilder mit einbinden. Und die Bilder hätte ich in einem separaten Verzeichnis aufbewahrt.

Für so ein fehlerhaftes Dokument habe ich hier auch keine Lösung. Da müsste ich über den Navigator schauen, wo denn diese ganze Kopien liegen. Und wenn da lauter Bilder übnereinander liegen, dann müsste ich die händisch einzeln löschen. Bei dem, was Du da an Daten in den anderen Dokumenten liegen hast, ist das eine Arbeit für jemanden, der sonst überhaupt nichts zu tun hat …

Nebenbei: Die überflüssigen Tabellen und Bilder lassen sich bei mir problemlos löschen. Auch das Makro läuft ohne Probleme durch. Due Datei hat anschließend eine Größe von 3,4 MB, was eindeutig daran liegt, dass die Bilder viel zu groß sind und für das Dokument adnn auf eine Größe von unter 20% geschrumpft wurden. Die Originale sind ja mit drin - sind also auch so abgespeichert. Selbst die Symbole (z.B. das für DVD) sind in hoffnungsloser Übergröße da drin.
Ich habe alles so weit verkleinert, wie es ohne große Grafikmängel möglich ist. Kein der vorhandenen Bilder war nicht mindestens auf 25 % verkleinert, Manche Symboldateien sogar auf 3 % geschrumpft.
Fehlerdatei.odt (192.1 KB)
Das ist jetzt die Datei, die den Inhalt von 4,31 MB Vorlage wieder gibt.

1 Like