SeamFramework.orgCommunity Documentation
Seam inclus maintenant un groupe de composant pour la génération de documents en utilisant iText. le premier but du support de document iText de Seam est pour la génération de documents PDF, mais Seam offre aussi un support basique pour la génération de document RTF.
Le support de iText est fournie par jboss-seam-pdf.jar
. Ce JAR contient les contrôles iText JSF, qui sont utilisés pour construire les vues qui peuvent être rendues vers le PDF et le composant DocumentStore qui servent pour rendre les documents à l'utilisateur. Pour inclure le support PDF dans votre application, il faut inclurejboss-seam-pdf.jar
dans votre dossier WEB-INF/lib
avec le fichier iText JAR. Il n'y a pas plus comme configuration nécéssaire pour le support de iText de Seam.
Le module de Seam iText requière l'utilisation de Facelets comme technologie d'affichage. Les versions futures de la bibliothèque pourrons aussi supporter l'utilisation de JSP. En plus, il faut utiliser le paquet seam-ui.
Le projet examples/itext
contient un exemple du support de PDF en action. Il démontre comment est fait le déploiement propre des paquets et il contient de nombreux exemples qui montre les fonctionnalités clef de la génération de PDF actuellement supportées.
|
Description Les documents sont générés par les documents facelets en utilisant les tags dans l'espace de nom Attribues
Metadata Attributes
Usage <p:document xmlns:p="http://jboss.com/products/seam/pdf" |
Les documents courrants ont besoin de contenir bien plus que seulement du texte; cependant, les composants UI standards sont prévue pour la génération HTML et pas très utile pour la génération de contenu PDF. Ainis, Seam fourni des composants UI spéciaux pour la génération de parfait contenu PDF. Les balises comme <p:image>
et <p:paragraph>
sont les fondations de bases de simples documents. Les balises comme <p:font>
fournissent des informations sur le style de tous les contenues autour d'elles.
|
Description La plus part des textes doivent pouvoir être divisés en paragraphes donc les fragments de texte peuvent être enchainnées, formatés et disposant d'un style en groupes logiques. Attribues
Usage <p:paragraph alignment="justify"> |
|
Description La balise Attribues
Usage <p:paragraph> |
|
Description La balise Attribues
Usage
|
|
Description La balise de police de la police par défauit à utiliser pour tous les textes qu'elle englobe. Attribues
Usage <p:font name="courier" style="bold" size="24"> |
|
Description
Attribues
Usage
|
|
Description
Usage <p:newPage /> |
|
Description
Les resources peuvent aussi être générée dynamiquement par le code de l'application. L'attribut Attribues
Usage <p:image value="/jboss.jpg" /> <p:image value="#{images.chart}" /> |
|
Description
Attribues
Usage <p:listItem |
|
Description Les composants Attribues
Usage <f:facet name="header"> |
|
Description Le numéro de page courrant peut être placé dans l'entête ou le pied de page en utilisant la balise Usage <p:footer borderWidthTop="1" borderColorTop="blue" |
|
Description Si le document généré suit la structure d'un livre ou d'un article, les balises NoteYou cannot include a chapter into another chapter, this can be done only with section(s). Attribues
Usage <p:document xmlns:p="http://jboss.com/products/seam/pdf" |
|
Description Tout chapitre ou section devrait contenur un |
Les structures de listes peuvent être affiché en utilisant les balises p:list
et p:listItem
. Les listes peuvent contenir des sous-listes englobées arbitrairement. Les éléments de la liste ne devraient pas être utilisés à l'extérieur de la liste. Le document suivant utilise la balise ui:repeat
pour afficher une liste des valeurs extraites depuis un composant de 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
>
|
Attribues
Usage <p:list style="numbered"> |
|
Description
Attribues
Usage ... |
Les structures d'un tableau peuvent être créés en uutilisant les balises p:table
et p:cell
. A l'inverse de beaucoup de structures de tableaux, il n'y a pas de déclaration explicite de ligne. Si un tableau a 3 colonnes, alors chacune des trois cellules devront automatiquement former une ligne. Les lignes d'entêtes et de pieds de pages peuvent être déclarées et seront répétées dans le cas ou la structure du tableau s'étallerait sur plusieurs pages.
|
Description
Attribues
Usage <p:table columns="3" headerRows="1"> |
|
Description
Attribues
Usage <p:cell |
Cette section documente quelques unes des constantes partagées par de multiples balises.
Plusieurs façons de spécifier les coleurs sont proposées. Un nombre limité de couleurs sont disponibles par leur nom. Il y a : white
, gray
, lightgray
, darkgray
, black
, red
, pink
, yellow
, green
, magenta
, cyan
et blue
. Les couleurs peuvent être" spécifiées comme une valeur intière, tout comme défini par java.awt.Color
. Enfin, une valeur de couleur peut être spécifiée par rgb(r,g,b)
ou rgb(r,g,b,a)
avec les valeurs de rouge, vert, blue et alpha indiqué par un entier entre 0 et 255 ou comme un pourcentage avec un nombre à virgule suivi du signe '%'.
Le support des diagrammes est aussi fourni avec jboss-seam-pdf.jar
. Les diagrammes peuvent être utilisé dans des documents PDF pi peuvent être utilisés comme des images dans une page HTML. Faire des diagrammes nécéssite que la bibliothèque JFreeChart (jfreechart.jar
etjcommon.jar
) soit ajouté au dossier WEB-INF/lib
. Quatres types de diagrammes sont actuellement diponibles: diagramme en camenbert, diagramme en baton et diagramme avec des courbes. Avec beaucoup de variantes ou de controles selon les besoin, il est possible de contruire des diagrammes en utilisant du code Java.
|
Description L'affichage d'une diagramme créé en Java par un composant de Seam. Attribues
Usage <p:chart chart="#{mycomponent.chart}" width="500" height="500" /> |
|
Description L'affichage d'une diagramme en baton. Attribues
Usage <p:barchart title="Bar Chart" legend="true" |
|
Description Affichage d'une diagramme avec des courbes. Attribues
Usage <p:linechart title="Line Chart" |
|
Description Affichage d'un diagramme en cammenbert. Attribues
Usage <p:piechart title="Pie Chart" circular="false" direction="anticlockwise" |
|
Description Les données de catégories peuvent être divisées en séries. La balise de la série est utilisée pour catégoriser un groupe de données et lui appliquer un style sur toute la série. Attribues
Usage <p:series key="data1"> |
|
Description La balise data décrit chaque point à afficher pour le graphe. Attribues
Usage <p:data key="foo" value="20" sectionPaint="#111111" |
|
Description Le composant couleur déclare une couleur ou un dégradé qui peut être utilisé quand on dessine des formes géométriques pleines. Attribues
Usage <p:color id="foo" color="#0ff00f"/> |
|
Description Description d'un trait pour dessiner des lignes dans un diagramme. Attribues
Usage <p:stroke id="dot2" width="2" cap="round" join="bevel" dash="2 3" /> |
Seam peut utiliser iText pour générer des codes barres dans une grande variété de formats. Ces codes barres peuvent être embarqués dans un document PDF ou affichés comme une image sur une page Web. Notez que quand on utilise comme une image en HTML, les codes barres ne peuvent pas afficher de texte dans le code barre.
|
Description Affichage d'une image barcode. Attribues
Usage <p:barCode type="code128" |
Si vous avez un PDF prégénéré et complexe avec des champs de formunaire, vous pouvez facillement remplir les valeurs depuis votre applicatio et le présenter aux utilisateurs.
|
Description Définissez un modèle de formulaire à remplir Attribues
|
|
Description Connectez le nom d'un champs à sa valeur Attribues
|
<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 fourni maintenant un support expérimental pour le rendu des composants Swing dans une image PDF. Quelques supports de thème de Swing, notablement ce qui utilisent des widgets natifs, ne seront pas rendu correctement.
|
Description Rendre un composant Swing dans un document PDF. Attribues
Usage <p:swing width="310" height="120" component="#{aButton}" /> |
La génération de document fonctionne tel quelle sans aucune configurationns additionnelles nécéssaire. Cependant, il y a quelques éléments de configuration qui sont écéssaire pour des applications plus importantes.
L'implémentation par défaut délivre des documents PDF depuis une URL générique, /seam-doc.seam
. Beaucoup de navigateurs (et d'utilisateurs) préfèrerons voir les URLs qui contienne un véritable nom de PDF comme /myDocument.pdf
. Cette capacité nécéssite un peu de configuration. Pour délivrer des fichiers PDF , toutes les resources *.pdf
devrait être liées au 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'option use-extensions
sur le document stocke le composant complète la fonctionnalité en introduisant le document stocké en générant les URLs avec l'extension sur le nom de fichier correcte pour le document ayant été généré.
<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
>
Le porte-document stocke les documents dans l'étendue de conversation et les document vont expirés quand la conversation se terminera. A ce moment là, les références vers le document seront invalidées. Vous pouvez spécifier uen vue par défaut à afficher quand un document n'existe pas en utilisant la propriété error-page
du documentStore
.
<document:document-store use-extensions="true" error-page="/documentMissing.seam" />
Pour plus d'informations sur iText, voir: