Dateien mergen

Hallo Mitlistige,

ich habe gerade einen Haufen ODT-Dateien bekommen (Dokument-001.odt,
Dokument-002.odt, ... Dokument-530.odt).

Dazu habe ich eine weitere Datei bekommen (Kopf.odt), in der sich
ebenfalls ein kurzer Text befindet.

Meine undankbare Aufgabe: Ich muss den Inhalt von Kopf.odt an den
Anfang jeder einzelnen Dokument-XYZ.odt einfügen.

Ich habe mir gerade alle Kommandozeilen-Parameter angeschaut, aber
damit ginge wohl nur etwas wie:

   libreoffice4.4 --headless --cat Kopf.odt Dokument-001.odt >Test.txt

Dann habe ich zwar den Inhalt von Kopf.odt sowie Dokument-001.odt in
Textform in Text.txt, aber damit sind natürlich alle Formatierungen
verloren.

Ich hatte auch schon überlegt, aus Kopf.odt einen Serienbrief zu
machen, aber wie bekomme ich dann die Inhalte der 530 anderen Dateien
in eine Datenbank, um sie als Seriendruckfeld verwenden zu können?

Hat irgendjemand von euch eine Idee?

Gruß,
Michael

Hallo Michael,

Hallo Mitlistige,

ich habe gerade einen Haufen ODT-Dateien bekommen (Dokument-001.odt,
Dokument-002.odt, ... Dokument-530.odt).

Dazu habe ich eine weitere Datei bekommen (Kopf.odt), in der sich
ebenfalls ein kurzer Text befindet.

Meine undankbare Aufgabe: Ich muss den Inhalt von Kopf.odt an den
Anfang jeder einzelnen Dokument-XYZ.odt einfügen.

Ich habe mir gerade alle Kommandozeilen-Parameter angeschaut, aber
damit ginge wohl nur etwas wie:

   libreoffice4.4 --headless --cat Kopf.odt Dokument-001.odt >Test.txt

Dann habe ich zwar den Inhalt von Kopf.odt sowie Dokument-001.odt in
Textform in Text.txt, aber damit sind natürlich alle Formatierungen
verloren.

Ich hatte auch schon überlegt, aus Kopf.odt einen Serienbrief zu
machen, aber wie bekomme ich dann die Inhalte der 530 anderen Dateien
in eine Datenbank, um sie als Seriendruckfeld verwenden zu können?

Hat irgendjemand von euch eine Idee?

Nur mal geraten ... ich habe es selber noch nicht gemacht, aber
möglicherweise kannst Du allen Dateien auf einen Rutsch einen neue
Dokumentvorlage zuweisen, die dann halt den neuen Kopf-Text am Anfang
enthält?

Hi Michael, *,

ich habe gerade einen Haufen ODT-Dateien bekommen (Dokument-001.odt,
Dokument-002.odt, ... Dokument-530.odt).

Dazu habe ich eine weitere Datei bekommen (Kopf.odt), in der sich
ebenfalls ein kurzer Text befindet.

Meine undankbare Aufgabe: Ich muss den Inhalt von Kopf.odt an den
Anfang jeder einzelnen Dokument-XYZ.odt einfügen.

Entweder über ein Makro, oder über ein Globaldokument, bei dem dann
außerhalb von LO die Links angepasst werden.

Ich habe mir gerade alle Kommandozeilen-Parameter angeschaut,

Damit gehts nicht, dazu ist der Fall schon recht speziell.

Serienbrief ginge sicher auch, aber da ist ein Makro denke ich einfacher.
Wenn Einfügen|Datei zum gewünschten Resultat führt, dann eine
entsprechende Schleife

for file in input/*odt; do libreoffice
"macro:///Bibliothek.Modul.makroname" "$file" ; done

das dann entsprechend den Cursor an den Anfang (oder das Ende) der
Datei setzt, die entsprechende Datei einfügt und dann das Dokument
abspeichert.

Alternativ ein Globaldokument erstellen, da werden die Dateien ja
verlinkt. Dann kann man den entsprechenden Link per sed o.ä.
aktualisieren. Dann hat man natürlich als Resultat erstmal ein
Globaldokument.

ich würde es per Makro mit Einfügen|Dokument versuchen.

Anstatt die Dateien einzeln zu konvertieren, kann man die Schleife
auch im Makro machen, dürfte dann einen ganzen Ticken schneller gehen.

ciao
Christian

Hallo Christian,

Hi Michael, *,

> ich habe gerade einen Haufen ODT-Dateien bekommen (Dokument-001.odt,
> Dokument-002.odt, ... Dokument-530.odt).
>
> Dazu habe ich eine weitere Datei bekommen (Kopf.odt), in der sich
> ebenfalls ein kurzer Text befindet.
>
> Meine undankbare Aufgabe: Ich muss den Inhalt von Kopf.odt an den
> Anfang jeder einzelnen Dokument-XYZ.odt einfügen.

Entweder über ein Makro, oder über ein Globaldokument, bei dem dann
außerhalb von LO die Links angepasst werden...

for file in input/*odt; do libreoffice
"macro:///Bibliothek.Modul.makroname" "$file" ; done

das dann entsprechend den Cursor an den Anfang (oder das Ende) der
Datei setzt, die entsprechende Datei einfügt und dann das Dokument
abspeichert.

Das ist ein interessanter Ansatz.

Alternativ ein Globaldokument erstellen, da werden die Dateien ja
verlinkt. Dann kann man den entsprechenden Link per sed o.ä.
aktualisieren. Dann hat man natürlich als Resultat erstmal ein
Globaldokument.

So hatte ich das in einem simpleren Fall mit 10 Dokumenten gemacht. Das
Globaldokument enthielt dann die Sequenz

Kopf/Dokument1/Kopf/Dokument2/.../Kopf Dokument10

Das Globaldokument kann man dann in eine normale ODT-Datei
exportieren. Meine Kollegin hat dann diese Datei mit einiger Mühe
zerlegt. Bei 530 Dateien ist das Folter :wink:

ich würde es per Makro mit Einfügen|Dokument versuchen.

Ich habe gerade noch eine andere Fährte, aber dieser Vorschlag kommt
schon mal in die Sammlung.

Danke,
Michael

Hallo Franklin,

Hallo Michael,

> ich habe gerade einen Haufen ODT-Dateien bekommen (Dokument-001.odt,
> Dokument-002.odt, ... Dokument-530.odt).
>
> Dazu habe ich eine weitere Datei bekommen (Kopf.odt), in der sich
> ebenfalls ein kurzer Text befindet.
>
> Meine undankbare Aufgabe: Ich muss den Inhalt von Kopf.odt an den
> Anfang jeder einzelnen Dokument-XYZ.odt einfügen.

Nur mal geraten ... ich habe es selber noch nicht gemacht, aber
möglicherweise kannst Du allen Dateien auf einen Rutsch einen neue
Dokumentvorlage zuweisen, die dann halt den neuen Kopf-Text am Anfang
enthält?

Da wäre die Frage, wie ich den Kopf-Text in die Dokumentenvorlage
bekomme. Ich hatte da auch schon an eine Vorlage mit Kopfzeile gedacht,
aber die Anforderung ist, das der Kopf-Text einfach vor dem normalen
Text eingefügt wird.

Gruß,
Michael

ich bin zwar nicht sicher, aber vieleicht läst sich in die Seitenvorlage die
datei kopf.odt einfügen und somit nur die Seitenvorlage tauschen. damit wäre
dann ja für alle 30 Dateien der Koft automatisch eingefügt. den Versuch wäre
es wohl wert.

mfg
Horst

Hallo Mitlistige,

ich habe gerade per privater Mail einen Tipp bekommen: "ooopy"

Nach der Installation des Tools stehen einem einige
Kommandozeilen-Tools zur Verfügung. Eines davon ist "ooo_cat", mit dem
man tatsächlich 2 Dateien mergen kann:

  ooo_cat Datei1.odt Datei2.odt >Summe.odt

Nun eine kleine Schleife mit Kopf.odt und den einzelnen
Dokument-XYZ.odt sowie X-Dokument-XYZ.odt als Ausgabe, und der Drops
ist nach 15 Minuten Laufzeit gelutscht :wink:

Einziges Manko: Zwischen Kopf und Text wird ein Seitenvorschub
eingefügt. Das ist aber nur ein Schönheitsfehler.

Vielen Dank für die bisherigen Ideen,
Michael