Toutes mes réponses sur les forums
-
AuteurRéponses
-
29 août 2014 à 22:39 en réponse à : La recopie de valeur avec des "0" au début… les "0" sont zappés #57559
Stubiana
MembreBonsoir,
var Numero = getField(“Numero_ID”).valueAsString;
getField(“Numero_ID_copie”).value = Numero;Tout simplement :Smiley01:
25 août 2014 à 15:11 en réponse à : Script de calcul pour un formulaire interactif : division et addition. #57497Stubiana
MembreBonjour Maxime,
Donc je suppose que tu as 4 champs de formulaire contenant le nombre d’enfants pour chaque catégorie d’âge
Voici un petit script à mettre dans Propriétés => Calcul => Script de calcul personnalisé d’un 5ème champ que j’ai appelé “Accompagnateurs”Code:var ratio1 = 3 // le ratio pour les enfants de moins de 2 ans
var ratio2 = 3 // le ratio pour les enfants de 3 à 5 ans
var ratio3 = 6 // le ratio pour les enfants de 6 à 13 ans
var ratio4 = 15 // le ratio pour les enfants de 14 ans et plus
this.getField(“Accompagnateurs”).value =
Math.ceil(this.getField(“- de 2 ans”).value / ratio1) +
Math.ceil(this.getField(“3 à 5 ans”).value / ratio2) +
Math.ceil(this.getField(“6 à 13 ans”).value / ratio3) +
Math.ceil(this.getField(“14 ans et plus”).value / ratio4)Les valeurs “- de 2 ans”, “3 à 5 ans”, etc.. dans le getField() sont à remplacer par les noms que tu as donné à tes champs.
En espérant t’avoir aidé :Smiley01:
21 août 2013 à 21:15 en réponse à : Insertion automatique chiffres + changement couleur dans menu déroulant – RÉSOLU #55578Stubiana
MembreCode:var a = “P” + (numPages- 1).toString() + “.CS patho.Texte4”;
this.getField(a).value = Math.floor(numPages/2) + 1;Par contre il faudra penser à ajouter les résultats de la précédente consultation AVANT de créer une nouvelle consultation, sinon cela fausse le calcul.
Cordialement :bonjour:
21 août 2013 à 19:17 en réponse à : Insertion automatique chiffres + changement couleur dans menu déroulant – RÉSOLU #55576Stubiana
MembrePour ta question 2, il suffit de rajouter ce code sur ton champ liste, en tant que format personnalisé :
Code:if (event.target.value == “RAS”)
event.target.textColor = color.black;
else
event.target.textColor = color.red;Pour la dernière question, je t’invite à aller voir le post de djamel : http://abracadabrapdf.net/forum/index.php/topic,2184.0.html, son fichier contient en partie la réponse à ta question (sachant que la méthode est la même que le champ soit un champ de texte ou un champ liste)
Cordialement :bonjour:
21 août 2013 à 16:02 en réponse à : Déverrouiller un champ à l’aide d’un Javascript. – RÉSOLU #55580Stubiana
MembreBonjour,
Remplace ton script de calcul personnalisé par :
Code:var one = this.getField(“fill_12”);
var two = this.getField(“fill_10”);
var three = this.getField(“fill_7”);
if (one.value == ’04 CV’|| one.value == ’05 CV’|| one.value == ’06 CV’||
one.value == ’07 CV’||
one.value == ’08 CV’)
{
two.value=’C.I’
three.value=’V.P’
two.readonly = true;
three.readonly = true;
}
else if (one.value != ” “)
{
two.readonly = false;
three.readonly = false;
}
else
{
two.readonly = true;
three.readonly = true;
}Cordialement :bonjour:
21 août 2013 à 15:56 en réponse à : Insertion automatique chiffres + changement couleur dans menu déroulant – RÉSOLU #55575Stubiana
MembreTout de suite c’est plus explicite :Smiley08:
Rajoute ça à la suite de ton code sur ton bouton “Nouvelle consultation” :
Code:var a = “P” + (numPages-1).toString() + “.CS patho.Texte4”;
this.getField(a).value = numPages;Cordialement :bonjour:
21 août 2013 à 15:10 en réponse à : Insertion automatique chiffres + changement couleur dans menu déroulant – RÉSOLU #55573Stubiana
MembreBonjour,
Qu’entends-tu par “dupliquer” ? J’ai beau chercher mais… le mode Template ? :Euuuh:
20 août 2013 à 19:00 en réponse à : Insertion automatique chiffres + changement couleur dans menu déroulant – RÉSOLU #55571Stubiana
MembreTa matrice ? Tu parles du contenu de ton document ?
Avec quel logiciel as-tu dupliqué ton document ?
Cordialement
20 août 2013 à 17:20 en réponse à : Insertion automatique chiffres + changement couleur dans menu déroulant – RÉSOLU #55569Stubiana
MembreBonjour,
Peut être en essayant comme ça ? :
Code:var myPrefix = event.target.name.substring(0,event.target.name.indexOf(‘Texte9’));
var p = this.pageNum;
var A = (p+1)*0.5;
this.getField(myPrefix + ‘ Texte9’).value = A;Pour le reste je m’y pencherai lorsque j’aurai un peu plus de temps :Smiley03:
Cordialement :bonjour:
19 août 2013 à 20:45 en réponse à : Automatisation d’assemblage et d’indexage incorporé. – RÉPONDU #55564Stubiana
MembreBonjour,
Si tu ne veux aucune interaction avec l’utilisateur, le JavaScript seul ne te permettra pas cela. En effet, les scripts JavaScript, ou du moins ceux spécifiques à Adobe, ont besoin d’un trigger pour être exécutés (lancement à la main, ouverture du document, etc…).
Il te faudra donc toucher aux lignes de commande de Windows et je suis désolé mais ne travaillant pas sous Windows, je ne vais pas pouvoir t’aider sur ce coup là :Smiley11:Cordialement :bonjour:
Stubiana
MembreBonjour,
Place ce script sur ton bouton, en action “Souris enfoncée” :
var champ1 = this.getField(“champ1”);
var champ2 = this.getField(“champ2”);if (champ1.value == “” && champ2.value == “”)
{
app.alert(“Merci de saisir votre nom de champ1 et champ2”);
}
else if (champ1 != “Bonjour” && champ2 != “Bonsoir”)
{
app.alert(“Vos champs champ1 et champ2 ne sont pas valides !”);
champ1.value = “”;
champp2.value = “”;
}
else if (champ1 != “Bonjour”)
{
app.alert(“Votre champ champ1 n’est pas valide !”);
champ1.value = “”;
}
else if (champ2 != “Bonsoir”)
{
app.alert(“Votre champ champ2 n’est pas valide !”);
champ2.value = “”;
}
else
{
app.alert(“Valide !”);
// action à effectuer si valide
}Cordialement :bonjour:
16 août 2013 à 15:33 en réponse à : Champs identiques avec possibilité de modification. – RÉSOLU #55400Stubiana
MembreBonjour djamel,
Sur ton champ Text1 sur l’action “Champ désactivé”, il suffit de placer ce script :
this.getField(“Text2”).value = event.target.value;Cordialement :bonjour:
13 août 2013 à 19:06 en réponse à : Aide codage JS: résultats suivants choix multiples différents champs. – RÉPONDU #55516Stubiana
MembreUne solution un peu lourde mais efficace serait de mettre le code comme format personnalisé pour chacun des champs que l’utilisateur va remplir.
Petit rappel, les scripts insérés au niveau du document ne seront exécutés qu’une fois à l’ouverture du formulaire.
Cordialement :bonjour:
Stubiana
MembreBonjour, cette action est tout à fait possible oui, il suffit :
-d’ajouter un champ de texte à l’endroit désiré, et de le mettre en lecture seule et invisible à l’écran par défaut
-de faire un clic droit sur le bouton, Propriétés > Actions, puis “Afficher/Masquer un champ” sur l’action “Souris enfoncée”
-de sélectionner “Afficher” et le nom du champ de texte dans la liste qui sera apparueCordialement :bonjour:
12 août 2013 à 15:34 en réponse à : Aide codage JS: résultats suivants choix multiples différents champs. – RÉPONDU #55511Stubiana
MembreBonjour,
Code:var f = this.getField(“typelicen”);var type = f.getItemAt(f.currentValueIndices, false);
var handicape = this.getField(“travhandi”).isBoxChecked(0);
var anciennete = this.getField(“anciennete”).value;
if (type == “Faute grave” || type == “Inaptitude classique” || type == “Rupture conventionnelle”)
{
this.getField(“dureepreavis”).value = “Pas de Préavis”;
}
else
{
if (handicape)
{
if (anciennete < 0.6)
{
this.getField(“dureepreavis”).value = “2 Semaines”;
}
else if (anciennete >= 0.6 && anciennete <= 2)
{
this.getField(“dureepreavis”).value = “2 Mois”;
}
else
{
this.getField(“dureepreavis”).value = “3 Mois”;
}
}
else
{
if (anciennete < 0.6)
{
this.getField(“dureepreavis”).value = “1 Semaine”;
}
else if (anciennete >= 0.6 && anciennete <= 2)
{
this.getField(“dureepreavis”).value = “1 Mois”;
}
else
{
this.getField(“dureepreavis”).value = “2 Mois”;
}
}
}A insérer où tu le souhaite :Smiley03:
Cordialement :bonjour:
8 août 2013 à 17:57 en réponse à : Formulaire variant en fonction des réponses données. – RÉSOLU #55453Stubiana
MembreMet plutôt le code sur ta case à cocher, lorsqu’elle est décochée tu cache tout les champs :
Code:if (this.getField(“CFCheck”).isBoxChecked(0))
{
this.getField(“ListeCF”).display = display.visible;
}
else
{
this.getField(“ListeCF”).display = display.hidden;
this.getField(“1”).display = display.hidden;
this.getField(“2”).display = display.hidden;
this.getField(“3”).display = display.hidden;
this.getField(“4”).display = display.hidden;
this.getField(“5”).display = display.hidden;
this.getField(“6”).display = display.hidden;
this.getField(“7”).display = display.hidden;
this.getField(“8”).display = display.hidden;
this.getField(“9”).display = display.hidden;
this.getField(“10”).display = display.hidden;
this.getField(“11”).display = display.hidden;
this.getField(“12”).display = display.hidden;
this.getField(“13”).display = display.hidden;
this.getField(“14”).display = display.hidden;
this.getField(“15”).display = display.hidden;
this.getField(“16”).display = display.hidden;
this.getField(“17”).display = display.hidden;
this.getField(“18”).display = display.hidden;
this.getField(“19”).display = display.hidden;
this.getField(“20”).display = display.hidden;
}Initialisation();
Chez moi ça marche :Smiley03:
Cordialement :bonjour:
8 août 2013 à 17:20 en réponse à : Formulaire variant en fonction des réponses données. – RÉSOLU #55451Stubiana
MembreSerait-il possible de mettre ton fichier en pièce jointe ? N’ayant pas la totalité du code sous les yeux je ne peux pas me rendre compte de ce qui cloche.
Merci :bonjour:
8 août 2013 à 17:14 en réponse à : Formulaire variant en fonction des réponses données. – RÉSOLU #55449Stubiana
Membreje pense que c’est tout simplement dû à une erreur d’écriture, il faut écrire “display.hidden” et non pas seulement “hidden” dans ton if :Smiley03:
Cordialement :bonjour:
8 août 2013 à 16:19 en réponse à : Formulaire variant en fonction des réponses données. – RÉSOLU #55445Stubiana
MembreJe ne sais pas si ça peut résoudre le problème mais en tout cas ton code comporte des erreurs de syntaxe :
– L’opérateur == effectue un test d’égalité, il renvoie un booléen (true ou false) qui indique si le le test est correct ou non (par exemple 0 == 0 renverra true puisque 0 est bien égal à 0, mais 1 == 0 renverra false)
– L’opérateur = effectue une affectation, c’est-à-dire qu’il donne la valeur à une variable (par exemple après le code a = 0; a vaudra 0)
Dans ton deuxieme code, tu utilise une affectation dans ton if, donc le programme ne va pas tester si le champ est caché, il va le RENDRE caché.
De même, ligne d’en dessous, le programme ne va pas mettre la valeur de la liste à 0, il va TESTER si elle est égale à 0, et renverra true ou false.Une correction serait donc :
Code:if (this.getField(“ListeMSD”).display == hidden);
{
this.getField(“ListeMSD”).value = “0”
}Cordialement :bonjour:
8 août 2013 à 15:07 en réponse à : Formulaire variant en fonction des réponses données. – RÉSOLU #55442Stubiana
MembreOui, cette méthode ne marche qu’avec les nombres, après il y aura d’autres méthodes plus compliqué qui dépendent des noms de tes champs :
– Si tes noms de champ sont “1”, “2”, “3”, …., une boucle simple fera l’affaire
– Si tes noms de champs sont un chiffre suivi d’un texte, il faudra concaténer les deux, par exemple :
Code:for (var i = 2 ; i<= 20 ; i++)
{
this.getField(i+”B”).display = hidden;
}– Si ce n’est que du texte… :joker:
Cordialement :bonjour:
Stubiana
MembreTu as simplement oublié d’insérer la fonction diffdate aux scripts du document (Outils > javascript > Scripts Javascript du document) :Smiley03:
Code:function diffdate(d1, d2)
{
var jour = Math.abs(d1.getTime() – d2.getTime());
return Math.floor(jour/(1000*60*60*24));
}Cordialement :bonjour:
Stubiana
MembreC’est à cause de “datearrivee” :Smiley05:
Des fois tu as écris “datearrivee” et des fois “datearrive” :geek:
Cordialement :bonjour:
7 août 2013 à 15:20 en réponse à : Formulaire variant en fonction des réponses données. – RÉSOLU #55440Stubiana
MembrePour ton problème de getField, si les valeurs se suivent, tu peux utiliser une boucle :
Remplace :
Code:this.getField(“2″;”3″;”4″;”5″;”6″;”7″;”8″;”9″;”10″;”11″;”12″;”13″;”14″;”15″;”16″;”17″;”18″;”19″;”20”).display = display.hidden;par
Code:for (var i = 2 ; i<=20 ; i++)
{
this.getField(i).display = hidden;
}Pour rajouter du texte tu peux simplement ajouter un nouveau champ de texte, et le mettre en lecture seule pour que personne ne puisse le modifier :Smiley03:
Cordialement :bonjour:
Stubiana
MembreC’est simplement dû à une petite erreur de ma part, essaye avec ça dans l’exemple 2 :
if (event.target.value != “”)
{
var date_depart = util.scand(“dd/mm/yyyy”, event.target.value);
var date_arrivee = util.scand(“dd/mm/yyyy”,this.getField(“datearrivee”).value);
this.getField(“anciennete”).value = diffdate(date_depart, date_arrivee);
}
else
{
this.getField(“anciennete”).value = “”;
}Cordialement :bonjour:
Stubiana
MembreMerci, simplement un nombre années/jours entre les 2 dates
La fonction calcule simplement le nombre de jours mais pas le nombre d’années (il suffit de diviser le nombre de jours par 365 pour avoir le nombre d’années)
Par contre, as-tu un exemple concret; s’il te plaît.
Je comprend pas trop comment tu l’implémentes dans ton formulaire.Tu l’ajoutes dans un champs à script de calcul personnalisé ?
Tu définis avant tes variables d1 et d2 genre :
d1 = this.getField(“date1”).value;Tout dépend de l’utilisation que tu vas faire de cette fonction.
Le mieux est de l’ajouter aux scripts du document, comme ça tu pourras l’utiliser simplement en l’appelant, depuis n’importe quel champ.Bien sur il faut définir les paramètres que tu vas passer à ta fonction. Prenons un exemple :
Tu as un champ “Date d’arrivée”, et tu souhaiterais connaitre l’ancienneté de la personne, qui sera affichée dans un autre champ appelé “Ancienneté”.
On suppose au départ que “Date d’arrivée” est vide, donc “Ancienneté” l’est aussi.
Lorsque l’utilisateur entrera une date dans le champ “Date d’arrivée”, “Ancienneté” sera mis à jour.Il te suffit donc d’ajouter ce script d’action dans le champ “Date d’arrivée” sur l’action “Champ désactivé” :
if (event.target.value != “”)
{
this.getField(“Ancienneté”).value = diffdate(event.target.value, new Date());
}
else
{
this.getField(“Ancienneté”).value = “”;
}De cette façon, lorsque l’utilisateur entrera une date et passera au champ suivant, “Ancienneté” sera mis à jour :Smiley01:
:fleche: Attention : “Date d’arrivée” doit être au format Date, sinon ça ne marchera pas.
J’espère être assez clair :siffle:
Cordialement :bonjour:
5 août 2013 à 17:13 en réponse à : Formulaire variant en fonction des réponses données. – RÉSOLU #55432Stubiana
MembreOr, dans la liste des caméras ils choisissent quel modèle : A, B ou C.
C’est de cette liste que je parle, donc je suppose que tu ne l’a pas encore créée.
Je pense que le mieux est de créer ton fichier sous Open Office, en y incluant tout le texte de ton formulaire, et en laissant des espaces à l’emplacement des champs, puis d’exporter ce fichier au format PDF.
Une fois fait, tu l’ouvre avec Acrobat, tu cliques sur Créer un formulaire, A partir d’un document existant, et Document Actif.Lorsque tu aura fait ça, préviens nous qu’on puisse commencer à voir cette histoire de liste. :Smiley03:
Cordialement. :bonjour:
Stubiana
MembreBonjour,
Pour être précis, tu aurais simplement besoin du nombre de jours ? Ou aussi des heures minutes secondes ?
Une petite fonction au cas où, elle renvoie le nombre de jours entiers écoulés entre 2 dates.
function diffdate(d1, d2)
{
var jour = Math.abs(d1.getTime() – d2.getTime());
return Math.floor(jour/(1000*60*60*24));
}Cordialement :bonjour:
5 août 2013 à 16:03 en réponse à : Formulaire variant en fonction des réponses données. – RÉSOLU #55430Stubiana
MembreAvec Acrobat, c’est très simple.
Clic droit sur ta liste > Propriétés > Action > Le déclencheur sera “Souris enfoncée” et l’action “Afficher/Masquer un champ” > Ajouter > Tu choisis le champ qui va contenir le numéro de la caméra et tu coche Afficher :Smiley01:
Pour que ton champ soit par défaut caché avant que le caméraman clique sur la zone de liste, Clic droit sur le champ > Propriétés > Général > Tu remplaces “Visible à l’écran” par “Invisible à l’écran”
N’hésite pas si tu as besoin de plus de renseignements
Cordialement :bonjour:
5 août 2013 à 15:02 en réponse à : Formulaire variant en fonction des réponses données. – RÉSOLU #55426Stubiana
Membre:joker:
Je ne m’y connais pas du tout en script OpenOffice, mais je pense qu’il serait beaucoup, beaucoup plus simple de faire ça avec Adobe Acrobat (si tu le possède) et dans ce cas là je pourrais t’aider :Smiley01:
Cordialement
3 août 2013 à 20:04 en réponse à : Appliquer un format personnalisé à plusieurs champs. – RÉSOLU #55422Stubiana
Membre:bravo:
Merci beaucoup! :bonjour:
3 août 2013 à 13:17 en réponse à : Appliquer un format personnalisé à plusieurs champs. – RÉSOLU #55420Stubiana
MembreEt bien justement, je ne trouve pas de fonction ou méthode Javascript qui me permettrait de modifier la propriété “Format” d’un champs, à moins d’avoir mal cherché :Ooops:
Merci :bonjour:
Stubiana
MembreBonjour,
Comme a dit très justement mon voisin du dessus, quelle sera l’utilité de tous ces changements de format ?
Cela nous aiderait beaucoup pour répondre à la question :siffle:Cordialement :bonjour:
31 juillet 2013 à 20:17 en réponse à : Appliquer un format personnalisé à plusieurs champs. – RÉSOLU #55418Stubiana
MembreOui ça aurait été la meilleure solution si j’avais écris ce script au début de la création du formulaire, je l’aurais placé dans mon premier champ et j’aurais fait un simple copier/coller.
Mais malheureusement tout mon formulaire est déjà fait, et remplacer un par un tout mes champs de nombre me prendrait je pense plus de temps que copier/coller le script. :Smiley02:Pour reformuler ma question, n’y aurait-il pas un moyen d’appliquer un format personnalisé à plusieurs champs déjà présents dans le formulaire, et ce en une seule fois ?
Merci. :priere:
Stubiana
MembreBonjour bebarth,
La fonction createChild peut prendre 3 paramètres
Copier/coller de la doc JS :
cName
The name of the bookmark that the user sees in the navigation panel.cExpr
(optional) An expression to be evaluated whenever the user clicks the bookmark. It is equivalent to creating a bookmark with a JavaScript action, as described in the PDF Reference version 1.7. The default is no expression.nIndex
(optional) The 0-based index into the children array of the bookmark at which to create the new child. The default is 0.Le 3eme paramètre, nIndex, détermine la position du signet par rapport à son parent, il te suffit donc de mettre en paramètre le nombre de signets de ton document, et il sera placé en dernière position.
Ce qui donne:
this.bookmarkRoot.createChild(“Dernière page”, “”, this.bookmarkRoot.children.length);Cordialement. :bonjour:
Stubiana
MembreMais de rien :bonjour:
Stubiana
MembreBonjour,
Si je comprend bien, ton utilisateur entre une date au format aaaa/mm/jj, et tu veux qu’elle apparaisse sous la forme jj/mm/aaaa ?
Si oui, voila un script à placer dans Format > Personnalisée > Script de format personnalisé :
var d = util.scand(“yyyy/mm/dd”, event.value); //récupère la date entrée au format aaaa/mm/jj
if (d != null) // si la date entrée est valide, on modifie son format
{
event.value = util.printd(“dd/mm/yyyy”, d);
}
else
{
app.alert(“Date au mauvais format, entrez une date sous la forme aaaa/mm/jj”); // sinon on affiche un message d’erreur
}J’espère avoir répondu à la question :Smiley03:
Cordialement
30 juillet 2013 à 08:16 en réponse à : Interdire l’enregistrement d’un PDF éditable. – RÉPONDU #55394Stubiana
MembreBonjour,
Je ne connais pas assez bien Acrobat XI, mais Merlin a répondu à ta question dans son précédent message :
Bonjour.
Non. Que le PDF soit éditable ou pas n’y change rien.
En conclusion : It’s not possible / Non è possibile
Cordialement
30 juillet 2013 à 07:01 en réponse à : Suppression d’espaces dans formulaire Acrobat pro X. – RÉSOLU #55301Stubiana
MembreBonjour paquerette,
Où as-tu placé ce script ? Sur le bouton ? Sur le champs adresse mail ?
Si ton script marche bien mais qu’il faut simplement enlever les espaces, essaye ça :
function suppr_space(chaine)
{
var resultat=””;
for (var i=0;i{
if (chaine.charCodeAt(i) != 32)
resultat = resultat + chaine.charAt(i);
}
return resultat;
}event.value = event.target.value.toLowerCase();
str = event.value;
event.value = str.replace(/(^|s|[-,.])w/g,function(cWrd){return cWrd.toLowerCase()});var f = this.getField(“Texte12”);
f.value = suppr_space(this.getField(“Texte4”).value)
+ “.” + suppr_space(this.getField(“Texte5”).value)
+”@free.fr”;
;
var r = ‘/(é|É|è|È)/g’;
var str = event.change;
var match = str.match(eval(r));
if (match)
{
event.change = “e”;
}Cordialement
29 juillet 2013 à 08:30 en réponse à : Suppression d’espaces dans formulaire Acrobat pro X. – RÉSOLU #55299Stubiana
MembreJe génère automatiquement dans acrobat formulaire l’adresse email ci jointe ex :”jean claude.de britigny sur orge”
Je ne comprend pas trop, l’exemple n’est pas une adresse email :Euuuh:
Sinon voila la fonction qui renvoie une chaine de caractère dont les espaces ont été remplacés par des points:
function suppr_space(chaine)
{
var resultat=””;
for (var i=0;i{
if (chaine.charCodeAt(i) == 32)
resultat = resultat + “.” ;
else
resultat = resultat + chaine.charAt(i);
}
return resultat;
}Cependant je ne vois pas l’utilité de faire ça pour créer une adresse email, si tu veux la créer à partir du nom et du prénom tu n’a qu’à concaténer les 2 champs en les séparant par un point, puis en ajoutant le FAI après, ex :
var nom = this.getField(“Nom”).value;
var prenom = this.getField(“Prenom”).value;
var adresse = prenom + “.” + nom + “@free.fr”;Cordialement
25 juillet 2013 à 14:16 en réponse à : Problème droits étendus et versions d’Adobe Reader. – RÉPONDU #55386Stubiana
Membre1- OK mais ce sont des branques
Je n’ai jamais dit le contraire :siffle:
En tout cas merci beaucoup pour toutes ces réponses, je vais enfin pouvoir mettre en ligne mes formulaires :extra:
25 juillet 2013 à 07:44 en réponse à : Problème droits étendus et versions d’Adobe Reader. – RÉPONDU #55384Stubiana
Membre1- Le copier/coller signifierait qu’il devrait switcher en permanence entre le PDF et le logiciel, apparement cette solution ne plait pas au service concerné (et je n’ai pas mon mot à dire là dessus)
2- Si l’utilisateur envoie le formulaire par mail, lorsqu’on le reçoit et qu’on l’ouvre, on peut toujours modifier les champs, et cela pose un problème au service juridique de la boite…
3- Oui j’avais déjà pensé à mettre les champs en lecture seule + rajouter un mot de passe qui empèche la modification avec Acrobat X Pro, comme ça seuls les détenteurs du mot de passe pourront modifier le PDF. :Smiley01:
De plus mon client n’a plus le message d’erreur à l’ouverture, je ne sais vraiment pas d’où ça venait mais en tout cas c’est parti :Smiley08:
Une dernière question mais qui n’a pas vraiment de rapport, je ne sais pas si je dois ouvrir un nouveau sujet pour ça :
Lorsque mon utilisateur clique sur le bouton pour verrouiller le PDF, je lui propose d’enregistrer la version modifiable s’il veut la réutiliser ultérieurement. J’utilise donc app.execMenuItem(“SaveAs”);
Il m’affiche alors la fenetre d’enregistrement, là où l’utilisateur peut entrer le nom de son nouveau fichier. Par défaut, le nom écrit est le nom du fichier actuel, j’aimerais savoir s’il est possible de modifier ce nom, par exemple nom_du_fichier+”_modifiable”, pour que l’utilisateur ne risque pas d’écraser l’ancien fichier.Un petit screen ci-joint pour expliciter ma demande.
Merci beaucoup :soleil:
[attachment deleted by admin]
22 juillet 2013 à 11:38 en réponse à : Problème droits étendus et versions d’Adobe Reader. – RÉPONDU #55382Stubiana
MembreMerci de cette réponse rapide :Smiley01:
Je ne comprend pas pourquoi ils devraient faire ça… :doute: :Euuuh:
Mais s’ils le font on est assuré de perdre les droits étendus.En fait nous n’avons toujours pas implémenté de gestion automatique des données recueillies, ce qui veut dire en gros que lorsqu’on reçoit un PDF rempli, on doit retaper toutes les informations à la main dans un logiciel spécifique (mais le sujet n’est pas d’actualité, ça ne sera pas fait avant quelques temps :mur:).
Du coup j’ai simplement besoin que le client renvoie un document PDF totalement non-modifiable, en gros une image quoi, de sorte à ce que ni nous ni une personne tierce puisse de nouveau modifier les champs du formulaire.
:fleche: donc imprimer le formulaire via une imprimante virtuelle et nous envoyer la copie.Si j’ai bien compris, lorsqu’ils imprimeront via cette imprimante virtuelle (je cite PDF Creator car gratuit mais il existe aussi Adobe PDF, etc.), le formulaire perdra ses droits étendus ?
Le problème dont tu parles ne se pose que si plusieurs intervenants utilisent le même formulaire avec différentes versions de Reader.
Si chacun reçoit un formulaire qu’il est seul à remplir : pas de problème.:extra: mais alors pourquoi ce message d’erreur à l’ouverture ? Est-ce dû au Javascript qui modifie le PDF à l’ouverture ?
Ce que tu peux faire pour contourner le problème c’est de diffuser ton formulaire avec Acrobat via Acrobat.com, ainsi les destinaires recoivent un lien vers un formulaire en ligne, qu’ils peuvent remplir en plusieurs fois, et qui te débarrasse de tous ces problèmes de compatibilité.
Et ça facilitera la collecte des données.Du coup avec cette méthode, le client peut-il enregistrer sa saisie sous forme d’un PDF non modifiable ?
Merci encore pour tes réponses :Smiley01:
-
AuteurRéponses