Donnez vie à vos documents numériques !
 

zs23000

Toutes mes réponses sur les forums

Affichage d’1 réponse (sur un total de 1)
  • Auteur
    Réponses
  • en réponse à : Champ de calcul automatique ne calcul pas #56282
    zs23000
    Membre

    Bonsoir,

    Même si il n’y a eu aucune réponse mais bon mon problème est résolue, voila la solution :

    – Mon code initial :

            static String book = “myForm.pdf”;
            static String bookstamp = “myFormTest.pdf”;
            PdfReader reader = new PdfReader (book);
            PdfStamper stamper = new PdfStamper (reader, new FileOutputStream (String.format (bookstamp)));
            stamper.getAcroFields ();
            stamper.setField (“ca50”, “15000”);
            stamper.getAcroFields () ;
            stamper.setField (“ca30”, “150”);
            stamper.close ();

    – Le bon code :
    Il fallait ajouter deux ligne :
            stamper.addJavaScript(“this.calculateNow();”);
            reader.removeUsageRights();
    Juste avant le “stamper.close ();”

    Pour ceux que ça intéresse intéresse l’explication est toute simple, le calcul automatique des valeurs de champ dans les fichiers PDF se fait par le biais de Javascript dans le PDF. Dans le cas de certains événements (par exemple, la valeur d’un champ ou changé objet d’un domaine perdu) ce Javascript est exécuté et définit la valeur du champ la nouvellement calculé.

    iText, d’autre part, ne fonctionne pas avec Javascript. En iText seules les parties du PDF que vous modifiez explicitement sont modifiés, les effets secondaires ne sont pas souhaitées.

    Ainsi, pour avoir le bon calcul sur les champs il faut déclencher le recalcule des champs lors de l’ouverture du fichier PDF.

Affichage d’1 réponse (sur un total de 1)