XSL-FO

  • 340 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
340
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
5
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. XSL-FO Eidon School
  • 2. Agenda Introduzione e richiami formali Più in dettaglio Esempi PAUSA Esercitazione con l’aiuto di Apache FOP
  • 3. Fonte: w3.org XSL
  • 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. XSL-FO: processo di generazione
  • 6. DEMO Vediamo il nostro primo XSL-FO in PDFFop.bat -xml Elenco.xml -xsl ElencoFO.xslt -pdf Elenco.pdf
  • 7. Risultato
  • 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. 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. 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. 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. XSL-FO: il layout di paginaFonte: w3.org
  • 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. 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. 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. 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. 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. 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. Il layout del fo:block
  • 20. XSL-FO: engine Apache Foundation’s FOP Antenna House XSL Formatter RenderX XEP Inventive Designers Scriptura
  • 21. ESERCITAZIONI
  • 22. OrdinaleModificando il file ElencoFO.xslt, inserire una prima colonna con l’ordinale.
  • 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. Bordi e backgroundBordo e background in testata:
  • 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. AllineamentoAllineare a sinistra l’indirizzo:
  • 27. Soluzionetext-align="left"
  • 28. Posizioni assolute Inserire del contenuto alla fine della pagina: Suggerimenti: block-container e position=“absolute”
  • 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. Note a piè pagina Inserire nelle note a piè pagina: Suggerimenti: footnote e footnote-body
  • 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.  + righe On page break Inserire immagine
  • 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)