Office & BusinessSoftware

Anleitung: Scribus-Layouts automatisch aus CSV-Datei füllen

Ein Layout mit Scribus zu gestalten ist eine Sache. Aber wie kommt dann der Text hinein? Für eine einzelne Seite kann man ihn natürlich einfach hinein kopieren. Aber wenn es Dutzende Seiten mit unterschiedlichen Texten sein sollen? Etwa Visitenkarten für 20 Kollegen? Oder 120 Seiten Artikel in eine Zeitschrift? Serienbriefe? Personalisierte Broschüren? Das lässt sich auch dynamisch erledigen – womit Scribus zum Rohbau eines CMS wird.

Der Aufbau

Für die Anleitung mal ein ganz simples Beispiel: Ihr habt ein Layout für Tischkarten in Scribus gestaltet und eine Gästeliste als Tabelle. Die Tabelle beinhaltet 8 Vor- und Nachnamen, die in zwei unterschiedliche Felder im Layout gehören. Was Ihr haben wollt: Jeweils ein PDF zum Ausdrucken für jeden Gast – und zwar automatisch. Am Ende hat Ihr also 8 PDF-Dateien.

scribus generator cms
Aus jedem Datensatz, also jeder Zeile, wird eine Visitenkarte erstellt – ein Mini-CMS!

Dafür benötigt Ihr die Scribus-Erweiterung Scribus Generator, eine entsprechend präparierte Scribus-Vorlage und die Tabelle im Format CSV.

1. Scribus Generator installieren

Entpackt den Scribus Generator irgendwo, am besten unter /share/scripts im Scribus-Verzeichnis, jeder andere Ort tut es aber auch. Das war’s schon an Installation.

2. Tabelle erstellen

Wenn Ihr die Tabelle in Excel oder Calc erstellen wollt, müsst Ihr sie als CSV-Datei exportieren. Achtet beim Export darauf, dass die CSV-Datei UTF-8-kodiert ist, damit es keine Probleme mit Sonderzeichen gibt. Bei OpenOffice/LibreOffice gibt es im Speichern-unter-Dialog die Option Filteroptionen bearbeiten. Den aktiviert Ihr und stellt dann auf Unicode (UTF-8). Ihr könnt die Tabelle aber auch direkt im Texteditor erstellen – die erste Zeile muss die Spaltentitel enthalten:

vorname,nachname
jochen,schmidt
peter,petersen
tanja,meier
titus,tauwetter
karin,kraut
anton,traktor
tom,tomse
jutta,mustermann

Natürlich muss als Trenner nicht unbedingt das Komma verwendet werden, ist aber der Standard. Tipp: Benennt die CSV-Datei am besten genauso wie die Scribus-Datei – das erspart Arbeit in Schritt 4.

3. Scribus-Layout bearbeiten

Nehmt also Eure Vorlage und gebt in das Vornamen-Textfeld die Variable %VAR_vorname ein. Und im Nachnamen-Textfeld entsprechend %VAR_nachname. Statt vorname und nachname könntet Ihr die Spalten natürlich auch beliebig anders benennen, sie müssen nur mit diesen Variablen-Namen übereinstimmen. Gestaltet die Schrift nach Euren Wünschen, die finalen Texte werden genauso formatiert sein wie die Variablen.

scribus generator cms
Nun gut, Tischvorlage kann man das nicht nennen … Aber es reicht.

4. Scribus Generator konfigurieren

In Scribus startet Ihr jetzt den Generator über Scripter/Script ausführen/ScribusGenerator.py. Das Feld Scribus File ist bereits korrekt ausgefüllt, das Feld Data File nur dann, wenn CSV- und Scribus-Datei gleich heißen. Ansonsten wählt hier Eure CSV-Datei. Auch das Komma als Separator ist bereits ausgewählt. Was Ihr noch ausfüllen solltet, ist das Feld Output File Name, damit die erstellten PDF-Dateien nicht einfach nummeriert werden. Ihr könnt hier einfach Variablen aus dem Layout nehmen, beispielsweise %VAR_nachname%%VAR_vorname%. Alternativ erstellt Ihr über Merge in Single File nur ein einzelnes PDF mit mehreren Seiten. Statt PDFs lassen sich natürlich auch Scribus-Dateien erzeugen und über die Option Keep Scribus Files auch beide gleichzeitig.

scribus generator cms
Der Scribus Generator ist sehr mächtig, aber für Standardaufgaben super einfach.

5. Das Ergebnis

Der Einfachheit halber hier ein Screenshot mit einem einzelnen PDF und zwei Datensätzen, die weiteren erkennt Ihr als Seiten-Thumbnails links in der Navigation.

scribus generator cms
Die (langweiligen) Ergebnisse: Einzelne PDF-Dateien oder hier -Seiten aus jedem Datensatz.

6. Es geht noch viel mehr!

Der Scribus Generator kann auch Bilder und Farben dynamisch setzen und überhaupt noch etliches mehr – und immer läuft es nach demselben Schema wie oben. Statt eines Dateinamens wird in einem Bild beispielsweise einfach wieder eine Variable hingeschrieben und in der Tabelle werden die Dateinamen der Bilder hinterlegt – und wieder wird munter ersetzt. (Nun, theoretisch – hier hat’s unter Windows nicht geklappt.) Es lohnt sich auf jeden Fall einen Blick auf die Homepage zu werfen, wenn Ihr größere Projekte plant. Als kleiner Teaser vorab: Man kann damit auch wunderbar einfach eigene Kartenspiele basteln, beispielsweise Quartette – aber dazu in zwei, drei Wochen mehr ;)

UPDATE: So, nun klappt es auch mit den Bildern! Hier funktioniert es, wenn der Ordner mit Bildern im Ausgabeordner liegt. Beispiel:

Projekt: C:\MeinProjekt
Ausgabe: C:\MeinProjekt\output
Bilder: C:\MeinProjekt\output\pics

Auch wichtig: Um die Variable für ein Bild einzugeben, klickt zunächst den „Bild laden“-Eintrag aus dem Kontextmenü des Bildrahmens an. Bevor Ihr zum Beispiel %VAR_pic% eingebt, müsst Ihr ein anderes Bild anklicken und dessen Namen dann überschreiben – ansonsten bleibt der OK-Button ausgegraut!

scribus generator cms
Auch Kartenspiele lassen sich mit einer simplen CSV-Datei immer wieder neu machen.

Weitere Scribus-Artikel findet Ihr hier. Oder wie wäre es mit 10 Tipps für mehr Kaffeepause?

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

3 Kommentare

  1. Klasse Sache. Habe als Anfänger das Problem, dass ich ein Dokument mit 10 Seiten aus 10 Einträgen des XLS Sheets in einem scribus Dokument erzeugen will. Was passiert ist aber, dass dass die ohne Seitenumbrüche hintereinander gehängt werden, d.h. die Seiten beginnen irgendwo mittendrin und verschieben sich. Wie setzt man fest dass die Seiten eingehalten werden (Seitenumbruch nach jedem Muster)?

  2. Hallo,
    danke für die super Anleitung.
    Jetzt habe ich nur ein Problem: Ich würde gerne je Doppelseite sechs unterschiedliche Produktbeschreibungen aus einer CSV.-Datei platzieren. Leider erzeugt er mir immer die gleichen Variablen pro Doppelseite. Ab der nächsten Doppelseite verwendet er die nächste Variable. Gibt es hierfür auch eine Lösung?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Schaltfläche "Zurück zum Anfang"
Schließen

Ooopsi!

Bitte deaktiviere Deinen Adblocker.