abracadabraPDF › Forums › PDF – Général › Interdire la modification après sauvegarde
- Ce sujet est vide.
-
CréateurSujet
-
9 mars 2018 à 13:31 #45822
joss_mkp
MembreBonjour,
1 – J’ai un pdf avec un formulaire à remplir et il faudrait que je puisse empêcher la modification des informations une fois que le formulaire est sauvegardé.
2 – Aussi j’ai réussi à avoir une pop up quand les champs obligatoires ne sont pas remplis quand on clique sur imprimer/sauvegarder/quitter. Mais ça n’empêche pas d’imprimer/la sauvegarde/de quitter. Est-il possible de bloquer ces actions tant que tous les champs obligatoires ne sont pas remplis ?
Je précise que je débute dans ce genre de choses. Je ne sais que copier le code JavaScript et ne sais pas en écrire en partant de zéro.
Merci d’avance pour votre aide.
-
CréateurSujet
-
AuteurRéponses
-
9 mars 2018 à 15:19 #63622
Merlin
Maître des clésBonjour et bienvenue.
1. Oui c’est possible, il y a deux façons de faire selon que l’utilisateur final utilise Acrobat Reader ou Acrobat Pro/Standard.
2. J’ai déjà dit par ailleurs ce que je pense de l’absurdité et du mauvais coup fait à l’utilisateur d’un formulaire qu’il ne peut pas enregistrer ni imprimer ni quitter quand il veut.
Met toi à la place de celui qui a fini sa journée et qui voudrait terminer le lendemain, de celui qui a une urgence, de celui qu’on vient de prévenir qu’il va y avoir une coupure dans 1 minute et qu’il faut se dépêcher d’enregistrer les documents en cours, de celui qui voudrait finir ailleurs parce-qu’il lui manque une info sur place, etc.
Il y a plein de bonnes raisons pour faire ça.De plus, un bouton n’empêchera pas l’utilisateur de faire ce qu’il veut avec les menus ou les raccourcis-clavier du logiciel.
Il faut partir du principe que l’utilisateur final n’est pas plus stupide devant un formulaire numérique que devant un formulaire papier.Heureusement Acrobat permet d’utiliser des scripts d’évènement (voir paragraphe 4 : https://www.abracadabrapdf.net/?p=2990 ) qui se déclenchent avant l’impression/l’enregistrement/la fermeture.
Ce qui permet d’alerter l’utilisateur quel que soit le moyen utilisé (bouton, menu, raccourcis-clavier), avec une simple mise en garde qui lui demande s’il est certain de ce qu’il fait.Les scripts d’évènements ne permettent pas de conditions, ils s’exécutent « avant » mais il y a toujours un « après » et la boite de dialogue qui suit apparait forcément.
Donc on ne peut qu’alerter, on ne peut pas bloquer par ce moyen.:Smiley15:
11 mars 2018 à 21:54 #63623bebarth
Maître des clésbonjour,
Je ne sais pas ce que pensera Merlin sur le principe, mais si tu colles :Code:var ok = « pas OK »;en script de document, et ce script :
Code:try {
if (ok== »OK ») {
var enreg = app.alert({
cMsg: « u0041u0076u0065u007Au002Du0076u006Fu0075u0073u0020u0074u0065u0072u006Du0069u006Eu00E9u0020u0064u0065u0020u0072u0065u006Du0070u006Cu0069u0072u0020u006Cu0065u0020u0066u006Fu0072u006Du0075u006Cu0061u0069u0072u0065u0020u003Fu000Du0020u000Du0041u0054u0054u0045u004Eu0054u0049u004Fu004Eu000Du0020u000Du2022u0020u0053u0069u0020u004Fu0055u0049u0020u0076u006Fu0075u0073u0020u006Eu0065u0020u0070u006Fu0075u0072u0072u0065u007Au0020u0070u006Cu0075u0073u0020u006Cu0065u0020u006Du006Fu0064u0069u0066u0069u0065u0072u002Eu000Du2022u0020u0053u0069u0020u004Eu004Fu004Eu0020u0076u006Fu0075u0073u0020u0070u006Fu0075u0072u0072u0065u007Au0020u006Cu0065u0020u006Du006Fu0064u0069u0066u0069u0065u0072u0020u0075u006Cu0074u00E9u0072u0069u0065u0075u0072u0065u006Du0065u006Eu0074u002E »,
cTitle: « Formulaire rempli »,
nIcon: 2, nType: 2
});
if (enreg==4) {
this.flattenPages();
this.removeScript(« ok »);
this.addScript(« ok », « var ok = « pas OK »; »);
}
}
} catch(e) {}en script d’action, cela devrait correspondre à ce que tu veux faire tout en permettant l’enregistrement si le formulaire n’est pas définitivement complété !
Pour commentaires…
@+
:bonjour:12 mars 2018 à 08:14 #63624joss_mkp
MembreBonjour et bienvenue.
1. Oui c’est possible, il y a deux façons de faire selon que l’utilisateur final utilise Acrobat Reader ou Acrobat Pro/Standard.
2. J’ai déjà dit par ailleurs ce que je pense de l’absurdité et du mauvais coup fait à l’utilisateur d’un formulaire qu’il ne peut pas enregistrer ni imprimer ni quitter quand il veut.
Met toi à la place de celui qui a fini sa journée et qui voudrait terminer le lendemain, de celui qui a une urgence, de celui qu’on vient de prévenir qu’il va y avoir une coupure dans 1 minute et qu’il faut se dépêcher d’enregistrer les documents en cours, de celui qui voudrait finir ailleurs parce-qu’il lui manque une info sur place, etc.
Il y a plein de bonnes raisons pour faire ça.De plus, un bouton n’empêchera pas l’utilisateur de faire ce qu’il veut avec les menus ou les raccourcis-clavier du logiciel.
Il faut partir du principe que l’utilisateur final n’est pas plus stupide devant un formulaire numérique que devant un formulaire papier.Heureusement Acrobat permet d’utiliser des scripts d’évènement (voir paragraphe 4 : https://www.abracadabrapdf.net/?p=2990 ) qui se déclenchent avant l’impression/l’enregistrement/la fermeture.
Ce qui permet d’alerter l’utilisateur quel que soit le moyen utilisé (bouton, menu, raccourcis-clavier), avec une simple mise en garde qui lui demande s’il est certain de ce qu’il fait.Les scripts d’évènements ne permettent pas de conditions, ils s’exécutent « avant » mais il y a toujours un « après » et la boite de dialogue qui suit apparait forcément.
Donc on ne peut qu’alerter, on ne peut pas bloquer par ce moyen.:Smiley15:
Bonjour Merlin et merci :Smiley01:
1. Je ne sais pas avec quoi l’utilisateur ouvrira le pdf… et il sera aussi utilisé sur tablettes (je sais que le JavaScript ne s’exécute pas biens sur ces supports, j’ai prévenu le client)
2.Je suis d’accord avec toi pour l’absurdité de ces blocages mais je n’ai pas réussi à convaincre mon client…
J’avais déjà installé les scripts d’évènements trouvés sur ce forum :Smiley03: Il n’y en a pas de bloquants alors (même si je sais que ça te fais mal :Smiley00: )?12 mars 2018 à 08:24 #63625joss_mkp
Membrebonjour,
Je ne sais pas ce que pensera Merlin sur le principe, mais si tu colles :Code:var ok = « pas OK »;en script de document, et ce script :
Code:try {
if (ok== »OK ») {
var enreg = app.alert({
cMsg: « u0041u0076u0065u007Au002Du0076u006Fu0075u0073u0020u0074u0065u0072u006Du0069u006Eu00E9u0020u0064u0065u0020u0072u0065u006Du0070u006Cu0069u0072u0020u006Cu0065u0020u0066u006Fu0072u006Du0075u006Cu0061u0069u0072u0065u0020u003Fu000Du0020u000Du0041u0054u0054u0045u004Eu0054u0049u004Fu004Eu000Du0020u000Du2022u0020u0053u0069u0020u004Fu0055u0049u0020u0076u006Fu0075u0073u0020u006Eu0065u0020u0070u006Fu0075u0072u0072u0065u007Au0020u0070u006Cu0075u0073u0020u006Cu0065u0020u006Du006Fu0064u0069u0066u0069u0065u0072u002Eu000Du2022u0020u0053u0069u0020u004Eu004Fu004Eu0020u0076u006Fu0075u0073u0020u0070u006Fu0075u0072u0072u0065u007Au0020u006Cu0065u0020u006Du006Fu0064u0069u0066u0069u0065u0072u0020u0075u006Cu0074u00E9u0072u0069u0065u0075u0072u0065u006Du0065u006Eu0074u002E »,
cTitle: « Formulaire rempli »,
nIcon: 2, nType: 2
});
if (enreg==4) {
this.flattenPages();
this.removeScript(« ok »);
this.addScript(« ok », « var ok = « pas OK »; »);
}
}
} catch(e) {}en script d’action, cela devrait correspondre à ce que tu veux faire tout en permettant l’enregistrement si le formulaire n’est pas définitivement complété !
Pour commentaires…
@+
:bonjour:Merci :Smiley01:
Donc si je remplie le formulaire il sera impossible à modifier après enregistrement ? Je peux l’ajouter sans soucis aux scripts déjà installés ?12 mars 2018 à 10:03 #63626bebarth
Maître des clésbonjour,
Je te conseille déjà de faire des essais sur des copies de fichiers….
Si tu enregistres et que ton fichier n’est pas aplati, tu auras ce message (cf. copie d’écran).
Si OUI, les champs sont aplatis tu ne peux donc plus les modifier. Si NON tu peux encore les modifier.
Lorsque les champs sont aplatis, il n’y a plus de message !
@+
:bonjour:12 mars 2018 à 10:11 #63627joss_mkp
Membrebonjour,
Je te conseille déjà de faire des essais sur des copies de fichiers….
Si tu enregistres et que ton fichier n’est pas aplati, tu auras ce message (cf. copie d’écran).
Si OUI, les champs sont aplatis tu ne peux donc plus les modifier. Si NON tu peux encore les modifier.
Lorsque les champs sont aplatis, il n’y a plus de message !
@+
:bonjour:Je viens d’essayer et je n’ai pas le message. Au risque de paraître débile, qu’entends-tu par « aplati » ?
12 mars 2018 à 10:38 #63628Merlin
Maître des clésqu’entends-tu par « aplati » ?
Voir la définition de la fonction « Aplatir » sur : https://www.abracadabrapdf.net/utilitaires/acrobat-plugins/abracadabratools/
12 mars 2018 à 10:46 #63629bebarth
Maître des clésJe viens de m’apercevoir que je t’ai dis une bêtise…
en script de document, il faut écrire :Code:var ok = « OK »;sinon, plus de message !
Lorsqu’on aplati les champs, ce ne sont plus des champs (donc plus modifiables). Les valeurs des champs sont assimilées à du texte.
fait un essai et tu comprendras certainement mieux.
@+
:bonjour: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.