Apache FOP Un esempio pratico
|
|
|
- Gennara Casini
- 10 anni fa
- Visualizzazioni
Transcript
1 Apache FOP Un esempio pratico Introduzione FOP è una libreria Java creata dalla Apache Foundation, che permette di generare diverse tipologie di documenti (PDF, POSTSCRIPT etc ). La libreria si basa sulla tecnologia XSLT, ed in particolare sul linguaggio XSL-FO. L utilizzo di FOP quindi, richiede la conoscenza seppur parziale di diversi linguaggi. Oltre a Java, bisogna almeno conoscere i rudimenti di XML, XSL, XSL-FO e XPATH. Facciamo un esempio: se volessimo generare un file PDF con FOP, dovremmo creare del codice Java, che caricato un file (o comunque una fonte qualsiasi) XML, lo trasforma tramite un file (o fonte qualsiasi) XSL, in file PDF. Ovviamente il file XML deve contenere i dati da visualizzare nel documento PDF, mentre il file XSL deve contenere le regole per la formattazione del documento stesso. Il file XSL, deve essere scritto utilizzando anche il linguaggio XSL-FO (Formatting Objects) che serve proprio per formattare tipologie di file come PDF. Ovviamente l XSL, richiede in qualche modo anche l utilizzo del linguaggio XPATH, per la ricerca dei nodi XML. Il flusso di lavoro da seguire per l utilizzo di FOP è quindi il seguente: 1) Progettare un file XML capace di ospitare tutti i dati da visualizzare nel PDF 2) Creare del codice Java che formatta dinamicamente il file XML 3) Creare un file XSL che sfruttando XSL-FO (e XPATH) riesce a formattare il file PDF visualizzando tutti i dati presenti nel file XML 4) Creare il codice Java che sfruttando le classi messe a disposizione da FOP, presi in input il file XML e il file XSL genera il file PDF Esempio Supponiamo di voler creare dinamicamente un semplice curriculum come quello mostrato in figura 1. Claudio De Sio Cesari [email protected] 1
2 Figura 1: un esempio di curriculum Come è possibile osservare dalla Figura 1, il template del curriculum può essere suddiviso in diverse aree. La Figura 2 prova a schematizzare il layout del curriculum individuando delle aree ben precise. Claudio De Sio Cesari [email protected] 2
3 Figura 2: aree del curriculum Dove: 1) L intestazione della pagina: viene utilizzata per includere il nome e la professione, ed è presente su ogni pagina del curriculum. 2) Piè di pagina: viene utilizzata per includere altre informazioni personali come il numero di telefono e l indirizzo , ed è presente su ogni pagina del curriculum. 3) Titolo: dove appare il la stringa fissa Curriculum Vitae e sotto il nome del candidato. 4) Informazioni Personali: sezione dedicata alle informazioni personali. Le informazioni personali immesse possono variare da candidato a candidato in numero oltre che in contenuti. Per esempio un candidato potrebbe voler esplicitare il suo sito personale mentre un altro potrebbe voler segnalare le sue cinque . 5) Istruzione e Formazione: sezione dedicata alle informazioni sull istruzione e la formazione del candidato. Di solito oltre al titolo di studio il candidato può esplicitare anche le certificazioni professionali acquisite ed eventuali corsi di formazione seguiti. Claudio De Sio Cesari [email protected] 3
4 6) Esperienze lavorative: sezione dedicata alle esperienze lavorative. Ovviamente questa sezione potrebbe essere particolarmente differente in lunghezza (oltre che ovviamente in contenuti) tra candidati differenti. 7) Ulteriori Informazioni: sezione dedicata all inserimento di qualsiasi altra informazione il candidato ritiene di esplicitare nel suo curriculum. Per semplificare l apprendimento al lettore cercheremo di costruiremo il nostro curriculum gradualmente sezione dopo sezione. Essendo solo un esempio non creeremo il codice Java che crea il file XML dinamicamente (punto 2), ma semplicemente definiremo un file XML statico. Preparazione Prima di iniziare, listiamo tutti gli strumenti di cui abbiamo bisogno. Per prima cosa abbiamo bisogno di un Java Development Kit ed anche se non strettamente necessario di un editor per poter scrivere il nostro codice Java. Nel nostro caso abbiamo utilizzato un JDK versione 1.5.0_04, e come editor EJE versione 2.5 (scaricabile gratuitamente da Abbiamo bisogno ovviamente di FOP. È possibile scaricare FOP versione da questo indirizzo: In realtà a noi occorrono solo le librerie di FOP, e non tutto lo strumento per sviluppare. Quindi una volta scaricato FOP, fate in modo che il vostro editor punti con la variabile classpath al file fop.jar che si trova nella cartella build di FOP, o altrimenti copiate tale file nella cartella JDK/jre/lib/ext. È probabile che vi sia utile anche un editor per XML. Un ottima scelta, ma a pagamento, è XMLSpy (su è possibile scaricare una demo). Infine ovviamente occorre che sulla vostra macchina sia installato un PDF Reader come Adobe Acrobat Reader (scaricabile gratuitamente da Applicazione Java Ma iniziamo dall applicazione Java che sfruttando le librerie messe a disposizione da FOP, esegue la trasformazione XSLT che permette di formattare il nostro curriculum in formato PDF. A tale scopo, come già asserito, essa ha bisogno di utilizzare una fonte da cui prelevare i dati, formattata in formato XML, e una fonte XSL che definisce il layout del curriculum, e che utilizza il linguaggio XSL-FO per creare un file PDF. Nel nostro caso, entrambe queste fonti saranno semplici file, ma con poche modifiche sarebbe possibile per esempio creare il file XML dinamicamente. Consideriamo quindi la seguente classe: 1. import java.io.*; 2. import org.apache.fop.apps.*; 3. import org.apache.fop.messaging.*; 4. import org.xml.sax.*; public class CurriculumCreator { 7. private static final String XML_FILE = "C:/Curriculum.xml"; 8. private static final String XSL_FILE = "C:/Curriculum.xsl"; 9. private static final String PDF_FILE = "C:\\Curriculum.pdf"; public static void main(string []args) throws Exception { 12. CurriculumCreator curriculumcreator = new CurriculumCreator(); 13. curriculumcreator.printcurriculum(); 14. } public void printcurriculum() throws Exception { 17. ByteArrayOutputStream out = new ByteArrayOutputStream(); 18. FileOutputStream pdffos = new FileOutputStream(PDF_FILE); 19. FileInputStream xslfileis = null; 20. FileInputStream xmlfileis = null; 21. try { 22. // Trasferimento del file XML in un array di byte Claudio De Sio Cesari [email protected] 4
5 23. File xmlfile = new File(XML_FILE); 24. xmlfileis = new FileInputStream(xmlFile); 25. ByteArrayOutputStream xmloutput = new ByteArrayOutputStream(); 26. byte xmlbuffer[] = new byte[(int) xmlfile.length()]; 27. for (int count = xmlfileis.read(xmlbuffer); count > 0; count = xmlfileis.read(xmlbuffer)) { 28. xmloutput.write(xmlbuffer, 0, count); 29. } 30. byte[] xml = xmloutput.tobytearray(); 31. // Trasferimento del file XSL in un array di byte 32. File xslfile = new File(XSL_FILE); 33. xslfileis = new FileInputStream(xslFile); 34. ByteArrayOutputStream xsloutput = new ByteArrayOutputStream(); 35. byte xslbuffer[] = new byte[ (int) xslfile.length()]; 36. for (int count = xslfileis.read(xslbuffer); count > 0; count = xslfileis.read(xslbuffer)) { 37. xsloutput.write(xslbuffer, 0, count); 38. } 39. byte[] xsl = xsloutput.tobytearray(); 40. //Trasformazione XSLT 41. TraxInputHandler input = new TraxInputHandler( 42. new InputSource(new ByteArrayInputStream(xml)), new InputSource(new ByteArrayInputStream(xsl))); 43. Driver driver = new Driver(); 44. driver.setrenderer(driver.render_pdf); 45. driver.setoutputstream(out); 46. input.run(driver); 47. // per testare il pdf 48. byte[] content = out.tobytearray(); 49. pdffos.write(content); 50. pdffos.flush(); 51. Runtime runtime = Runtime.getRuntime(); 52. runtime.exec("explorer " + PDF_FILE); 53. } 54. catch(exception exc) { 55. exc.printstacktrace(); 56. } 57. finally { 58. pdffos.close(); 59. xslfileis.close(); 60. xmlfileis.close(); 61. out.close(); 62. } 63. } 64. } In pratica si tratta di una semplice classe eseguibile, che dopo aver importato le necessarie librerie, ed aver dichiarato le tre costanti che rappresentano i file XML, XSL e PDF che saranno coinvolti, non fa altro che lanciare il metodo printcurriculum(), dal metodo main(). Tale metodo, trasferisce il contenuto dei file XML e XSL in due array di byte chiamati per l appunto xml e xsl, per poi realizzare la trasformazione tra le righe 40 e 46. Le righe da 48 a 50 trasferiscono l array di byte che contiene il risultato della trasformazione in un file PDF. Le righe 51 e 52 sono opzionali e servono solamente per aprire il file appena creato. File XML Ora consideriamo il seguente file XML che contiene tutti i dati che vogliamo visualizzare nel nostro curriculum: <?xml version="1.0" encoding="utf-8"?> <curriculum> <header>dott. Mario Rossi Java Developer</header> <name>mario Rossi</name> <personalinformations> Claudio De Sio Cesari [email protected] 5
6 <title>personali</title> <items> <name> <title>nome</title> <value>mario Rossi</value> </name> <bornin> <title>nato a</title> <value>verona, 30/01/1978</value> </bornin> <mobile> <title>cellulare</title> <value> </value> </mobile> <phone> <title>telefono</title> <value> </value> </phone> <fax> <title>fax</title> <value> </value> </fax> < > <title> </title> </ > <internet> <title>internet</title> <value> </internet> </items> </personalinformations> <education> <title> Istruzione e Formazione </title> <items> <studies> <title>titolo di Studio</title> <value>2001, Università di Pisa - Laurea in Matematica</value> </studies> <master> <title>specializzazione</title> <value>2002, Master in Tecnologie Web presso il Politecnico di Milano</value> </master> <certification> <title>certificazione Professionale</title> <value>2004, Java SCJP 1.4</value> </certification> </items> </education> <professionalexperience> <title> Esperienze Professionali </title> <items> <experience> <title>qwerty Electronics SRL</title> <value>2003, Programmatore Java</value> </experience> <experience> <title>abcde Solutions SRL</title> <value> , Programmatore Java e Web Master</value> </experience> <experience> <title>pinco Pallino Software SPA</title> <value>2004 a oggi, Analista programmatore con ottima conoscenza Java-J2EE, XML, SQL. Buona conoscenza Javascipt e PHP</value> Claudio De Sio Cesari [email protected] 6
7 </experience> </items> </professionalexperience> <other/> <footer>internet: </footer> </curriculum> La progettazione di un file XML di questo tipo, richiede tempo, ed è un passo fondamentale che non si può saltare. Inoltre bisogna tenere conto che è probabile che in un sistema reale non si utilizzino file XML statici come il precedente, bensì bisognerà crearli al volo, dinamicamente, utilizzando i dati presi da un eventuale database. Quindi non solo sarà difficile progettare tale struttura, ma spesso, è anche difficile implementarne il codice. Nel nostro caso, abbiamo cercato di rendere le cose più semplici possibili. Il nostro file XML infatti, ha una struttura piuttosto omogenea. Infatti, il tag curriculum contiene come figli diretti, dei tag che rappresentano le sezioni principali della struttura del nostro curriculum, come header, name, education, personalinformation, professionalexperience e other (che però un tag vuoto). I campi che possono contenere diverse voci come per esempio le esperienze professionali, hanno uno schema fisso. Contengono un sotto-tag denominato title, che rappresenta il titolo della sezione del documento che viene visualizzato sulla sinistra della pagina. A seguire è sempre definito un tag items, contenente a sua volta una serie di sotto-tag che rappresentano le voci da visualizzare. Ognuno di questi tag, è a sua volta diviso in due sotto-tag: title e value. Il tag title deve contenere il titolo della voce mentre value, deve contenere il dettaglio della voce: <professionalexperience> <title> Esperienze Professionali </title> <items> <experience> <title>qwerty Electronics SRL</title> <value>2003, Programmatore Java</value> </experience> <experience> <title>abcde Solutions SRL</title> <value> , Programmatore Java e Web Master</value> </experience> <experience> <title>pinco Pallino Software SPA</title> <value>2004 a oggi, Analista programmatore con ottima conoscenza Java-J2EE, XML, SQL. Buona conoscenza Javascipt e PHP</value> </experience> </items> </professionalexperience> La struttura standard dei tag figli del tag principale curriculum, ci permetterà di scrivere del codice XSL più semplice. File XSL Non ci resta che creare il file XSL che deve formattare i dati del file XML. Come già asserito utilizzeremo un mix di linguaggi all interno di esso. Tra le strutture definite dal linguaggio XSL come i template e i cicli for-each, si inseriranno le formattazioni definite dal linguaggio XSL-FO, come le table. Inoltre XPATH sarà utilizzato per recuperare i tag in maniera efficiente. Segue il listato del file XSL: <?xml version="1.0" encoding="utf-8"?> Claudio De Sio Cesari [email protected] 7
8 <xsl:stylesheet xmlns:xsl=" xmlns:fo=" version="1.0"> <!--===============================TEMPLATE PRINCIPALE==============================--> <xsl:template match="*"> <fo:root> <fo:layout-master-set> <fo:simple-page-master master-name="page" page-height="297mm" page-width="210mm" margin-top="10mm" margin-bottom="10mm" margin-left="25mm" margin-right="25mm"> <fo:region-before region-name="xsl-region-before" extent="4.8cm"/> <fo:region-body margin-top="3.2cm"/> <fo:region-after region-name="xsl-region-after" extent="1cm"/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="page"> <fo:static-content flow-name="xsl-region-before" display-align="auto"> <xsl:call-template name="header"/> </fo:static-content> <fo:static-content flow-name="xsl-region-after" display-align="auto"> <xsl:call-template name="footer"/> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <xsl:call-template name="detail"/> </fo:flow> </fo:page-sequence> </fo:root> <!--===============================TEMPLATE HEADER==============================--> <xsl:template name="header"> <fo:block font-size="14pt" text-align="center"> <fo:table width="100%" font-size="11pt"> <fo:table-column column-number="1"/> <fo:table-body> <fo:table-row> <fo:table-cell border-bottom-style="solid" border-top="1pt" border-bottomcolor="grey" border-top-color="grey" border-bottom="1pt" border-top-style="solid"> <fo:block space-before="1mm"> <xsl:value-of select="/curriculum/header"/> </fo:table-row> </fo:table-body> </fo:table> <fo:block font-size="16pt" text-align="center" space-before="10mm"> Vitae <fo:block font-size="16pt" text-align="center"> <xsl:value-of select="/curriculum/name"/> <!--===============================TEMPLATE FOOTER==============================--> <xsl:template name="footer"> <fo:block text-align="center"> <fo:table width="100%" font-size="12pt"> <fo:table-column column-number="1"/> <fo:table-body> <fo:table-row> <fo:table-cell border-bottom-style="solid" border-top="1pt" border-bottomcolor="grey" border-top-color="grey" border-bottom="1pt" border-top-style="solid"> <fo:block space-before="1mm"> <xsl:value-of select="/curriculum/footer"/> </fo:table-row> </fo:table-body> </fo:table> Claudio De Sio Cesari
9 <!--===============================TEMPLATE DETAIL==============================--> <xsl:template name="detail"> <fo:block font-size="14pt" text-align="left"> <fo:table width="100%" font-size="12pt"> <fo:table-column column-number="1" column-width="60pt"/> <fo:table-column column-number="2"/> <fo:table-body> <xsl:call-template name="detailrow"> <xsl:with-param name="element" select="/curriculum/personalinformations/items/*"/> </xsl:call-template> <xsl:call-template name="voidrow"/> <xsl:call-template name="detailrow"> <xsl:with-param name="element" select="/curriculum/education/items/*"/> </xsl:call-template> <xsl:call-template name="voidrow"/> <xsl:call-template name="detailrow"> <xsl:with-param name="element" select="/curriculum/professionalexperience/items/*"/> </xsl:call-template> <xsl:call-template name="voidrow"/> <xsl:call-template name="detailrow"> <xsl:with-param name="element" select="/curriculum/other/items/*"/> </xsl:call-template> </fo:table-body> </fo:table> <!--===============================TEMPLATE DETAILROW==============================--> <xsl:template name="detailrow"> <xsl:param name="element"/> <fo:table-row> <fo:table-cell column-number="1" font-size="13pt" font-style="italic"> <fo:block font-weight="bold" space-before="5mm"> <xsl:value-of select="$element/../../title"/> <fo:table-cell column-number="2"> <xsl:for-each select="$element"> <fo:block margin-left="10mm" space-before="5mm"> <xsl:value-of select="title"/>: <xsl:value-of select="value"/> </xsl:for-each> </fo:table-row> <!--===============================TEMPLATE VOIDROW==============================--> <xsl:template name="voidrow"> <fo:table-row> <fo:table-cell number-columns-spanned="2"> <xsl:call-template name="voidline"/> </fo:table-row> <!--===============================TEMPLATE VOIDLINE==============================--> <xsl:template name="voidline"> <fo:block white-space-collapse="false"> <xsl:value-of select="$void"/> <!-- ======================================VARIABILI====================================--> <xsl:variable name="void"> <xsl:text> </xsl:text> </xsl:variable> </xsl:stylesheet> Claudio De Sio Cesari
10 Il file è comunque dichiarato come un normale file XSL, la differenza sta nel fatto che con il tag: <xsl:stylesheet xmlns:xsl=" xmlns:fo=" version="1.0"> andiamo a dichiarare che utilizzeremo il namespace xsl per i tag XSL, e il namespace fo per i tag XSL-FO. E facile notare come la struttura del file in questione sia quindi costituita dai classici template XSL, di cui solo il primo che incontriamo si basa sull attributo match, ed in particolare tale attributo è valorizzato con il valore *. Quindi è questo il template principale che si applica ad ogni tag del file XML, si tratta quindi una sorta di metodo main() del file XSL. Tutti gli altri template del documento sono invece definiti con l attributo name, e sono quindi invocati tramite i tag di tipo call-template. Per esempio con l istruzione: <xsl:call-template name="voidrow"/> stiamo invocando il seguente template: <xsl:template name="voidrow"> <fo:table-row> <fo:table-cell number-columns-spanned="2"> <xsl:call-template name="voidline"/> </fo:table-row> Analizziamo quindi il primo template (quello principale da cui partono tutte le invocazioni agli altri template), che riportiamo di seguito nuovamente per rendere più agevole la consultazione: <xsl:template match="*"> <fo:root> <fo:layout-master-set> <fo:simple-page-master master-name="page" page-height="297mm" page-width="210mm" margin-top="10mm" margin-bottom="10mm" margin-left="25mm" margin-right="25mm"> <fo:region-before region-name="xsl-region-before" extent="4.8cm"/> <fo:region-body margin-top="3.2cm"/> <fo:region-after region-name="xsl-region-after" extent="1cm"/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="page"> <fo:static-content flow-name="xsl-region-before" display-align="auto"> <xsl:call-template name="header"/> </fo:static-content> <fo:static-content flow-name="xsl-region-after" display-align="auto"> <xsl:call-template name="footer"/> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <xsl:call-template name="detail"/> </fo:flow> </fo:page-sequence> </fo:root> Si può notare come venga dichiarato il tag root, nel quale vengono dichiarati a loro volta i tag layout-master-set e page-sequence. Il tag layout-master-set permette di definire le misure della pagine del documento che sarà generato. Nel nostro caso, con il seguente codice: <fo:simple-page-master master-name="page" page-height="297mm" page-width="210mm" margintop="10mm" margin-bottom="10mm" margin-left="25mm" margin-right="25mm"> <fo:region-before region-name="xsl-region-before" extent="3.2cm"/> Claudio De Sio Cesari [email protected] 10
11 <fo:region-body margin-top="3.2cm" margin-bottom="2cm" /> <fo:region-after region-name="xsl-region-after" extent="1cm"/> </fo:simple-page-master> abbiamo stabilito che il nostro documento avrà pagine alte 297 millimetri e larghe 210 millimetri, ovvero il tipico formato A4. Inoltre abbiamo definito che i contenuti della pagina devono rispettare determinati margini dai bordi pagina. Nel nostro caso abbiamo stabilito che i margini verticali siano di 10 millimetri, mentre quelli orizzontali siano di 25 millimetri. Infine abbiamo definito tre aree region-before che conterrà l intestazione della pagina, region-body che conterrà il dettaglio del curriculum e region-after che conterrà il piè di pagina. Notare che abbiamo definito anche le estensioni in centimetri tramite l attributo extent sia per l intestazione che per il piè di pagina. Per l area destinata a contenere il dettaglio del curriculum, invece sono stati definiti i margini entro i quali deve essere definito. In particolare se il dettaglio è troppo grande per entrare all interno dell area ad esso destinato, allora verrà creata una nuova pagina del documento automaticamente, ovviamente contenente l intestazione e il piè di pagina anch essa. Quindi la gestione di come venga distribuito il contenuto della documento nelle varie pagine, è tutto incluso nel tag layout-masterset. Il successivo tag : <fo:page-sequence master-reference="page"> <fo:static-content flow-name="xsl-region-before" display-align="auto"> <xsl:call-template name="header"/> </fo:static-content> <fo:static-content flow-name="xsl-region-after" display-align="auto"> <xsl:call-template name="footer"/> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <xsl:call-template name="detail"/> </fo:flow> </fo:page-sequence> associa le aree definite nel tag precedente ai contenuti. È abbastanza semplice e intuitivo capire il significato del codice precedente. Vengono invocati i template Header e Footer come contenuti statici delle aree region-before e region-after. Viene invece definito come contenuto di tipo flusso (flow) il template Detail. Possiamo quindi andare ora ad analizzare proprio questi template. Partiamo dal template Header: <xsl:template name="header"> <fo:table width="100%" text-align="center" font-size="11pt"> <fo:table-column column-number="1"/> <fo:table-body> <fo:table-row> <fo:table-cell border-bottom-style="solid" border-top="1pt" border-bottomcolor="grey" border-top-color="grey" border-bottom="1pt" border-top-style="solid"> <fo:block space-before="1mm"> <xsl:value-of select="/curriculum/header"/> </fo:table-row> </fo:table-body> </fo:table> <fo:block font-size="16pt" text-align="center" space-before="10mm"> Curriculum Vitae <fo:block font-size="16pt" text-align="center"> <xsl:value-of select="/curriculum/name"/> Claudio De Sio Cesari [email protected] 11
12 In questo template viene dichiarata una tabella con allineamento centrato, larghezza massima e dimensione del font di 11 pixel. N.B. : con il linguaggio XSL-FO è necessario utilizzare molto spesso le tabelle per definire le posizioni degli elementi contenuti. Subito dopo la dichiarazione della tabella è necessario dichiarare da quante colonne essa è formata, ed assegnare ad ogni colonna un numero con il tag: <fo:table-column column-number="1"/> Subito viene dichiarato il body della tabella (table-body), un riga della tabella (table-row), e una cella (table-cell) della riga appena dichiarata. Tramite gli attributi del tag table-cell, abbiamo poi dichiarato che i bordi superiore e inferiore di tale cella debbano avere un spessore di 1 pixel di colore grigio e stile solid, Ogni elemento che deve diventare visibile sul documento deve essere contenuto in un tag di tipo block. Inoltre con l attributo space-before, abbiamo garantito al contenuto del blocco una distanza dal bordo superiore di 1 millimetro. Poi con la classica istruzione XSL: <xsl:value-of select="/curriculum/name"/> Abbiamo prelevato il valore del tag name che si trova sotto il tag curriculum del file XML. Il valore dell attributo select è un esempio di espressione XPATH. In realtà questa espressione, essendo banale, non rende l idea della potenza di XPATH. Ma per ora è importante sottolineare che stiamo utilizzando anche questo terzo linguaggio. È semplice comprendere che i seguenti due tag di tipo block vanno a stampare la scritta Curriculum Vitae centrata, con il nome del candidato subito dopo, prelevato dal file XML. In figura 3 possiamo notare il risultato della trasformazione XSL per quanto riguarda la parte dell intestazione della pagina e del nome del candidato. Figura 3: l intestazione Il lettore potrà facilmente analizzare il template Footer essendo esso molto simile al template Header. Concentriamoci piuttosto sul template Detail. Questo template non fa altro che organizzare una tabella all interno della quale vengono chiamati per ogni riga i template VoidRow e DetailRow, Il template VoidRow non fa altro che creare una riga vuota. Più interessante è il template DetailRow, che è praticamente il cuore del dettaglio del documento e che riportiamo di seguito: <xsl:template name="detailrow"> <xsl:param name="element"/> <fo:table-row> <fo:table-cell column-number="1" font-size="13pt" font-style="italic"> <fo:block font-weight="bold" space-before="5mm"> <xsl:value-of select="$element/../../title"/> <fo:table-cell column-number="2"> <xsl:for-each select="$element"> Claudio De Sio Cesari [email protected] 12
13 <fo:block margin-left="10mm" space-before="5mm"> <xsl:value-of select="title"/>: <xsl:value-of select="value"/> </xsl:for-each> </fo:table-row> Si tratta di un template che definisce un parametro che viene chiamato element. Questo assumerà il valore passatogli dal tag with-param. Per esempio la prima volta questo template viene chiamato nel seguente modo: <xsl:call-template name="detailrow"> <xsl:with-param name="element" select="/curriculum/personalinformations/items/*"/> </xsl:call-template> In questo caso il parametro element avrà come valore /curriculum/personalinformations/items/*. Tale espressione per la sintassi XPATH, identifica tutti i sotto-tag diretti del tag items (che è sottotag di personalinformation, che è a sua volta sotto-tag di curriculum). Riguardando il file XML, in pratica stiamo individuando i tag name, bornin, mobile, phone, fax, , e internet. Tutti questi tag hanno una struttura identica, ovvero definiscono due sotto-tag fissi: title e value. Il template DetailRow non fa altro che creare una riga con due celle. Nella prima cella, viene messo il titolo della sezione del curriculum, utilizzando la seguente espressione XPATH: $element/../../title Per la sintassi XPATH il valore di un parametro viene prelevato anteponendo il simbolo $ al nome del parametro. Come per l usuale modo di indicare i path delle directory sui vari sistemi DOS e UNIX, viene utilizzato il simbolo.., per risalire i tag del file XML. Quindi nel caso il parametro element valga /curriculum/personalinformations/items/* Allora il valore finale dell espressione è: /curriculum/personalinformations/items/*/../../title Ovvero /curriculum/personalinformations/title Quindi sarà stampato sul documento nella prima colonna con uno stile corsivo, e una dimensione di font di 13 pixel, la scritta Informazioni Personali. Per quanto riguarda la seconda cella, nel template DetailRow viene sfruttato un ciclo for-each. Infatti, avendo selezionato con l espressione XPATH, una serie di tag che hanno la stessa struttura, possiamo ciclare su di essi ignorando i loro nomi, e andando a stampare il valore del tag title, seguito da quello del tag value nel seguente modo: <xsl:for-each select="$element"> <fo:block margin-left="10mm" space-before="5mm"> <xsl:value-of select="title"/>: <xsl:value-of select="value"/> Claudio De Sio Cesari [email protected] 13
14 </xsl:for-each> Siccome il template si basa sul valore del parametro element, viene risfruttato per le altre sezioni del documento al variare del valore del parametro. Il lettore può facilmente verificare il modo in cui vengono create tutte le altre sezioni del documento. Claudio De Sio Cesari
Appendice C Da XML a PDF Progetto Atena
Appendice C Da XML a PDF Redatto da: Mariarosaria Padalino Sommario 1 Perché Xml e XSLT?...3 2 Trasformazione da XML a PDF...4 3 Creazione dei file XSD...4 4 Creazione dei file XML...8 5 Creazione file
Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti
Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta
XSL: extensible Stylesheet Language
XSL: extensible Stylesheet Language XSL è un insieme di tre linguaggi che forniscono gli strumenti per l elaborazione e la presentazione di documenti XML in maniera molto flessibile. I tre linguaggi devono
19. LA PROGRAMMAZIONE LATO SERVER
19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici
Guida all uso di Java Diagrammi ER
Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con
Esercizio data base "Biblioteca"
Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni
Appunti di Informatica www.mimmocorrado.it 1
Installare Java Il programma può essere scaricato dal seguente indirizzo: http://www.java.com/it/download/windows_ie.jsp?locale=it&host=www.java.com Per installare la JDK è necessario: 1. scaricare il
Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)
Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Il software per gli esami ICON può essere eseguito su qualunque computer dotato di Java Virtual Machine aggiornata.
Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.
SH.MedicalStudio Presentazione SH.MedicalStudio è un software per la gestione degli studi medici. Consente di gestire un archivio Pazienti, con tutti i documenti necessari ad avere un quadro clinico completo
Database 1 biblioteca universitaria. Testo del quesito
Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole
MODULO STAMPA BOLLETTINO PDF
MODULO STAMPA BOLLETTINO PDF MODULO STAMPA BOLLETTINO PDF pagina 2 di 7 INTRODUZIONE Il modulo STAMPA BOLLETTINO PDF è una applicazione stand-alone, sviluppata in linguaggio Java, che permette di produrre
Plate Locator Riconoscimento Automatico di Targhe
Progetto per Laboratorio di Informatica 3 - Rimotti Daniele, Santinelli Gabriele Plate Locator Riconoscimento Automatico di Targhe Il programma plate_locator.m prende come input: l immagine della targa
MANUALE PARCELLA FACILE PLUS INDICE
MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella
Registratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
Mac Application Manager 1.3 (SOLO PER TIGER)
Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i
Concetti fondamentali dei database database Cos'è un database Principali database
Concetti fondamentali dei database Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono essere molteplici: ricerca, aggregazione con altri e riorganizzazione
Compilatore risorse display grafico LCD serie IEC-line
Compilatore risorse display grafico LCD serie IEC-line aggiornamento: 22-11-2012 IEC-line by OVERDIGIT overdigit.com 1. Il display grafico LCD I PLC della serie IPC-line possono disporre opzionalmente
Tutorial di HTML basato su HTML 4.0 e CSS 2
Claudia Picardi Tutorial di HTML basato su HTML 4.0 e CSS 2 Informatica II per Scienze e Turismo Alpino Docenti: Viviana Patti e Claudia Picardi 4 Tabelle 4.1 La struttura di una tabella Elementi principali
Questa guida vi illustrerà i principali passaggi da eseguire per l'inserimento dei Bandi di gara.
Piccolo Manuale Manuale Pt 1ª Registrazione (Login) Questa guida vi illustrerà i principali passaggi da eseguire per l'inserimento dei Bandi di gara. Riceverete una email contenente: Link della vostra
FUNZIONI DI IMPAGINAZIONE DI WORD
FUNZIONI DI IMPAGINAZIONE DI WORD IMPOSTARE LA PAGINA Impostare la pagina significa definire il formato del foglio e vari altri parametri. Per impostare la pagina occorre fare clic sul menu File e scegliere
CATALOGO E-COMMERCE E NEGOZIO A GRIGLIA
CATALOGO E-COMMERCE E NEGOZIO A GRIGLIA In questo tutorial verrà illustrato come sfruttare la flessibilità del componente "Catalogo E-commerce" per realizzare un classico negozio a griglia, del tipo di
Appunti sugli Elaboratori di Testo. Introduzione. D. Gubiani. 19 Luglio 2005
Appunti sugli Elaboratori di Testo D. Gubiani Università degli Studi G.D Annunzio di Chieti-Pescara 19 Luglio 2005 1 Cos è un elaboratore di testo? 2 3 Cos è un elaboratore di testo? Cos è un elaboratore
NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.
NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. Con l utilizzo delle procedure di iscrizione on line la società organizzatrice ha a disposizione tutti
Excel. A cura di Luigi Labonia. e-mail: [email protected]
Excel A cura di Luigi Labonia e-mail: [email protected] Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo
Olga Scotti. Basi di Informatica. Excel
Basi di Informatica Excel Tabelle pivot Le tabelle pivot sono strumenti analitici e di reporting per creare tabelle riassuntive, riorganizzare dati tramite trascinamento, filtrare e raggruppare i dati,
Java: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI
ORDINAMENTO DEI DATI Quando si ordina un elenco (ovvero una serie di righe contenenti dati correlati), le righe sono ridisposte in base al contenuto di una colonna specificata. Distinguiamo due tipi di
WWW.ICTIME.ORG. NVU Manuale d uso. Cimini Simonelli Testa
WWW.ICTIME.ORG NVU Manuale d uso Cimini Simonelli Testa Cecilia Cimini Angelo Simonelli Francesco Testa NVU Manuale d uso EDIZIONE Gennaio 2008 Questo manuale utilizza la Creative Commons License www.ictime.org
intranet.ruparpiemonte.it
ruparpiemonte Infopoint Manuale d'uso intranet.ruparpiemonte.it Indice 1. Accesso...3 2. Gestione categorie...3 3. Gestione argomenti...6 4. Gestione schede...7 5. Editor di testo...11 2 1. Accesso Si
GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL
GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano
Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};
ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca
INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag.
Gentile Cliente, benvenuto nel Portale on-line dell Elettrica. Attraverso il nostro Portale potrà: consultare la disponibilità dei prodotti nei nostri magazzini, fare ordini, consultare i suoi prezzi personalizzati,
MOCA. Modulo Candidatura. http://www.federscacchi.it/moca. [email protected]. [Manuale versione 1.0 marzo 2013]
MOCA Modulo Candidatura http://www.federscacchi.it/moca [email protected] [Manuale versione 1.0 marzo 2013] 1/12 MOCA in breve MOCA è una funzionalità del sito web della FSI che permette di inserire
Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.
I TEMI PREDEFINITI (TEMPLATE) Scelta del tema I temi predefiniti di wordpress sono la base di un sito che usa un utente che per ragioni pratiche o per incapacità non può creare un sito usando solo codice
COSTER. Import/Export su SWC701. SwcImportExport
SwcImportExport 1 Con SWC701 è possibile esportare ed importare degli impianti dal vostro database in modo da tenere aggiornati più Pc non in rete o non facente capo allo stesso DataBase. Il caso più comune
www.filoweb.it STAMPA UNIONE DI WORD
STAMPA UNIONE DI WORD Molte volte abbiamo bisogno di stampare più volte lo stesso documento cambiando solo alcuni dati. Potremmo farlo manualmente e perdere un sacco di tempo, oppure possiamo ricorrere
Università di L Aquila Facoltà di Biotecnologie Agro-alimentari
RIFERIMENTI Università di L Aquila Facoltà di Biotecnologie Agro-alimentari Esame di Laboratorio di informatica e statistica Parte 3 (versione 1.0) Il riferimento permette di identificare univocamente
SOMMARIO... 3 INTRODUZIONE...
Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...
Costruzione del layout in gino cms
Costruzione del layout in gino cms Autore: Marco Guidotti - marco.guidotti(at)otto.to.it Versione: 1.0 Data: 2013-06-17 Layout Nell area amministrativa di gino l applicazione Layout permette di gestire
Cos è un word processor
Cos è un word processor è un programma di videoscrittura che consente anche di applicare formati diversi al testo e di eseguire operazioni di impaginazione: font diversi per il testo impaginazione dei
Raggruppamenti Conti Movimenti
ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli
Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.
Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare. E stato previsto l utilizzo di uno specifico prodotto informatico (denominato
GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.
*+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti
La Stampa Unione. Individuare la lista indirizzi per la Stampa Unione
La Stampa Unione La Stampa unione consente di personalizzare con il nome, il cognome, l'indirizzo e altri dati i documenti e le buste per l'invio a più destinatari. Basterà avere un database con i dati
Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1
Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ Versione 1.1 Autore Antonio Barbieri, [email protected] Data inizio compilazione 11 maggio 2009 Data revisione 14 maggio 2009 Sommario
Guida alla personalizzazione delle stampe per Scrutinio 10 e Lode e ScrutiniOnLine
Guida alla personalizzazione delle stampe per Scrutinio 10 e Lode e ScrutiniOnLine Quali stampe sono personalizzabili? In Scrutino 10 e Lode: 1. Verbale I periodo (2 varianti) 2. Verbale Sessione Finale
Come modificare la propria Home Page e gli elementi correlati
Come modificare la propria Home Page e gli elementi correlati Versione del documento: 3.0 Ultimo aggiornamento: 2006-09-15 Riferimento: webmaster ([email protected]) La modifica delle informazioni
SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.
Progetto SITI Manuale Utente SITI-Reports ABACO S.r.l. ABACO S.r.l. C.so Umberto, 43 46100 Mantova (Italy) Tel +39 376 222181 Fax +39 376 222182 www.abacogroup.eu e-mail : [email protected] 02/03/2010
[Dimensionare la pagina-creare le tabelle-formattare le tabelle-formattare la pagina
[Dimensionare la pagina-creare le tabelle-formattare le tabelle-formattare la pagina Creare cartelle per salvare il lavoro] Per iniziare dobbiamo imparare a gestire quello spazio bianco che diverrà la
Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da
ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario
Funzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
Laboratorio di Alfabetizzazione Informatica - Esame 20 settembre 2013.
Laboratorio di Alfabetizzazione Informatica - Esame 20 settembre 2013. Questo documento contiene le istruzioni per lo svolgimento dell esame. La durata della prova è 60 minuti e richiede lo svolgimento
Programmare in Java. Olga Scotti
Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale
Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)
FAQ INVIO DOMANDE CIGO CON FLUSSO XML Cosa serve per inviare una domanda CIGO con il flusso XML? (pag. 2) Come si prepara una domanda in formato XML? (pag. 3) Che differenza c è tra una richiesta XML ed
DOCUMENTO ESPLICATIVO
DOCUMENTO ESPLICATIVO Modificare il proprio sito con Web designer Digitate il vostro username e password e compariranno tre tasti: AREA RISERVATA, WEB DESIGNER e LOGOUT Cliccate sul tasto WEB DESIGNER
GUIDA ALL USO DEL PANNELLO DI GESTIONE SITO WEB
GUIDA ALL USO DEL PANNELLO DI GESTIONE SITO WEB Copyright 2014 Wolters Kluwer Italia Srl 1 Sommario 1 Come accedere al Pannello di gestione... 4 2 del Pannello di gestione del sito web... 5 3 delle sezioni...
I.N.A.I.L. Certificati Medici via Internet. Manuale utente
I.N.A.I.L. Certificati Medici via Internet Manuale utente CERTIFICATI MEDICI... 1 VIA INTERNET... 1 MANUALE UTENTE... 1 COME ACCEDERE AI CERTIFICATI MEDICI ON-LINE... 3 SITO INAIL... 3 PUNTO CLIENTE...
Guida Software GestioneSpiaggia.it
Caratteristiche Guida Software GestioneSpiaggia.it 1. Gestione prenotazioni articoli (ombrellone, cabina, ecc ) ed attrezzature (sdraio, lettino ecc ) 2. Visualizzazione grafica degli affitti sia giornaliera
3.5.1.1 Aprire, preparare un documento da utilizzare come documento principale per una stampa unione.
Elaborazione testi 133 3.5 Stampa unione 3.5.1 Preparazione 3.5.1.1 Aprire, preparare un documento da utilizzare come documento principale per una stampa unione. Abbiamo visto, parlando della gestione
Guida rapida all uso di Moodle per gli studenti
Guida rapida all uso di Moodle per gli studenti Introduzione La piattaforma utilizzata per le attività a distanza è Moodle, un software per la gestione di corsi on-line. Per chi accede come studente, essa
Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste
Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)
Guida alla registrazione on-line di un DataLogger
NovaProject s.r.l. Guida alla registrazione on-line di un DataLogger Revisione 3.0 3/08/2010 Partita IVA / Codice Fiscale: 03034090542 pag. 1 di 17 Contenuti Il presente documento è una guida all accesso
LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014
LUdeS Informatica 2 EXCEL Seconda parte AA 2013/2014 STAMPA Quando si esegue il comando FILE STAMPA, Excel manda alla stampante tutte le celle del foglio di lavoro corrente che hanno un contenuto. Il numero
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE
SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE S O. S E. B I. P R O D O T T I E S E R V I Z I P E R I B E N I C U L T U R A L I So.Se.Bi. s.r.l. - via dell Artigianato, 9-09122 Cagliari Tel. 070 / 2110311
3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di
Struttura di un programma Java
Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che
GUIDA PER IL DOCENTE ALL UTILIZZO DELL APPLICATIVO ONLINE E PORTFOLIO
GUIDA PER IL DOCENTE ALL UTILIZZO DELL APPLICATIVO ONLINE E PORTFOLIO http://eportfolio.tqmproject.eu Progetto "TQM Agreement n 2011 1 IT1 LEO05 01873; CUP G72F11000050006 1 SOMMARIO PREMESSA... 3 PAGINA
Manuale Utente Albo Pretorio GA
Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate
Convertitori numerici in Excel
ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel
Corso Eclipse. Prerequisiti. 1 Introduzione
Corso Eclipse 1 Introduzione 1 Prerequisiti Uso elementare del pc Esecuzione ricerche su Internet Esecuzione download Conoscenza elementare della programmazione 2 1 Cos è Eclipse Eclipse è un IDE (Integrated
Capitolo 4 Pianificazione e Sviluppo di Web Part
Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,
Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014
Progetto ICoNLingua Scienza senza Frontiere CsF- Italia Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014 1. Introduzione La valutazione sia in itinere
Guida rapida all uso di Moodle per gli studenti
Guida rapida all uso di Moodle per gli studenti Introduzione La piattaforma utilizzata per le attività a distanza è Moodle, un software per la gestione di corsi on-line. Per chi accede come studente, essa
Disegni di Ricerca e Analisi dei Dati in Psicologia Clinica. Rcmdr
Disegni di Ricerca e Analisi dei Dati in Psicologia Clinica Rcmdr http://www.r-project.org http://qplab.psy.unipd.it Che cos è Rcmdr? Rcmdr è un pacchetto che possiamo scaricare dal CRAN e installare su
Il web server Apache Lezione n. 3. Introduzione
Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar
Preps Crea nuovo modello
indice Preps Crea nuovo modello 1. Introduzione 2. Definizione modello 3. Creazione imposizione 4. Numerazione pagine 5. Definizione del bianco tipografico 6. Definizione abbondanza pagine 7. Aggiunta
Esercitazione del 05-03-2007
FUNZIONI Esercitazione del 05-03-2007 1. Aprire una nuova cartella di lavoro. 2. Inserire nel foglio di lavoro di Excel le seguenti colonne: A B 1000 100 1100 200 1200 300 1300 400 1400 500 1500 600 1600
NAVIGAORA HOTSPOT. Manuale utente per la configurazione
NAVIGAORA HOTSPOT Manuale utente per la configurazione NAVIGAORA Hotspot è l innovativo servizio che offre ai suoi clienti accesso ad Internet gratuito, in modo semplice e veloce, grazie al collegamento
Il software di gestione immobiliare più facile da usare. Modulo Web v5.2. www.gestim.it
Il software di gestione immobiliare più facile da usare Modulo Web v5.2 www.gestim.it Introduzione Il Modulo Web è un componente di Gestim che permette di pubblicare in automatico gli annunci sul sito
COME CREARE IL DATABASE GESTIONE CLIENTI IN ACCESS 2010
ALBERTO FORTUNATO COME CREARE IL DATABASE GESTIONE CLIENTI IN ACCESS 2010 SPIEGAZIONE ED ILLUSTRAZIONE GUIDATA DI TUTTI I PASSAGGI PER LA CREAZIONE DELLE TABELLE, DELLE MASCHERE, DELLE QUERY, DEI REPORT
GESGOLF SMS ONLINE. Manuale per l utente
GESGOLF SMS ONLINE Manuale per l utente Procedura di registrazione 1 Accesso al servizio 3 Personalizzazione della propria base dati 4 Gestione dei contatti 6 Ricerca dei contatti 6 Modifica di un nominativo
Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore
ARPA Fonte Dati Regione Toscana 1 Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.1 Data emissione 09/10/13 Stato FINAL 2 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 1.1 09/10/2013
Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)
Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio
lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000
Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,
COME MODIFICARE IL TEMPLATE DI UNA PAGINA
COME MODIFICARE IL TEMPLATE DI UNA PAGINA Per modificare il template di una pagina, per cambiare cioè la sua struttura, inserendo altri elementi rispetto a quelli previsti in automatico dal sistema (un
STUDIUM.UniCT Tutorial per gli studenti
STUDIUM.UniCT Tutorial per gli studenti Studium.UniCT Tutorial Studenti v. 6 06/03/2014 Pagina 1 Sommario 1. COS È STUDIUM.UniCT... 3 2. COME ACCEDERE A STUDIUM.UniCT... 3 3. COME PERSONALIZZARE IL PROFILO...
EDICOLA MANAGER 2.2. + EM Importer
EDICOLA MANAGER 2.2 + EM Importer Con la versione 2.2 del programma sono state introdotte numerose novità grazie anche alla collaborazione di colleghi che hanno messo a disposizione utility e documenti
Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
Una piattaforma per creare blog, che utilizza il linguaggio PHP e si
1^ Puntata WordPress è un ottimo CMS (Content Management System) Una piattaforma per creare blog, che utilizza il linguaggio PHP e si avvale di un database Mysql. Un CMS è quindi un sistema di gestione
Tale attività non è descritta in questa dispensa
Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa
PORTALE CLIENTI Manuale utente
PORTALE CLIENTI Manuale utente Sommario 1. Accesso al portale 2. Home Page e login 3. Area riservata 4. Pagina dettaglio procedura 5. Pagina dettaglio programma 6. Installazione dei programmi Sistema operativo
CONTENT MANAGEMENT SY STEM
CONTENT MANAGEMENT SY STEM I NDI CE I NTRODUZI ONE Accesso al CMS 1) CONTENUTI 1.1 I nserimento, modifica e cancellazione dei contenuti 1.2 Sezioni, categorie e sottocategorie 2) UTENTI 3) UP LOAD FILES
COME ELIMINARE PARTI DEL TEMPLATE IN PAGINE SINGOLE
COME ELIMINARE PARTI DEL TEMPLATE IN PAGINE SINGOLE Con questa guida impareremo come eliminare delle singole zone del template che utilizziamo all'interno di una pagina specifica. Questo metodo torna utile
LABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO
CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO 1 Installazione e requisiti per il corretto funzionamento del sito: L istallazione è possibile sui più diffusi sistemi operativi. Il pacchetto
A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.
La finestra di Excel è molto complessa e al primo posto avvio potrebbe disorientare l utente. Analizziamone i componenti dall alto verso il basso. La prima barra è la barra del titolo, dove troviamo indicato
Word processor funzione Stampa Unione
Word processor funzione Stampa Unione La funzione Stampa unione permette di collegare un documento che deve essere inviato ad una serie di indirizzi ad un file che contenga i nominativi dei destinatari.
