Seite 1 von 1

Frage(n) zu Python-Skripten

Verfasst: Mi 21. Okt 2015, 13:26
von Julius
Hallo Forum!

Angeregt durch den Beitrag im Newsletter zum PDF-Export über die Kommandozeile, habe ich mich an einem Skript für den Batch-PDF-Export versucht:

Code: Alles auswählen

import scribus
dateien = ['testdokument1.sla', 'testdatei.sla', 'test.sla']

for datei in dateien:
  scribus.openDoc(datei)
  pdf = scribus.PDFfile()
  #pdf.file = datei.replace('.sla', '.pdf')
  pdf.file = datei+'.pdf'
  pdf.save()
  datei = ''
  scribus.closeDoc()

scribus.messageBox('Export beendet', 'PDF-Export erfolgreich beendet!')
Allerdings wird nur aus der ersten Datei (testdokument1.sla) eine PDF-Datei erzeugt, danach wird die Abarbeitung des Skripts mit der folgenden Fehlermeldung abgebrochen:
fehler-skript.png
Wo liegt das Problem? Die Datei existiert (Wenn ich sie via Terminal scribus PathToFile/testdatei.sla aufrufe, wird sie anstandslos geöffnet), Skript und die Dateien liegen im selben Ordner, auch Umbenennen der Datei hat auch nichts gebracht.

2. Problem: Verstehe ich die mit Scribus ausgelieferte Dokumentation (Die unter Hilfe > Handbuch für Scribus) der Python-API richtig, dass Stile per setStyle() nur auf ganze Objekte, aber nicht auf einzelne Absätze oder Zeichen anwenden kann?
Mein Ziel ist es, fertig formatierten Text in Textrahmen zu schreiben.
Kann ich dafür die Funktionen nutzen, die Scribus mitliefert, oder muss ich das „zu Fuß“ machen (Scribus-Datei schließen, mit den Standard-Funktionen von Python den Text in die Datei schreiben, speichern und dann das Dokument wieder öffnen)? Letzteres habe ich schon mal mit PHP gemacht, also sollte es kein allzu großes Problem sein, dass mit Python zu machen...

Danke und Gruß
Julius

GELÖST: Frage(n) zu Python-Skripten

Verfasst: Sa 31. Okt 2015, 21:19
von Julius
Moin

Problem gelöst, ich musste absolute Pfade (/home/julius/Schreibtisch/testdokument1.sla statt nur testdokument1.sla angeben:

Code: Alles auswählen

#!/usr/bin/env Python
# -*- coding: utf-8 -*-
import scribus
dateien = ['/home/julius/Schreibtisch/testdokument1.sla', '/home/julius/Schreibtisch/testdatei.sla', '/home/julius/Schreibtisch/test.sla']

for datei in dateien:
  scribus.openDoc(datei)
  pdf = scribus.PDFfile()
  #pdf.file = datei.replace('.sla', '.pdf')
  pdf.file = datei+'.pdf'
  pdf.save()
  datei = ''
  scribus.closeDoc()

scribus.messageBox('Export beendet', 'PDF-Export erfolgreich beendet!')
Gruß
Julius