scripter:mini-tutorial
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Nächste Überarbeitung | Vorherige Überarbeitung | ||
| scripter:mini-tutorial [2016/03/06 15:37] – angelegt julius | scripter:mini-tutorial [2018/04/01 16:15] (aktuell) – [Mini Tutorial] Verständlichkeit 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.1457275041.txt.gz · Zuletzt geändert: (Externe Bearbeitung)
