scripter:mini-tutorial
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige ÜberarbeitungLetzte ÜberarbeitungBeide Seiten, nächste Überarbeitung | ||
scripter:mini-tutorial [2016/03/06 15:37] – angelegt julius | scripter:mini-tutorial [2017/01/14 16:53] – [Mehrere Objekte bearbeiten] Link zu setStyle julius | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Mini Tutorial ====== | ====== Mini Tutorial ====== | ||
- | **ToDo**: Einführung schreiben | + | Mit Scripten lässt sich Scribus fast beliebig erweitern, Sie könnten beispielsweise... |
- | ===== Richtige Zeichenkodierung: ===== | + | * Einen speziell angepassten Kalender erzeugen |
+ | * Aus einer Datenbank Daten holen und in ein Scribus-Dokument einfügen (beispielsweise einen Katalog aus einem Webshop heraus erzeugen) | ||
+ | * Artikel eines Magazins mit einem Content Managment System (CMS) synchronisieren | ||
+ | * Serienbriefe erzeugen | ||
+ | * Formen zeichnen | ||
+ | * uvm. | ||
+ | |||
+ | Scripte in Scribus werden in der Programmiersprache Python (Version 2) geschrieben und kommunizieren über das Modul '' | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | Wenn sie ein Skript ausführen möchten, öffnen sie es in Scribus über den Menüpunkt //Script// -> //Script ausführen...// | ||
+ | |||
+ | ===== Richtige Zeichenkodierung ===== | ||
<code python> | <code python> | ||
# | # | ||
Zeile 9: | Zeile 22: | ||
</ | </ | ||
- | Weitere mögliche Werte für die Codierung sind '' | + | Die erste Zeile legt fest, dass es sich um ein Python-Programm handelt und wird eigentlich |
- | ===== Erkennen, ob das Skript innerhalb von Scribus ausgeführt wird ===== | + | Als nächstes legen wir die richtige Zeichenkodierung fest. Da der Standard in Python ASCII ist, sollten wir direkt das bessere UTF-8 wählen, um keine Probleme mit ä, ö und ähnlichen nicht-ASCII-Zeihen zu bekommen.\\ |
+ | Weitere mögliche Werte für die Codierung sind '' | ||
+ | |||
+ | ===== Einen Textrahmen anlegen | ||
+ | <file python textframe.py> | ||
+ | # -*- coding: utf-8 -*- | ||
+ | import scribus | ||
+ | |||
+ | # Wenn kein Dokument geöffnet ist, Dialog zum Erstellen eines neuen Dokuments anzeigen: | ||
+ | if scribus.haveDoc() == False: | ||
+ | scribus.newDocDialog() | ||
+ | |||
+ | # Textrahmen erzeugen: (x-Position, | ||
+ | name_des_rahmens = scribus.createText(30, | ||
+ | # ... mit Text füllen ... | ||
+ | scribus.setText(' | ||
+ | # ... Textfarbe festlegen .... | ||
+ | scribus.setTextColor(' | ||
+ | # ... und zuletzt Größe festlegen | ||
+ | scribus.setFontSize(20, | ||
+ | |||
+ | # alternativ Absatzstil festlegen (Stil muss natürlich angelegt sein!) -> zum Ausführen Komentarzeichen # entfernen! | ||
+ | # | ||
+ | </ | ||
+ | |||
+ | Dieses Skript fragt als erstes mit einer '' | ||
+ | |||
+ | <note tip>In Scribus lassen sich derzeit nur Absatzstile mit dem Scripter anlegen.</ | ||
+ | |||
+ | Noch ein paar Anmerkungen zu den **Maßeinheiten**: | ||
+ | Wenn Sie in Scripten [[scripter: | ||
<code python> | <code python> | ||
+ | # -*- coding: utf-8 -*- | ||
+ | import scribus | ||
+ | |||
+ | # Maßeinheit auslesen: | ||
+ | masseinheit = scribus.getUnit() | ||
+ | scribus.messageBox(' | ||
+ | # Ihre Maßeinheit setzen, z. B. Zentimeter: | ||
+ | scribus.setUnit(scribus.UNIT_CM) | ||
+ | |||
+ | # Manipulationen am Dokument mit Angaben in Zentimetern, | ||
+ | scribus.messageBox(' | ||
+ | |||
+ | # Wieder ursprüngliche Maßeinheit einsetzen: | ||
+ | scribus.setUnit(masseinheit) | ||
+ | scribus.messageBox(' | ||
+ | </ | ||
+ | Nach jedem Schritt lassen wir uns die Maßeinheit anzeigen, wobei wir beobachten können, dass Scribus die [[scripter: | ||
+ | |||
+ | ===== Text an markiertes Textfeld anhängen ===== | ||
+ | In diesem Beispiel wählen Sie //ein// Textfeld aus und führen dann ein Skript aus, das an den Text das aktuelle Datum und die Uhrzeit anfügt (deshalb auch '' | ||
+ | <file python insert-datetime.py> | ||
+ | # -*- coding: utf-8 -*- | ||
+ | import scribus | ||
+ | import datetime | ||
+ | |||
+ | anzahl = scribus.selectionCount() | ||
+ | |||
+ | if anzahl == 0: | ||
+ | scribus.messageBox(' | ||
+ | if anzahl == 1: | ||
+ | zeit = datetime.datetime.now() | ||
+ | scribus.insertText(' | ||
+ | if anzahl > 1: | ||
+ | scribus.messageBox(' | ||
+ | </ | ||
+ | |||
+ | Indem wir mit einer '' | ||
+ | <file python insert-multiple.py> | ||
+ | # -*- coding: utf-8 -*- | ||
+ | import scribus | ||
+ | import datetime | ||
+ | |||
+ | anzahl = scribus.selectionCount() | ||
+ | |||
+ | |||
+ | if anzahl == 0: | ||
+ | scribus.messageBox(' | ||
+ | if anzahl > 0: | ||
+ | zeit = datetime.datetime.now() | ||
+ | count = 0 | ||
+ | while count < anzahl: | ||
+ | | ||
+ | count = count + 1 | ||
+ | | ||
+ | </ | ||
+ | |||
+ | ===== Mehrere Objekte bearbeiten ===== | ||
+ | Indem man mit einer '' | ||
+ | <file python setStyle.py> | ||
+ | # -*- coding: utf-8 -*- | ||
+ | import scribus | ||
+ | |||
+ | anzahl = scribus.selectionCount() | ||
+ | |||
+ | if anzahl >= 1: | ||
+ | for i in xrange(0, anzahl): | ||
+ | scribus.selectObject(scribus.getSelectedObject(i)) | ||
+ | scribus.setStyle(" | ||
+ | #Namen anzeigen, falls benötigt... | ||
+ | # | ||
+ | else: | ||
+ | scribus.messageBox(" | ||
+ | </ | ||
+ | |||
+ | ===== Erkennen, ob das Skript innerhalb von Scribus ausgeführt wird ===== | ||
+ | <file python erkennung.py> | ||
# | # | ||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||
Zeile 24: | Zeile 143: | ||
# Das eigentliche Programm: | # Das eigentliche Programm: | ||
scribus.messageBox(" | scribus.messageBox(" | ||
- | </code> | + | </file> |
Dieses Skript beendet sich, wenn es nicht innerhalb von Scribus läuft. Alternativ kann man auch Skripte schreiben, die sowohl innerhalb von Scribus als auch von der Kommandozeile aus laufen. | Dieses Skript beendet sich, wenn es nicht innerhalb von Scribus läuft. Alternativ kann man auch Skripte schreiben, die sowohl innerhalb von Scribus als auch von der Kommandozeile aus laufen. | ||
===== Scribus-Version abfragen und auswerten ===== | ===== Scribus-Version abfragen und auswerten ===== | ||
Einige Funktionen sind erst ab einer bestimmten Scribus-Version verfügbar, beispielsweise der [[seiten_befehle# | Einige Funktionen sind erst ab einer bestimmten Scribus-Version verfügbar, beispielsweise der [[seiten_befehle# | ||
- | <code python> | + | <file python |
- | # | + | |
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||
import sys, scribus | import sys, scribus | ||
- | if scribus.scribus_version_info[: | + | if scribus.scribus_version_info[: |
scribus.messageBox(" | scribus.messageBox(" | ||
- | " | + | " |
sys.exit() | sys.exit() | ||
# Das eigentliche Programm: | # Das eigentliche Programm: | ||
scribus.messageBox(" | scribus.messageBox(" | ||
- | </code> | + | </file> |
scripter/mini-tutorial.txt · Zuletzt geändert: 2018/04/01 16:15 von julius