XSL-FO

644 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
644
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

XSL-FO

  1. 1. XSL-FO Eidon School
  2. 2. Agenda Introduzione e richiami formali Più in dettaglio Esempi PAUSA Esercitazione con l’aiuto di Apache FOP
  3. 3. Fonte: w3.org XSL
  4. 4. XSL-FO Raccomandazione del W3C (1.0 dell’ottobre 2001, 1.1 del dicembre 2006) NS: xmlns:fo=“http://www.w3.org/1999/XSL/Format” Istruisce il render su come visualizzare i dati XML (formatting). Formati di output: PostScript, PDF, Testo, PCL, RTF, PNG, Audio,… La maggior parte dei documenti ed edichette dei Supermercati GS sono fatti cosi! (Codice a Barre compresi!!!)
  5. 5. XSL-FO: processo di generazione
  6. 6. DEMO Vediamo il nostro primo XSL-FO in PDFFop.bat -xml Elenco.xml -xsl ElencoFO.xslt -pdf Elenco.pdf
  7. 7. Risultato
  8. 8. XSL-FO: Struttura del documento<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <!--modello master per le pagine--> </fo:layout-master-set> <fo:declarations> <!--dichiarazioni globali--> </fo:declarations> <fo:page-sequence> <!--contenuti pagine--> </fo:page-sequence></fo:root>
  9. 9. XSL-FO: fo:root  Deve essere chiamarsi “root” .  Deve contenere:  Un singolo fo:layout-master-set.  Una facoltativa sezione fo:declarations (per le dichiarazioni relative al colore, ICC Color Profile).  Uno o più fo:page-sequences. fo:root fo:layout-master-set fo:page-sequencesfo:simple-page-master fo:page-sequence-master fo:static-content fo:flow
  10. 10. XSL-FO: fo:layout-master-set  Definisce geometria e suddivisioni delle pagine, i figli sono:  Uno o più fo:simple-page-master: per la struttura della pagina.  Delle facoltative sezioni fo:page-sequence- master: per descrivere con quale modello di pagina si deve renderizzare durante la formattazione. fo:root fo:layout-master-set fo:page-sequencesfo:simple-page-master fo:page-sequence-master fo:static-content fo:flow
  11. 11. XSL-FO: fo:simple-page-master  Dimensioni della pagina.  Dimensione delle cinque regioni:  fo:region-before.  fo:region-after.  fo:region-start.  fo:region-end.  fo:region-body. fo:root fo:layout-master-set fo:page-sequencesfo:simple-page-master fo:page-sequence-master fo:static-content fo:flow
  12. 12. XSL-FO: il layout di paginaFonte: w3.org
  13. 13. XSL-FO: fo:page-sequence-master  Definisce la sequenza dei simple-page- master da utilizzare per il rendering del flow:  fo:single-page-master-reference.  fo:repeatable-page-master-reference.  fo:repeatable-page-master-alternatives. fo:root fo:layout-master-set fo:page-sequencesfo:simple-page-master fo:page-sequence-master fo:static-content fo:flow
  14. 14. XSL-FO: fo:page-sequences  Contengono le informazioni vere e proprie del documento, ogni page-sequences deve avere un attributo che indica il tipo di pagina master da adottare (page-sequence-master o simple- page-master), i figli sono:  fo:static-content  fo:flow fo:root  fo:title fo:layout-master-set fo:page-sequencesfo:simple-page-master fo:page-sequence-master fo:static-content fo:flow
  15. 15. XSL-FO: fo:static-content  Il nome è la spiegazione: inserisce del contenuto statico in una serie di pagine, si usa soprattutto per le intestazioni e i piè di pagina o anche per inserire il numero di pagina. fo:root fo:layout-master-set fo:page-sequencesfo:simple-page-master fo:page-sequence-master fo:static-content fo:flow
  16. 16. XSL-FO: fo:flow  Il o i tag che contengono il corpo del documento. Infatti questo è composto dal testo e dagli altri marcatori fo:* che definiscono la formattazione del documento, come:  fo:block (il più importante e utilizzato)  fo:table  fo:list-block fo:root fo:layout-master-set fo:page-sequencesfo:simple-page-master fo:page-sequence-master fo:static-content fo:flow
  17. 17. Elementi di formattazione fo:flow – delinea una divisione del documento (capitoli, sezioni, …) fo:block – un paragrafo o un titolo/sottotitolo… fo:inline – cambiamento di font o stile dentro un block fo:external-graphic – per inserire un’immagine
  18. 18. XSL-FO: altri tag di formattazione fo:footnote fo:instream-foreign-object fo:page-number-citation fo:block-container fo:list-item fo:basic-link…
  19. 19. Il layout del fo:block
  20. 20. XSL-FO: engine Apache Foundation’s FOP Antenna House XSL Formatter RenderX XEP Inventive Designers Scriptura
  21. 21. ESERCITAZIONI
  22. 22. OrdinaleModificando il file ElencoFO.xslt, inserire una prima colonna con l’ordinale.
  23. 23. Soluzione<fo:table-column column-width="proportional- column-width(10)"/>…<fo:table- cell><fo:block>Num</fo:block></fo:table-cell>…<fo:table-cell><fo:block><xsl:value-of select="position()"/></fo:block></fo:table-cell>
  24. 24. Bordi e backgroundBordo e background in testata:
  25. 25. Soluzione<fo:table-body font-size="95%"> <fo:table-row height="8mm" background- color="yellow" border-color="black" border- width="0.35mm" border-style="solid"> <fo:table-cell> <fo:block>Num</fo:block> </fo:table-cell>
  26. 26. AllineamentoAllineare a sinistra l’indirizzo:
  27. 27. Soluzionetext-align="left"
  28. 28. Posizioni assolute Inserire del contenuto alla fine della pagina: Suggerimenti: block-container e position=“absolute”
  29. 29. Soluzione<fo:block-container reference-orientation="0" border-color="black" border-style="solid" border-width="0.5mm" height="1cm" width="13.31cm" top="24.5cm"left="0cm" padding="1mm" position="absolute"><fo:block text-align="start" line-height="15pt" font-family="sans-serif" font-size="12pt">Please remit to the aboveaddress</fo:block></fo:block-container><fo:block-container reference-orientation="0" border-color="black" border-style="solid" border-width="0.5mm" height="1cm" width="2.5cm" top="24.5cm"left="13.56cm" padding="1mm" position="absolute"><fo:block text-align="start"space-after.optimum="3pt" line-height="25pt" font-family="sans-serif" font-size="22pt">Total</fo:block></fo:block-container><fo:block-container reference-orientation="0" border-color="black" border-style="solid" border-width="0.5mm" height="1cm" width="2.5cm" top="24.5cm"left="16.31cm" padding="1mm" position="absolute"><fo:block text-align="start"space-after.optimum="3pt" line-height="15pt" font-family="sans-serif" font-size="10pt">$3.00</fo:block></fo:block-container>
  30. 30. Note a piè pagina Inserire nelle note a piè pagina: Suggerimenti: footnote e footnote-body
  31. 31. Soluzione<fo:block>Lista dei fornitori di cibo <fo:footnote> <fo:inline font-weight="bold">buono<fo:inlinefont-size="6pt" vertical-align="super">1</fo:inline> </fo:inline> <fo:footnote-body> <fo:block color="maroon">1. Perbuono si intende veramente buono.</fo:block> </fo:footnote-body> </fo:footnote></fo:block>
  32. 32.  + righe On page break Inserire immagine
  33. 33. Riferimentihttp://www.w3.org/TR/2001/REC-xsl-20011015/http://www.w3.org/TR/xsl/http://nwalsh.com/docs/tutorials/xsl/xsl/slides.htmlhttp://www.xml.com/lpt/a/939XML in a Nutshell, Third Edition by Elliotte Rusty Harold and W. Scott Means (Paperback - Sep 23, 2004)

×