abracadabraPDF › Forums › PDF – Général › Imprimer un formulaire sans les valeurs par défaut
- Ce sujet est vide.
-
CréateurSujet
-
19 février 2018 à 12:01 #45805dragon8207Membre
Bonjour,
J’ai un formulaire pdf avec des champs dont j’ai indiqué des valeurs par défaut.
Le souci c’est qu’à l’impression ces valeurs par défaut restent.
Il y aurait-il un moyen d’imprimer le formulaire sans valeur par défaut (champs vides)?
Merci, -
CréateurSujet
-
AuteurRéponses
-
19 février 2018 à 13:34 #63419MerlinMaître des clés
Bonjour.
Selon les cas soit on peut réinitialiser les champs avant l’impression, soit on peut ajouter un script en action de document “sera imprimé” qui change la couleur des textes en blanc, et un autre qui le remet en noir en action “a été imprimé”.
19 février 2018 à 13:51 #63420dragon8207MembreComme il y a des cases à cocher, je suppose qu’une réinitialisation des champs est plus cohérent.
Néanmoins, s’il y a des champs qui sont remplis, cela risque de tout réinitialiser ? Une différenciation est-elle possible au niveau du document ?
Merci de prendre le temps pour cette réponse.19 février 2018 à 14:04 #63421MerlinMaître des clésRien n’empêche de changer la couleur des cases-à-cocher.
Et il n’est pas plus compliqué de modifier tous les champs que seulement certains.s’il y a des champs qui sont remplis, cela risque de tout réinitialiser ?
Ce n’est pas un risque, c’est une certitude. :Smiley03:
L’autre problème que ça pose c’est si les champs utilisent l’option “Valeur par défaut”, auquel cas la réinitialisation affichera les valeurs par défaut.
19 février 2018 à 15:24 #63422dragon8207MembreOk, c’est bien ce que je me disais.
J’étais parti sur un script de document qui allait prendre la valeur de chaque champ, regarder si cela correspond à la valeur par défaut, et si c’était le cas, mettre du texte vide à la place genre “”.
comment procède-t-on pour le passer les textes en blanc quand ils sont égaux à la valeur par défaut ?19 février 2018 à 15:34 #63423bebarthMaître des clésbonjour,
Code://pour passer le texte en blanc
this.getField(“myField”).textColor = color.white;
//pour passer le texte en noir
this.getField(“myField”).textColor = color.black;Pour plus d’informations sur les couleurs :
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2Fcolor_properties.htm
@+
:bonjour:19 février 2018 à 19:08 #63424MerlinMaître des cléscomment procède-t-on pour le passer les textes en blanc quand ils sont égaux à la valeur par défaut ?
Seuls les champs textes et les listes ont une valeur par défaut, ça ne fonctionnera pas avec les boutons ou les cases-à-cocher par exemple. Il leur faudrait un autre script.
Ce script ne concerne que les champs de type texte.
À placer en action “sera imprimé” :for (var i=0; i
var oFld = this.getField(this.getNthFieldName(i));
if((oFld.type == “text”) && (oFld.valueAsString == oFld.defaultValue)) {
oFld.textColor = color.white;
}
}À placer en action “a été imprimé” :
for (var i=0; i
var oFld = this.getField(this.getNthFieldName(i));
if((oFld.type == “text”) && (oFld.valueAsString == oFld.defaultValue)) {
oFld.textColor = color.black;
}
}20 février 2018 à 07:26 #63425bebarthMaître des clésbonjour,
personnellement je ne pense jamais à utiliser les scripts des actions du document ! :bravo:
J’aurais fait une usine à gaz pour arriver à ce résultat !!!
Si les champs ont un fond, il faudra utiliser “oFld.textColor = color.transparent” plutôt que “oFld.textColor = color.white” !
Et si les textes ont des couleurs différentes, il faudra stocker les stocker dans une table avant de les récupérer.
Je dis ça au cas ou car cela m’arrive fréquemment d’avoir des fonds de champs et des couleurs de textes différents mais on ne m’a jamais demandé de cacher les valeurs à l’impression…
@+
:bonjour:20 février 2018 à 09:31 #63426MerlinMaître des clésil faudra utiliser “oFld.textColor = color.transparent” plutôt que “oFld.textColor = color.white”
Ça ne fonctionnera pas : le texte ne peut pas être transparent.
Seuls le contour et le fond des champs le peuvent.personnellement je ne pense jamais à utiliser les scripts des actions du document !
J’aurais fait une usine à gaz pour arriver à ce résultat !!!Ça m’est arrivé aussi, et il n’y a pas si longtemps que ça…
:geek:20 février 2018 à 12:56 #63427dragon8207Membreça marchhhheeeeeeeeee (je n’en doutais pas)
Merci !20 février 2018 à 13:04 #63428dragon8207MembreJ’ai voulu rajouter une ligne :
for (var i=0; ivar oFld = this.getField(this.getNthFieldName(i));
if((oFld.type == “text”) && (oFld.valueAsString == oFld.defaultValue)) {
oFld.textColor = color.white;
}{
oFld.textColor = color.black;
}
}
Pour spécifier le blanc uniquement sur les champs qui avaient leur valeur par défaut, mais je crois que n’ai pas compris toute la syntaxe du coup …20 février 2018 à 13:10 #63429bebarthMaître des clés…il manque un else !
Code:for (var i=0; ivar oFld = this.getField(this.getNthFieldName(i));
if((oFld.type == “text”) && (oFld.valueAsString == oFld.defaultValue)) {
oFld.textColor = color.white;
} else {
oFld.textColor = color.black;
}
}
@+
:bonjour:20 février 2018 à 14:51 #63430dragon8207Membreidiot que je suis lol
ça marche
En tous les cas merci les gars, vous gérez.
Du coup on peut le mettre en résoluArigato Gozaimasu !!!!!!!!!
Suis content20 février 2018 à 15:29 #63431MerlinMaître des clésJ’ai voulu rajouter une ligne :
…
Pour spécifier le blanc uniquement sur les champs qui avaient leur valeur par défautSi les champs ont déjà le noir comme couleur de texte c’est inutile.
Ça ne sert que si certains champs ont une couleur de texte ni noire ni blanche.
:idee:8 octobre 2020 à 17:35 #63432DavidFederParticipantHello,
Loin moi l’idée de faire le malin… Je me content de mettre ensemble les merveilles de code que je vois :)Pourquoi changer la couleur alors qu’on peut simplement remplacer la valeur par “”, comme ci-dessous?
Code:for (var i=0; ivar oFld = this.getField(this.getNthFieldName(i));
if((oFld.type == “text”) && (oFld.valueAsString == oFld.defaultValue)) {
oFld.value = “”;
}
}En fait j’avais aussi un problème: dans mon cas c’est pour le print, mais aussi pour enregistrer une version “non modifiable” du document.
du coup, avec le code ci-dessous, si après avoir enregistré la version “read only” du document, l’utilisateur cliquait sur le champs, la valeur par défaut revenait (j’ai un autre script qui remet la valeur par défaut si le champ a été cliqué, puis finalement laissé vide…), du coup j’ai ajouté
oFld.defaultValue= “”;
le code pour remettre la valeur par défaut si après avoir cliqué, finalement on ne rentre pas de contenu:Code:if (event.target.value==””) {
event.target.value = event.target.defaultValue;
}et le code avant enregistrer version “read only”:
Code:for (var i=0; ivar oFld = this.getField(this.getNthFieldName(i));
if((oFld.type == “text”) && (oFld.valueAsString == oFld.defaultValue)) {
oFld.value = “”;
oFld.defaultValue = “”;
}
}8 octobre 2020 à 18:05 #63433DavidFederParticipantok, fini de faire le mariole
j’ai essayé de “condenser” mon code pour éviter de boucler 2x tous les champs en mettant le read-only et le nettoyage des valeurs par défaut comme ceci:Code:function finalize() {//DEFAULT TEXT IN FIELDS & READ ONLY
for (var i=0; ivar oFld = this.getField(this.getNthFieldName(i));
if((oFld.type == “text”) && (oFld.valueAsString == oFld.defaultValue)) {
oFld.value = “”;
oFld.defaultValue = “”;
}
oFld.readonly = true;
}
}mais ça ne fonctionne pas.
Si je nettoie d’abord les valeurs par défaut, puis mets en read-only dans 2 fonctions séparées ça marche.
Mais je suppose que c’est faire tourner la boucle pour rien, non?8 octobre 2020 à 18:38 #63434bebarthMaître des clésbonsoir,
Et si tu modifiais le paramètre “display” des champs dont la valeur correspond à la valeur par défaut :Code:for (var i=0; ivar oFld=this.getField(this.getNthFieldName(i));
if(oFld.type==”text” && oFld.value==oFld.defaultValue) oFld.display=display.noPrint;
}Après l’impression tu remets tous ces champs en “display.visible” !
@+
:bonjour: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.