SeamFramework.orgCommunity Documentation
Seam adesso include un componente per la generazione di documenti usando iText. Il primo focus del supporto di Seam ai documenti iText è per la generazione dei documenti PDF, ma Seam offre anche un supporto base per la generazione di documenti RTF.
Il supporto a iText è fornito da jboss-seam-pdf.jar
. Questo JAR contiene i controlli JSF di iText, che sono usati per costruire le viste che possono generare il PDF, e il componente DocumentStore, che serve i documenti renderizzati per l'utente. Per includere il supporto PDF nell'applicazione, si metta jboss-seam-pdf.jar
nella directory WEB-INF/lib
assieme al file JAR di iText. Non serve alcuna ulteriore configurazione per usare il supporto a iText di Seam.
Il modulo iText di Seam richiede l'uso dei Facelets come tecnologia per la vista.Versioni future della libreria potrebbero supportare anche l'uso di JSP. In aggiunta, si richiede l'uso del pacchetto seam-ui.
Il progetto examples/itext
contiene un esempio di supporto PDF. Viene mostrato il corretto impacchettamento per il deploy e l'esempio contiene un gran numero di funzionalità per la generazione PDF attualmente supportate.
|
Descrizione I documenti vengono generati dai file XHTML facelet usando dei tag nel namespace Attributi
Attributi dei metadati
Utilizzo <p:document xmlns:p="http://jboss.com/products/seam/pdf" |
I documenti utili dovranno contenere più che il solo testo; comunque i componenti standard UI sono idonei per la generazione HTML e non sono utili per generare contenuto in PDF. Invece Seam fornisce dei componenti UI speciali per generare contenuto in PDF idoneo. Tag quali <p:image>
e <p:paragraph>
sono la base per i semplici documenti. Tag come <p:font>
forniscono informazioni di stile a tutto il contenuto che sta intorno.
|
Descrizione La maggior parte dell'uso del testo dovrebbe essere sezionato in paragrafi, affinché i frammenti del testo possano scorrere, formattati ed con uno stile in gruppi logici. Attributi
Utilizzo <p:paragraph alignment="justify"> |
|
Descrizione Il tag Attributi
Utilizzo <p:paragraph> |
|
Descrizione Il tag Attributi
Utilizzo
|
|
Descrizione Il tag font definisce il font di default da usarsi per tutto il testo contenuto in esso. Attributi
Utilizzo <p:font name="courier" style="bold" size="24"> |
|
Descrizione
Attributi
Utilizzo
|
|
Descrizione
Utilizzo <p:newPage /> |
|
Descrizione
Le risorse possono anche essere generate dinamicamente dal codice dell'applicazione. L'attributo Attributi
Utilizzo <p:image value="/jboss.jpg" /> <p:image value="#{images.chart}" /> |
|
Descrizione
Attributi
Utilizzo <p:listItem |
|
Descrizione I componenti Attributi
Utilizzo <f:facet name="header"> |
|
Descrizione Il numero della pagina corrente può essere collocato dentro un header o un footer usando il tag Utilizzo <p:footer borderWidthTop="1" borderColorTop="blue" |
|
Descrizione Se il documento generato segue una struttura libro/articolo, i tag NotaYou cannot include a chapter into another chapter, this can be done only with section(s). Attributi
Utilizzo <p:document xmlns:p="http://jboss.com/products/seam/pdf" |
|
Descrizione Ogni capitolo o sezione può contenere un |
Le strutture di lista possono essere visualizzate usando i tag p:list
e p:listItem
. Le liste possono contenere sottoliste arbitrariamente innestate. Gli elementi di lista non possono essere usati fuori da una lista. Il seguente documento utilizza il tag ui:repeat
per mostrare una lista di valori recuperata da un componente Seam.
<p:document xmlns:p="http://jboss.com/products/seam/pdf"
xmlns:ui="http://java.sun.com/jsf/facelets"
title="Hello">
<p:list style="numbered">
<ui:repeat value="#{documents}" var="doc">
<p:listItem
>#{doc.name}</p:listItem>
</ui:repeat>
</p:list>
</p:document
>
|
Attributi
Utilizzo <p:list style="numbered"> |
|
Descrizione
Attributi
Utilizzo ... |
Le strutture della tabella possono essere create usando i tag p:table
e p:cell
. A differenza di molte strutture di tabella, non c'è alcuna dichiarazione esplicita di riga. Se una tabella ha 3 colonne, allora le 3 celle formeranno automaticamente una riga. Le righe di header e footer possono essere dichiarate, e gli header ed i footer verranno ripetuti nel caso una struttura di tabella prosegua su più pagine.
|
Descrizione
Attributi
Utilizzo <p:table columns="3" headerRows="1"> |
|
Descrizione
Attributi
Utilizzo <p:cell |
Questa sezione documenta alcune costanti condivise dagli attributi nei tag multipli.
Vengono forniti diversi modi per specificare i colori. Un numero limitato di colori sono supportati col nome. Questi sono: white
, gray
, lightgray
, darkgray
, black
, red
, pink
, yellow
, green
, magenta
, cyan
e blue
. I colori possono essere specificati come valore intero, come definito in java.awt.Color
. Finalmente un valore di colore può essere specificato come rgb(r,g,b)
o rgb(r,g,b,a)
con i valori alpha rosso, verde e blue come intero tra 0 e 255 o come percentuali float seguite da un '%'.
Il supporto ai grafici è fornito da jboss-seam-pdf.jar
. I grafici possono essere impiegati nei documenti PDF o possono essere usati come immagini in una pagina HTML. Disegnare i grafici richiede la libreria JFreeChart (jfreechart.jar
e jcommon.jar
) che deve essere aggiunta alla directory WEB-INF/lib
. Tre tipi di grafici sono attualmente supportati: a torta, a barre e a linee. Quando serve un grado di varietà e di controllo elevato, è possibile costruire i grafici usando codice Java.
|
Descrizione Visualizza un grafico creato in Java da un componente Seam. Attributi
Utilizzo <p:chart chart="#{mycomponent.chart}" width="500" height="500" /> |
|
Descrizione Visualizza un grafico a barre. Attributi
Utilizzo <p:barchart title="Bar Chart" legend="true" |
|
Descrizione Mostra un grafico a linea. Attributi
Utilizzo <p:linechart title="Line Chart" |
|
Descrizione Mostra un grafico. Attributi
Utilizzo <p:piechart title="Pie Chart" circular="false" direction="anticlockwise" |
|
Descrizione I dati di categoria posso essere spezzati in serie. I tag delle serie vengono usati per categorizzare un set di dati con serie ed applicare lo stile all'intera serie. Attributi
Utilizzo <p:series key="data1"> |
|
Descrizione Il tag dei dati descrive ciascun punto di dati da mostrare nel grafico. Attributi
Utilizzo <p:data key="foo" value="20" sectionPaint="#111111" |
|
Descrizione Il componente del colore dichiara un colore oppure un gradiente che può venire referenziato quando si disegnano forme piene. Attributi
Utilizzo <p:color id="foo" color="#0ff00f"/> |
|
Descrizione Descrive un tratteggio usato per disegnare le linee in un grafico. Attributi
Utilizzo <p:stroke id="dot2" width="2" cap="round" join="bevel" dash="2 3" /> |
Seam può usare iText per generare barcode in un'ampia varietà di formati. Questi barcode possono essere incorporati in un documento PDF o mostrati come immagine in una pagina web. Si noti che quando sono usati in immagini HTML, i barcode non possono attualmente mostrare testo al loro interno.
|
Descrizione Mostra un'immagine di barcode. Attributi
Utilizzo <p:barCode type="code128" |
Se si ha un PDF complesso pregenerato con campi definiti (con nome), lo si può facilmente riempire con valori dell'applicazione e presentarlo all'utente.
|
Descrizione Definisce un modello di form da popolare Attributi
|
|
Descrizione Unisce un nome campo al suo valore Attributi
|
<p:form
xmlns:p="http://jboss.com/products/seam/pdf"
URL="http://localhost/Concept/form.pdf">
<p:field name="person.name" value="Me, myself and I"/>
</p:form>
Seam fornisce ora il supporto sperimentale per generare componenti Swing in un'immagine di PDF. Alcuni componenti Swing look and feels, in particolare quelli che usano widget nativi, non verranno correttamente generati.
|
Descrizione Genera un componente Swing in un documento PDF. Attributi
Utilizzo <p:swing width="310" height="120" component="#{aButton}" /> |
La generazione del documento funziona senza nessuna ulteriore configurazione. Comunque ci sono alcuni punti della configurazione necessari per applicazioni più serie.
L'implementazione di default serve i documenti PDF da un URL generico, /seam-doc.seam
. Molti browser (e utenti) preferiscono vedere URL che contengono il vero nome del PDF, come /myDocument.pdf
. Questa capacità richiede una configurazione. Per servire file PDF, tutte le risorse *.pdf
devono essere mappate sul DocumentStoreServlet:
<servlet>
<servlet-name
>Document Store Servlet</servlet-name>
<servlet-class
>org.jboss.seam.document.DocumentStoreServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name
>Document Store Servlet</servlet-name>
<url-pattern
>*.pdf</url-pattern>
</servlet-mapping
>
L'opzione use-extensions
nel componente document store completa la funzionalità istruendo il document store su come generare l'URL con l'estensione corretta del nome per i tipi di documenti da generare.
<components xmlns="http://jboss.com/products/seam/components"
xmlns:document="http://jboss.com/products/seam/document"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://jboss.com/products/seam/document http://jboss.com/products/seam/document-2.2.xsd
http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.2.xsd">
<document:document-store use-extensions="true"/>
</components
>
Document store memorizza i documenti nello scope conversazione, ed i documenti scadranno quando termina la conversazione. A quel punto i riferimenti al documento saranno invalidati. Si può specificare la vista di default da mostrare quando un documento non esiste usando la proprietà error-page
di documentStore
.
<document:document-store use-extensions="true" error-page="/documentMissing.seam" />
Per leggere ulteriore documentazione su iText, vedere: