IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSL-FO] Checkbox dans un pdf


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre confirmé Avatar de BrItneY
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    488
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 488
    Points : 501
    Points
    501
    Par défaut [XSL-FO] Checkbox dans un pdf
    Bonjour à tous,

    Je viens vers vous car je n'arrive pas à créer de checkbox dans mon pdf...

    J'ai tout d'abord recherché, et essayé avec xsl:element (voir code ci-dessous), mais comme je ne cherche pas à obtenir de l'HTML, je suppose que c'est normal que cela ne fonctionne pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <xsl:element name="input">
      <xsl:attribute name="type">checkbox</xsl:attribute>
      <xsl:attribute name="value">
        <xsl:value-of select="value"/>
      </xsl:attribute>
      <xsl:if test="fich_EvoX='X'">
        <xsl:attribute name="checked">checked</xsl:attribute>
      </xsl:if>
    </xsl:element>
    Je me suis ensuite tourné vers de l'unicode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:if test="fich_EvoX='X'">
      U+2611
    </xsl:if>
    <xsl:if test="fich_EvoX!='X'">
      U+2610
    </xsl:if>
    Edit -> Mais il ne me convertit pas l'unicode...


    J'ai recherché du côté de la fonction xsl codepoints-to-string(), mais j'obtiens une erreur me disant que cette fonction n'est pas reconnue...
    Comme je sais que l'entête est importante, tous mes fichiers xsl sont ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    Je travaille en C#, et j'ai bien vérifié, au cas où, et l'encodage se fait bien en UTF-8 :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Enregistrer le XML modifié dans un fichier au format UTF8.
            xmldoc.PreserveWhitespace = true;
            XmlTextWriter wrtr = new XmlTextWriter(fichierXML, Encoding.UTF8);
            wrtr.Formatting = Formatting.Indented;
            xmldoc.WriteTo(wrtr);
            wrtr.Close();

    Voilà, je ne sais pas si les informations que je vous ai donné vous permettent de m'aider, si ce n'est pas le cas n'hésitez pas... toute piste est bonne à prendre...

    Merci d'avance.

    BrItneY

  2. #2
    Membre confirmé Avatar de BrItneY
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    488
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 488
    Points : 501
    Points
    501
    Par défaut
    Après pas mal de recherches, il se trouve que je n'appelais pas correctement mes caractères unicode... ce n'est pas U+2610 mais ਲ ou &#xA32; en hexadécimal...

    J'ai également découvert que les fonts disponibles par défaut dans FOP sont très limités... du coup j'ai recherché une solution permettant d'ajouter des fonts... utilisant une dll, car en dotnet, et non une installation de FOP, je ne suis pas en mesure de modifier le fichier userconfig.xml comme beaucoup le font... J'ai décidé d'arrêter cette recherche longue et infructueuse...

    Si certains veulent tenter, je vous fournis le code auquel je suis arrivé, mais non abouti :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    org.apache.fop.fonts.FontFileReader FFReader = new org.apache.fop.fonts.FontFileReader(@"C:/WINDOWS/Fonts/ARIALUNI.TTF");
    org.apache.fop.fonts.TTFFile TtfFile = new org.apache.fop.fonts.TTFFile();
    TtfFile.readFont(FFReader, "ARIALUNI.TTF");
    org.apache.fop.fonts.apps.TTFReader TTFReader = new org.apache.fop.fonts.apps.TTFReader();
    TTFReader.loadTTF(@"C:/WINDOWS/Fonts/ARIALUNI.TTF", "ARIALUNI.TTF");
     
    TTFReader.writeFontXML(TTFReader.constructFontXML(TtfFile, "ArialUnicodeMS", "ArialUnicodeMS", "ArialUnicodeMS", "ArialUnicodeMS", false, "ArialUnicodeMS"), "C:/Inetpub/wwwroot/Essais/Documents/ArialUnicodeMS.xml");
    Après discussion et réflexion avec un collègue, la piste qui restait non explorée, est celle de l'utilisation de la fonction main() du org.apache.fop.fonts.apps.TTFReader...

    J'ai pas mal utilisé ce site, car il décrit les méthodes existantes : http://www.stylusstudio.com/api/fop-...ew-summary.htm

    Voilà, sur ce je déleste ce thread...

    PS : solution de facilité pour faire un checkbox -> tableau carré avec une bordure noire, et mettre un X ou rien ou un O dedans...

Discussions similaires

  1. [PDF] CheckBox dans Pdf
    Par cjacquel dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 01/08/2014, 10h36
  2. Cocher une checkbox dynamiquement dans un pdf avec JS
    Par mattbag dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/10/2010, 20h08
  3. [XSL-FO] pagination dans l'impression pdf
    Par Lolitaaa dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 08/12/2008, 14h03
  4. Insérer des pages d'un pdf dans un pdf xsl fo
    Par VinnieMc dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 03/06/2008, 17h18
  5. [VB.NET] Insérer une colonne de CheckBox dans un DataGrid
    Par Manue.35 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/05/2003, 11h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo