Contents | < Des Divers Eléments Intégrés | Annexe A - Les Couleurs >

Les Prolongements

Entrées D'Index

Il y a deux étapes principales dans la création des index:

Le Marquage

Utiliser l'attribut xf:key pour tout élément qui peut avoir un id. Tandis qu'un id devrait toujours être unique, les valeurs de xf:key ne peuvent pas être uniques. Toutes les occurences d'une clef spécifique participeront à la production de l'index final.

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" 
         xmlns:xf="http://www.ecrion.com/xf/1.0"> 
    ...
    <fo:block xf:key="keywords.lion.range" >
        <fo:inline xf:key="keywords.lion" >Lions</fo:inline>, along with the other 
            big cats such as tigers are in the genus Panthera.
            ...
        </fo:block>
        <fo:block>
            Some <fo:inline xf:key="keywords.lion" >lions</fo:inline> are nomadic.
        </fo:block>
</fo:root>

Dans l'exemple ci-dessus, il y a deux valeurs principales (valeurs-clé) distinctes: keywords.lion.range et keywords.lion. Remarquez s'il vous plaît que la valeur String de l'attribut principal peut être n'importe quoi, mais pour la clarté, nous avons employé une notation pointillée dans les exemples présentés dans ce chapitre.

Les Index de Page

Pour insérer une liste des pages correspondantes à une clef d'index, employez xf:page-index.

<xf:page-index xmlns:xf="http://www.ecrion.com/xf/1.0"/
    ref-key="string" 
    list-separator="string"
    range-separator="string"

				

list-separator représente le séparateur entre les numéros de page non consécutifs; la valeur par défaut est ", ".

range-separator représente le séparateur entre la première et la dernière page dans une gamme; la valeur par défaut est "-".

<fo:block>
    lions <xf:page-index ref-key="keywords.lion"/> 
</fo:block>
<fo:block start-indent="0.2in">
    range <xf:page-index ref-key="keywords.lion.range"/> 
</fo:block>
Pour le code source complet pour cet exemple de code voyez "Tutorial/KeywordIndex.fo" XML Documents Samples/Tutorial.

Dans les conditions normales d'utilisation, vous produiriez probablement l'index dans une transformation de XSL.

Par exemple, considérez le document suivant de XML:

<doc title="African Lion">
    <section title="Classification &amp; Range">
        <keyword>Lions</keyword>, along with the other big cats such as 
        <keyword>tigers</keyword>
        ... 
    </section>
</doc>

Pour produire automatiquement une liste de mots-clés et leur index respectif de page, vous pouvez employer le modèle suivant de XSL:

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:fo="http://www.w3.org/1999/XSL/Format" 
    xmlns:xf="http://www.ecrion.com/xf/1.0"
    xmlns:ms="urn:schemas-microsoft-com:xslt"
    xmlns:tt="samples-and-documentation"
    >
    <ms:script implements-prefix="tt" language="JScript">
        function toLower(str)
        {
               return str.toLowerCase();
        }
    </ms:script>
    <xsl:key name="kkey" match="//keyword" use="tt:toLower(string(text()))"/>
    <xsl:template name="GenerateIndex">
        <xsl:for-each select="//keyword">
            <xsl:sort select="." />
            <xsl:if test="generate-id(.) = generate-id(key('kkey', tt:toLower(string(.)))[1])">
                <fo:block>
                    <fo:inline text-transform="lowercase"><xsl:value-of select="." /></fo:inline> 
                    <xf:page-index>
                        <xsl:attribute name="ref-key">
                            <xsl:value-of select="tt:toLower(string(.))"/>
                        </xsl:attribute>
                    </xf:page-index>
                </fo:block>
            </xsl:if>
        </xsl:for-each>
     </xsl:template>
</xsl:stylesheet>
Pour le code source complet pour cet exemple de code voyez "Tutorial/KeywordIndex.xml" situé dans le dossier XML Documents Samples/Tutorial.

Le Chiffrage

Les documents PDF peuvent être chiffrés, et l'ensemble d'autorisations peut être appliqué au rendant du temps en utilisant l'extention xf:security XSL-FO extension.

<xf:security xmlns:xf="http://www.ecrion.com/xf/1.0"/ 
         owner-password="password" user-password="password"
         encryption-strenght="128 | 40"
         allow-printing="true | false"
         allow-modify-contents ="true | false"
         allow-copy="true | false"  
         allow-modify-annotations="true | false" 
         allow-fill-in="true | false"
         allow-screen-readers="true | false" 
         allow-assembly="true | false" 
         allow-degraded-printing="true | false" >

le mot de passe du propriétaire et le mot de passe de l'utilisateur

Il y a deux mots de passe qui peuvent être spécifiés pour un document: un mot de passe du propriétaire et un mot de passe d'utilisateur.

encryption-strength (la force du chiffrage)

Indique la force de chiffrage : 128 ou 40 bits. 128 bits est le défaut.

allow-printing (pemettre l'impression)

Imprime le document (probablement pas au niveau de la plus haute qualité, selon que allow-degraded-printing (permettre la dégradation de l'impression) est réglée aussi).

  

allow-modify-contents (permettre la modification des contenus)

Modifie le contenu du document par d'autres opérations que ceux commandées par allow-modify-annotations (permettre la modification des annotations), allow-fill-in (permettre le remplissage) et allow-assembly (permettre le groupement). .

  

allow-copy (permettre la réalisation des copies)

Copie ou autrement extrait des texte et des graphiques du document par des opérations autres que ceux commandées par allow-screen-readers (permettre l'existence des lecteurs d'écran).

 

allow-modify-annotations (permettre la modification des annotations)

Ajoute ou modifie les annotations de textes, remplit les champs de formulaire interactifs, et, si allow-modify-contents (permettre la modification des contenus) est réglée aussi, crée ou modifie les champs de formulaire interactifs (y compris les champs pour la signature).

  

allow-fill-in (permettre le remplissage)

Remplit des champs de formulaire interactifs existants (y compris les champs pour la signature), même si allow-modify-annotations (permettre la modification des annotations) n'est pas réglée.

allow-screen-readers (permettre l'existence des lecteurs d'écran)

Extrait des texte et des graphiques (à l'appui de l'accessibilité des utilisateurs désactivés ou dans d'autres buts).

allow-assembly (permettre le groupement)

Groupe le document (insère, tourne, ou supprime les pages et crée des marques-page ou des vignettes d'images), même si le allow-modify-contents (permettre la modification des contenus) n'est pas réglé.

   

allow-degraded-printing (permettre la dégradation de l'impression)

Quand ceci est réglée (et allow-printing (permettre l'impression) est réglée aussi), l'impression est limitée à une représentation de bas niveau de l'aspect, probablement d'une qualité dégradée.

Métadonnées

Il y a deux manières d'inclure les métadonnées dans les dossiers PDF générés par XF Rendant le Serveurr 2007:

a) En utilisant xf:info pour l'information générique du document comprenant les données de l'auteur, du nom, du sujet et des mots-clés:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xf:info xmlns:xf="http://www.ecrion.com/xf/1.0">
        <xf:title>About Metadata</xf:title>
        <xf:author>Joe Doe</xf:author>
        <xf:subject>Example Metata Document</xf:subject>
        <xf:keywords>PDF XML XMP</xf:keywords>
    </xf:info>
    ...
</fo:root>

b) En utilisant xf:meta pour les métadonnées décrites dans le format de RDF/XML (Resource Description Framework - le cadre de description des ressources). 

xf:meta peut contenir un ou plusieurs nœuds de rdf:RDF. Pour chaque nœud, le moteur créera un paquet XMP (Extensible Metadata Platform) dans le dossier PDF produit.

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xf:meta xmlns:xf="http://www.ecrion.com/xf/1.0">
        <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
            <rdf:Description about=" xmlns:my="http://www.mydomain.org/myschema/">
                <my:field>value</my:field>
                <my:my-collection>
                    <rdf:Bag>
                        <rdf:li>red</rdf:li>
                        <rdf:li>green</rdf:li>
                        <rdf:li>blue</rdf:li>
                    </rdf:Bag>
                </my:my-collection>
            </rdf:Description>
        </rdf:RDF>
    </xf:meta>
    ...
</fo:root>

Dans cet exemple, nous avons défini un objet contenant un membre (appelé "champ") et une collection contenant trois éléments.

Adobe PDF présente XMP comme une norme commune que chaque application qui fonctionne avec les métadonnées PDF incorporées doit comprendre. XMP soutient un sous-ensemble de RDF/XML. En outre XMP normalise la définition, la création et le traitement des métadonnées en fournissant:

Les Signatures Numériques

XF Rendering Server 2008 offre soutien pour la production des signatures numériques dans la sortie de PDF.

Il y a deux types de signatures:

Un document signé ne peut pas être changé sans annuler la signature.

Pour produire une signature invisible:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xf="http://www.ecrion.com/xf/1.0">
    <xf:signature 
        name="Dr. Joe Doe" location="Rockville, Maryland" reason="Prescription" 
        certificate-serial-number="58 e9 4c 55 00 00 00 00 00 0c" 
        certificate-issuer="Thawte CA"/>
    ...
</fo:root>

Pour produire une signature visible:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xf="http://www.ecrion.com/xf/1.0">
    <xf:signature 
        id="Sig1"
        name="Dr. Joe Doe" location="Rockville, Maryland" reason="Prescription" 
        certificate-serial-number="58 e9 4c 55 00 00 00 00 00 0c" 
        certificate-issuer="Thawte CA"/>
    ...
    <fo:block ref-signature="Sig1">Signature</fo:block>
</fo:root>

Remarques:

Pour produire un certificat signé par soi-même:

Pour produire une demande de certificat d'être soumise à une Certification Authority - CA (Autorité de Certification - AC)(Thawte, Verisign)

Pour installer un certificat émis par une AC:

Nous recommandons que vous essayez l'utilisation des certificats signés par soi-même. Si vous avez également un ordinateur Windows Server vous pouvez installer vos propres AC et émettre des certificats à être employés par XF.

Vous aurez besoin d'Acrobate 6.0 ou encore plus haut pour valider les signatures.

Vous aurez besoin d'Acrobate 7.0 ou encore plus haut pour valider les signatures émises par une AC parce que l'Acrobate 6.0 affichera un message d'erreur quand une chaîne des certificats est enfoncée dans la signature.

Les Codes Barres

XF Rendering Server 2008 offres soutien pour dessiner les codes barres de UPC-A, UPC-E, EAN-13, EAN-8, 2 de 5, 3 de 9, de Postnet et de DataMatrix.X

<xf:barcode xmlns:xf="http://www.ecrion.com/xf/1.0"/ 
       value="upc code" type="AUTO|UPC-A|UPC-E|EAN-13|EAN-8|2OF5|3OF9|DATAMATRIX|POSTNET"
       bar-unit="length"
       include-checksum="boolean"
       draw-text="boolean"
       extended="boolean"
       encoding="ASCII|C40|TEXT|BASE256|NONE|AUTO"
       preffered-format="AUTO|C10x10|C12x12|etc."
       fo:content-width="length"
       fo:content-height="length"
       fo:content-scaling="non-uniform|uniform"
       fo:font="font"
       fo:padding="padding"
       fo:border="border"
       fo:color="color">

la valeur


le type

bar-unit (l'unité barre)


comprendre la checksum (la somme de contrôle)


draw-texte (desinner le texte)


extended (prolongé)


encoding (coder)

Encoder pour les codes DATAMATRIX .


preferred-format (le format favori)

  • AUTO
  • C10X10
  • C12X12
  • C14X14
  • C16X16
  • C18X18
  • C20X20
  • C22X22
  • C24X24
  • C26X26
  • C32X32
  • C36X36
  • C40X40
  • C44X44
  • C48X48
  • C52X52
  • C64X64
  • C72X72
  • C80X80
  • C88X88
  • C96X96
  • C104X104
  • C120X120
  • C132X132
  • C144X144
  • C8X18
  • C8X32
  • C12X26
  • C12X36
  • C16X36
  • C16X48

Le format favori pour les codes DATAMATRIX .


Les attributs de formatage normal (la police, la couleur) s'appliquent toujours, mais ils doivent être préfixés par l'espace du nom fo:.

<fo:block>
    <xf:barcode value="075-67 816 4125" type="UPC-A" bar-unit="1px" 
                fo:font="7.5pt Arial" 
                fo:color="blue"
                fo:scaling="non-uniform" fo:content-height="50pt" 
                fo:border="1pt solid purple" fo:padding="10pt"/>
</fo:block>
Pour le code source complet pour cet exemple de code voyez "Advanced/Barcodes.fo" situé dans le dossier XML Documents Samples.

Le résultat du rendant est montré dans la figure suivante.

Figure 1


Ce qui suit est un exemple de DATAMATRIX:

<xf:barcode value="Hello World" type="DATAMATRIX" encoding="ASCII" preferred-format="C20X20"/>
		

Le résultat du rendant est montré dans la figure suivante.

Figure 2

Pour le code source complet pour cet exemple de code voyez "Barcodes-Datamatrix.fo" situé dans le dossier XML Documents Samples.

Ce qui suit est un exemple de POSTNET:

<fo:block>
    JOE DOE<fo:block/>
    101 Main Street<fo:block/>
    Anytown US 12345-6789<fo:block/>
    
    <xf:barcode xmlns:xf="http://www.ecrion.com/xf/1.0" value="12345678901" 
                type="Postnet"/>
</fo:block>
		

Le résultat du rendant est montré dans la figure suivante.

Figure 3

Pour le code source complet pour cet exemple de code voyez "Barcodes-Postnet.fo" situé dans le dossier XML Documents Samples.

Les Eléments Prolongés de Disposition

Cette section décrit plusieurs prolongements aux éléments standard de XSL-FO comme fo:table et fo:list-block. Le but de ces prolongements est de fournir un contrôle supplémentaire sur la sortie produite.

Les Etiquettes Continues

Parfois il est nécessaire d'afficher le texte "Continued from the previous page" (suite de la page précédente") toutes les fois qu'une coupure de page se produit:

Figure 4

Ce comportement peut être réalisé en utilisant l'élément xf:continued-label:

<fo:table-cell background-color="rgb(153,204,255)" font-weight="bold">
    <fo:block>Header
        <xf:continued-label xmlns:xf="http://www.ecrion.com/xf/1.0">
            (Continued)
        </xf:continued-label>
    </fo:block>
</fo:table-cell>
Pour le code source complet pour cet exemple de code voyez "Table-Continued.fo" situé dans le dossier XML Documents Samples.

Les Cellules Répétées de Tableau

Parfois il est nécessaire de répéter une cellule de table toutes les fois qu'une coupure de page se produit. Vous pouvez réaliser ce comportement en plaçant la valeur de xf:repeat-on-page-break pour la cellule de table pour qu'elle soit répétée pour la valeur Vrai:

<fo:table-cell display-align="center" xmlns:xf="http://www.ecrion.com/xf/1.0"
               xf:repeat-on-page-break="true">
    <fo:block font-weight="bold">
        [table cell's content is repeated at every split]
    </fo:block>
</fo:table-cell>
<fo:table-cell>
    <fo:block>
        Normal cell spanned across multiple pages... 
    </fo:block>
</fo:table-cell>

Comme vous pouvez voir dans le fragment de code ci-dessous, l'espace de nom de xf doit être déclaré (au cas où il n'a été encore déclaré sur un des éléments parent). Le résultat du rendant est montré dans la figure suivante.

Figure 5

Notre exemple emploie deux dispositions de page différentes pour prouver que la disposition du contenu répété est calculée individuellement chaque fois une coupure de page se produit.

Pour le code source complet pour cet exemple de code voyez "Table-Repeated.fo" situé dans le dossier XML Documents Samples.

Le Flux Alternatif de Disposition

XF Rendant le Serveur fournit plusieurs attributs pour les éléments fo:list-block qui aident les utilisateurs à réaliser un flux alternatif de disposition.

Une utilisation commune de cette caractéristique est la production des catalogues avec des détails de produit qui permutent les images et les descriptions textuelles.

Figure 6

 

Contents | < Des Divers Eléments Intégrés | Annexe A - Les Couleurs >