<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>https://wiki.montellug.it/index.php?action=history&amp;feed=atom&amp;title=Spyrl_2015</id>
	<title>Spyrl 2015 - Cronologia</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.montellug.it/index.php?action=history&amp;feed=atom&amp;title=Spyrl_2015"/>
	<link rel="alternate" type="text/html" href="index.php?title=Spyrl_2015&amp;action=history"/>
	<updated>2026-04-26T16:57:24Z</updated>
	<subtitle>Cronologia della pagina su questo sito</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>index.php?title=Spyrl_2015&amp;diff=23629&amp;oldid=prev</id>
		<title>Stefano.fraccaro: Spyrl</title>
		<link rel="alternate" type="text/html" href="index.php?title=Spyrl_2015&amp;diff=23629&amp;oldid=prev"/>
		<updated>2015-08-13T09:59:32Z</updated>

		<summary type="html">&lt;p&gt;Spyrl&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nuova pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Cos'è ==&lt;br /&gt;
Spyrl è un software libero scritto in Python che mostra come produrre un file pdf statico o dinamico utilizzando Sqlite3 e ReportLab. E' possibile utilizzarlo per stampare delle etichette o degli avvisi più o meno standard. Il programma può essere facilmente adattato per essere eseguito tramite un web server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Come si installa? ==&lt;br /&gt;
* scaricare lo script e i file di esempio da [http://www.stefanofraccaro.org/python/spyrl.zip spyrl.zip] sul proprio disco&lt;br /&gt;
* installare Python 3&lt;br /&gt;
* installare python-pip (''$ sudo apt-get install python-pip'')&lt;br /&gt;
* installare Pillow (''$ pip install pillow'')&lt;br /&gt;
* installare ReportLab (''$ pip install reportlab'')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Come si usa? ==&lt;br /&gt;
* personalizzare la struttura della pagina tramite il file data.xml (coordinate in millimetri, origine in basso a sinistra)&lt;br /&gt;
* personalizzare, se usato, il database app.sqlite&lt;br /&gt;
* eseguire lo script, ''$ python3 spyrl.py [out.pdf] [app.sqlite] [data.xml]''&lt;br /&gt;
&lt;br /&gt;
I parametri possono essere passati in qualsiasi ordine e vengono riconosciuti dall'estensione del file.&lt;br /&gt;
Per gestire i file .sqlite è possibile installare l'estensione 'Sqlite Manager' su Mozilla Firefox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== I tag di data.xml ==&lt;br /&gt;
* '''root''', è il nodo principale che contiene tutti gli altri&lt;br /&gt;
* '''sqlite''', contiene, se usata, la query da eseguire sul database. Il database predefinito è 'app.sqlite' ma può essere ridefinito tramite parametro dalla linea di comando.&lt;br /&gt;
* '''header''', contiene gli elementi da inserire in tutte le pagine (intestazioni e piè di pagina)&lt;br /&gt;
* '''font''', consente di definire alcune caratteristiche del carattere utilizzato per i testi&lt;br /&gt;
** '''name''', nome del font tra quelli incorporati : Courier, Courier-Bold, Courier-BoldOblique, Courier-Oblique, Helvetica, Helvetica-Bold, Helvetica-BoldOblique, Helvetica-Oblique, Symbol, Times-Bold, Times-BoldItalic, Times-Italic, Times-Roman, ZapfDingbats&lt;br /&gt;
** '''size''', dimensione del carattere&lt;br /&gt;
* '''text''', testo da visualizzare &lt;br /&gt;
** '''x''', distanza dal margine sinistro&lt;br /&gt;
** '''y''', distanza dal margine inferiore&lt;br /&gt;
** '''skip_page''', pagina in cui non deve essere visualizzato il testo (ad esempio, la prima)&lt;br /&gt;
** '''align''', permette di definire l'allineamento rispetto alla pagina (left, center, right)&lt;br /&gt;
* '''par''' o '''paragraph''', testo da visualizzare dentro area delimitata&lt;br /&gt;
** '''x''', distanza dal margine sinistro&lt;br /&gt;
** '''y''', distanza dal margine inferiore&lt;br /&gt;
** '''width''', larghezza&lt;br /&gt;
** '''height''', altezza&lt;br /&gt;
** '''skip_page''', pagina in cui non deve essere visualizzato il testo (ad esempio, la prima)&lt;br /&gt;
** '''boundary''', visualizza la cornice di contorno&lt;br /&gt;
** '''tag_start''', indica quale carattere dovrà essere utilizzato come inizio tag per ReportLab&lt;br /&gt;
** '''tag_end''', indica quale carattere dovrà essere utilizzato come fine tag per ReportLab&lt;br /&gt;
** nei testi è possibile utili zzare i seguenti segnaposti:&lt;br /&gt;
*** %nrpag%, numero di pagina&lt;br /&gt;
*** %sql-&amp;lt;nome_colonna&amp;gt;%, visualizzo il contenuto della colonna 'nome_colonna' presente nella query (es. %sql-cognome%)&lt;br /&gt;
* '''frame''', definisce un'area dove verranno visualizzati uno o più paragrafi&lt;br /&gt;
* '''img''', immagine da visualizzare &lt;br /&gt;
** '''x''', distanza dal margine sinistro&lt;br /&gt;
** '''y''', distanza dal margine inferiore&lt;br /&gt;
** '''width''', larghezza&lt;br /&gt;
** '''height''', altezza&lt;br /&gt;
** '''skip_page''', pagina in cui non deve essere visualizzata l'immagine (ad esempio, la prima)&lt;br /&gt;
** '''src''', indica il file da visualizzare&lt;br /&gt;
* '''line''', consente di disegnare una linea &lt;br /&gt;
** '''coords''', indica le coordinate della linea (x1, y1, x2, y2)&lt;br /&gt;
** '''skip_page''', pagina in cui non deve essere visualizzato il testo (ad esempio, la prima)&lt;br /&gt;
* '''rect''', consente di disegnare una rettangolo &lt;br /&gt;
** '''x''', distanza dal margine sinistro&lt;br /&gt;
** '''y''', distanza dal margine inferiore&lt;br /&gt;
** '''width''', larghezza&lt;br /&gt;
** '''height''', altezza&lt;br /&gt;
** '''skip_page''', pagina in cui non deve essere visualizzato il testo (ad esempio, la prima)&lt;br /&gt;
* '''color''', consente di specificare il colore&lt;br /&gt;
** '''fill''', colore di riempimento in R,G,B&lt;br /&gt;
** '''stroke''', colore del bordo in R,G,B&lt;br /&gt;
* '''newpage''', crea una nuova pagina&lt;br /&gt;
* '''sql_next''', passa al prossimo record in database. Se non esiste, termina lo script&lt;br /&gt;
* '''repeat''', consente di ripetere alcuni elementi per N volte. Molto utile per le etichette&lt;br /&gt;
** '''x''', distanza orizzontale fra gli elementi (se positivo, verso destra)&lt;br /&gt;
** '''y''', distanza verticale fra gli elementi (se positivo, verso l'alto)&lt;br /&gt;
** '''x_count''', numero di elementi orizzontali&lt;br /&gt;
** '''y_count''', numero di elementi verticali&lt;/div&gt;</summary>
		<author><name>Stefano.fraccaro</name></author>
	</entry>
</feed>