Ciao! On Wed, Dec 30, 2020 at 05:03:30PM +0100, Franco Peci wrote: > Di solito da Scribus con lo script export.py (che copio qui sotto) riesco ad > esportare tutto il testo di un documento impaginato con lo stesso Scribus, > compreso i nomi dei files delle immagini. > In questi giorni con Scribus 1.5.6.1 quando eseguo lo script mi restituisce:
A partire da Scribus 1.5.5+svn23928+dfsg-1 Scribus usa Python3, quindi
tutti gli script dovranno essere resi compatibili.
> Traceback (most recent call last):
> File "<string>", line 11, in <module>
> File "<string>", line 43
> except Exception, e:
> ^
> SyntaxError: invalid syntax
Questo è un tipico caso in cui la sintassi è leggermente cambiata da
Python 2 a Python 3 :)
> Chiedo se alcuni di voi esperti di Python possono suggerirmi delle modifiche
> allo script.
Non ho testato, ma noto le seguenti cose, vedi inline nello script
> ========================
> import scribus
>
>
> def exportText(textfile):
> page = 1
> pagenum = scribus.pageCount()
> T = []
> content = []
> while (page <= pagenum):
> scribus.gotoPage(page)
> d = scribus.getPageItems()
> strpage = str(page)
> T.append('Page '+ strpage + '\n\n')
> for item in d:
> if (item[1] == 2):
> imgname = scribus.getImageFile(item[0])
> T.append(item[0]+': ' + imgname + '\n')
> page += 1
> T.append('\n')
Ti consiglio di cambiare queste 3 righe:
> output_file = open(textfile,'w')
> output_file.writelines(T)
> output_file.close()
nel seguente. Non è strettamente necessario, ma lo consiglio comunque:
with open(textfile, 'w') as output_file:
output_file.writelines(T)
> endmessage = textfile + ' was created'
> scribus.messageBox("Finished", endmessage,icon=0,button1=1)
>
>
> if scribus.haveDoc():
> textfile = scribus.fileDialog('Enter name of file to save to', \
> filter='Text Files (*.txt);;All Files (*)')
> try:
> if textfile == '':
> raise Exception
> exportText(textfile)
qui è l'unico errore che vedo:
> except Exception, e:
> print e
cambia queste due righe in (e gia che ci sei, magari manda il messagio a
scribus…)
except Exception as e:
print(e)
scribus.messageBox('Python Exception', str(e), icon=0, button1=1)
>
> else:
> scribus.messageBox('Export Error', 'You need a Document open, and a
> frame selected.', \
> icon=0, button1=1)
>
Prova un po' così :)
Tra l'altro facendolo così resta compabile con Python 2.7, quindi nel
caso puoi usarlo anche altrove dove hai una versione di Scribus più
vecchia.
--
regards,
Mattia Rizzolo
GPG Key: 66AE 2B4A FCCF 3F52 DA18 4D18 4B04 3FCD B944 4540 .''`.
More about me: https://mapreri.org : :' :
Launchpad user: https://launchpad.net/~mapreri `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia `-
signature.asc
Description: PGP signature

