Scribusを使用して、デバイスのシリアル番号が記載されたラベルを印刷しています。印刷したいシリアル番号をテキストファイル(またはGoogleドキュメント)からScribusに自動的に読み取って挿入する方法はありますか?
アイデアは次のとおりです。Scribusでフィールドを定義し、このフィールドの値をテキストファイルから自動入力します。
これは可能ですか?
pythonを使用してファイルを編集しました。
#!/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"
CSVファイルからデータを取得してScribusドキュメント内の変数を置き換えるScribusジェネレーターもあります。 http://wiki.scribus.net/canvas/Scribus_Generator を参照してください
ReadSerial.ps1:
$xmldata=[xml](gc 'C:\1\menu_template1.sla')
($xmldata.SelectNodes("/SCRIBUSUTF8NEW/DOCUMENT/PAGEOBJECT[@ANNAME='Text1232']/ITEXT/@CH")).itemof(0)."#text"
出力:
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')