Wie kann ich Text in Scribus aus einer Textdatei automatisch ausfüllen?

3012
otmezger

Ich verwende Scribus, um Etiketten mit Seriennummern für meine Geräte zu drucken. Gibt es eine Möglichkeit, die Seriennummern, die ich drucken möchte, automatisch aus einer Textdatei (oder sogar einem Google-Dokument) in Scribus einzulesen und einzufügen?

Die Idee ist folgende: Ich definiere Felder in Scribus und fülle die Werte dieser Felder automatisch aus einer Textdatei aus.

Ist das möglich?

1

3 Antworten auf die Frage

1
otmezger

Ich habe Python verwendet, um die Datei zu bearbeiten.

 #!/usr/bin/python # this script populates the scribus template for the SN of FuelSpy # Olmo Mezger import re # regular expression import os.path #for os path operations  #config myFile_Tempate = "SN_Template.sla" myFile_Out = "SN_Tier_01.sla"  i_start = 1 i_number = 27*7  # check if file exists if os.path.isfile(myFile_Out): print 'aborting, output file exist and I dont want to overwrite it. Delete it manually if you want to continue', #quit() else: print 'continue'  # f_in = open(myFile_Tempate, 'r') f_out =open(myFile_Out, 'w')  # loop i = i_start for line in f_in: #print line myString = line if myString.find('%') == -1: # it does not have % f_out.write(myString)  else: myNumber = '%0*d' % (4, i) myNewString = myString.replace('%',myNumber) #print myNewString f_out.write(myNewString) print i i = i+1    f_in.close() f_out.close() print "done" 
1
Larsen

Es gibt auch den Scribus Generator, der Daten aus einer CSV-Datei entnimmt und Variablen in Scribus-Dokumenten ersetzt. Siehe http://wiki.scribus.net/canvas/Scribus_Generator

Wenn ich das nur vorher wüsste ... Danke, aber mein Skript funktioniert ziemlich gut :-) otmezger vor 11 Jahren 0
0
STTR

Scribus ITEXT gelesen

ReadSerial.ps1:

$xmldata=[xml](gc 'C:\1\menu_template1.sla') ($xmldata.SelectNodes("/SCRIBUSUTF8NEW/DOCUMENT/PAGEOBJECT[@ANNAME='Text1232']/ITEXT/@CH")).itemof(0)."#text" 

Ausgabe:

Tested number 

WriteSerial.ps1:

$xmldata=[xml](gc 'C:\1\menu_template1.sla') $xmldata.SelectNodes("/SCRIBUSUTF8NEW/DOCUMENT/PAGEOBJECT[@ANNAME='Text1232']/ITEXT") | Set-Variable xmlnode  $xmlnode.SetAttribute("CH", "New Serial") $xmldata.Save('C:\1\menu_template1.sla') 

Scribus ITEXT schreiben

Vielen Dank für Ihre Antwort. Ich habe für diese Aufgabe ein Python-Skript erstellt. Sie haben mich auf die Idee gebracht, dass das Dateiformat xml ist, sodass ich es tatsächlich über Python bearbeiten kann. Hier ist mein Skript: otmezger vor 11 Jahren 0