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