Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Scripte
In Scribus lassen sich mit in der Programmiersprache Python geschriebenen Scripten zahlreiche Aktionen automatisieren. Einige dieser Scripte sollen auf dieser Seite gesammelt werden.
Wenn sie eines davon benutzen möchten, laden sie es herunter und öffnen es in Scribus über den Menüpunkt Script → Script ausführen…
Scribus 1.5-Dokumente in 1.4.x öffnen
In Scribus 1.4.x ausgeführt, ermöglicht dieses Kompatibilitätsscript das Öffnen einfacher Dokumente, die mit 1.5 erstellt wurden.
- 1.5zu1.4.py
#!/usr/bin/env Python # -*- coding: utf-8 -*- import scribus, re slafile = scribus.fileDialog("Bitte eine Scribus 1.5.x Datei auswählen.", "Scribus-Dateien (*.sla)") filecontent = open(slafile, "r").read() filecontent = filecontent.replace('<SCRIBUSUTF8NEW Version="1.5.', '<SCRIBUSUTF8NEW Version="1.4.') filecontent = filecontent.replace('<DefaultStyle/>', '') filecontent = filecontent.replace('</StoryText>', '') filecontent = filecontent.replace('<StoryText>', '') filecontent = filecontent.replace('</Cell>', ' ') filecontent = filecontent.replace('</TableData>', '') filecontent = filecontent.replace('PTYPE="12"', 'PTYPE="7"') filecontent = filecontent.replace('PTYPE="16"', 'PTYPE="4"') # quick and dirty workaround for setting PRINTABLE attribute to 1 if not already set: filecontent = filecontent.replace('CLIPEDIT="1" PWIDTH=', 'CLIPEDIT="1" PRINTABLE="1" PWIDTH=') filecontent = filecontent.replace('CLIPEDIT="0" PWIDTH=', 'CLIPEDIT="0" PRINTABLE="1" PWIDTH=') filecontent = re.sub(r"(<DefaultStyle[^>].*?>)", "", filecontent) filecontent = re.sub(r"(<TableData[^>].*?>)", "", filecontent) filecontent = re.sub(r"(<Cell [^>].*?>)", "", filecontent) newfile = slafile.replace(".sla", "_1-4.sla") if os.path.isfile(newfile): scribus.messageBox("Fehler: Datei bereits vorhanden", "Die Datei „"+newfile+"“ ist bereits vorhanden.\nDas Script wurde abgebrochen; Geben sie einen anderes Suffix an oder verschieben sie die Datei.") else: ofile = open(newfile, "w").write(filecontent) scribus.openDoc(newfile) anzahl = scribus.pageCount() for seite in range(1,anzahl+1): scribus.gotoPage(seite) objects = scribus.getAllObjects() for x in objects: width,height = scribus.getSize(x) scribus.sizeObject(100,100,x) scribus.sizeObject(width,height,x) scribus.setLineShade(100, x)
Mit Musterseiten hat das Script Probleme (der Scripter erlaubt nicht das Bearbeiten von Musterseiten), diese müssen ggf. von Hand nachbearbeitet werden (Objektgröße ändern, damit Texte und Bilder angezeigt werden). Von Tabellen bleibt nur der beinhaltende Text übrig, Bézierkurven aus 1.5 werden in 1.4 nicht angezeigt und der Fußnotentext bei Fußnoten wird nicht übernommen.
⇒ ZIP-Datei (1,4MB) mit Script und einem Beispieldokument.
PDF-Batch Export
Dieses Script öffnet und exportiert eine Auswahl von Scribus-Dateien als PDFs.
Wird das Script ausgeführt, erscheint ein Datei-Auswahl-Dialog, in dem per gedrückter [Strg] bzw. [Ctrl]-Taste mehrere Dateien ausgewählt werden können. Anschließend werden die Dateien mit einem angehängten Suffix dateiname.sla.pdf
im gleichen Ordner wie die Ausgangsdateien abgelegt.
Im Script selbst sind noch zwei Änderungen vorgesehen:
- Wird die Zeile
dateien = QtGui.QFileDialog.getOpenFileNames(None, 'Scribus Dateien ausw'+u„\u00E4“+'hlen',„“, „Scribus-Dateien (*.sla *.sla.gz);;Alle Dateien (*)“)
per vorangestelltem#
auskommentiert und das Kommentarzeichen vor der nächsten Zeile entfernt, erscheint keine Dateiabfrage mehr, sondern die zu exportierenden Dateien werden als Liste in der Zeile darunter festgelegt (siehe Beispiele; absolute Pfade verwenden!) - Wird die Zeile
pdf.file = str(datei)+'.pdf
' auskommentiert und das Kommentarzeichen vor der nächsten Zeile entfernt, werden die PDFs stattdateiname.sla.pdf
unterdateiname.pdf
abgespeichert.
- pdf-export.py
#!/usr/bin/env Python # -*- coding: utf-8 -*- import scribus import re from PyQt4 import QtGui dateien = QtGui.QFileDialog.getOpenFileNames(None, 'Scribus Dateien ausw'+u"\u00E4"+'hlen',"", "Scribus-Dateien (*.sla *.sla.gz);;Alle Dateien (*)") #dateien = ['/home/julius/Schreibtisch/Scribus-Experimente/testdokument1.sla', '/home/julius/Schreibtisch/Scribus-Experimente/testdatei.sla', '/home/julius/Schreibtisch/Scribus-Experimente/test.sla'] counter = 0 for datei in dateien: scribus.messagebarText("Bearbeite Datei „"+datei+"“") scribus.openDoc(datei) pdf = scribus.PDFfile() pdf.file = str(datei)+'.pdf' #pdf.file = re.sub(r"(.sla)?(.sla)$", ".pdf", str(datei)) pdf.save() scribus.closeDoc() counter = counter + 1 if counter > 0: scribus.messageBox('Export beendet', 'PDF-Export erfolgreich beendet!') else: scribus.messageBox('PDF-Export', 'Keine Dateien ausgewählt!')
Fehlende Bilder finden
Dieses Skript findet fehlende Bilder und verlinkt sie.
https://github.com/aoloe/scribus-script-repository/tree/master/images-missing-relink
Weitere Skripte...
… finden sich jeweils in den entsprechenden Kategorien im Scribus-Wiki und im deutschen Forum.