abracadabraPDF › Forums › PDF – Général › Multiple niveaux de protection › Répondre à : Multiple niveaux de protection
Voila :
– Le fichier d’exemple : http://abracadabrapdf.net/parking/DeVerrouillageChampsMdPasse.pdf
– Le script :
/* on utilise ici la convention de nommage d’Adobe, qui permet d’agir sur tous les champs Enfants uniquement en donnant une instruction au champ Parent, voir l’exemple */
/* on peut aussi ajouter un deuxième bouton de verrouillage général */
/* les textes en capitales et entre guillemets PIERRE, PAUL, JACQUES doivent être remplacés par les noms des champs parents, ou par le nom du champ concerné s’il n’y en a qu’un (ne pas supprimer les guillemets) */
/* les numéros entre guillemets 000000, 111111, 222222 représentent les mots de passe et doivent être remplacés par les vrais mots de passe (ne pas supprimer les guillemets) */
/* dans cet exemple il n’y a que 3 utilisateurs supposés, il suffit d’ajouter des conditions ELSE-IF, d’autres champs et des mots de passe pour augmenter le nombre d’utilisateurs */
/* partie à placer en script d’application, ou bien en événement utilisateur, sur un bouton ou sur un signet */
////////////////////////////////////////////////////////////////////////////
// boite de dialogue
var cResponse = app.response({
cQuestion: “Entrez votre mot de passe”, cTitle: “Mot de passe”, });
// test de la reponse
{
if ( cResponse == null) // si annulation
{
app.alert(“Vous devez entrer votre mot de passe pour utiliser ce document.”);
} // envoi alerte
else if ( cResponse == “000000”) // sinon si reponse est 000000
{
this.getField(“PIERRE”).readonly = false; // deverrouille les champs PIERRE
this.getField(“PIERRE”).fillColor = color.yellow; // champs PIERRE fond jaune
this.getField(“PAUL”).readonly = true; // verrouille les champs PAUL
this.getField(“JACQUES”).readonly = true; // verrouille les champs JACQUES
this.getField(“PAUL”).fillColor = color.white; // champs PAUL fond blanc
this.getField(“JACQUES”).fillColor = color.white; // champs JACQUES fond blanc
app.beep(); // bip de confirmation
}
else if ( cResponse == “111111”) // sinon si reponse est 111111
{
this.getField(“PAUL”).readonly = false; // deverrouille les champs PAUL
this.getField(“PAUL”).fillColor = color.yellow; // champs PAUL fond jaune
this.getField(“PIERRE”).readonly = true; // verrouille les champs PIERRE
this.getField(“JACQUES”).readonly = true; // verrouille les champs JACQUES
this.getField(“PIERRE”).fillColor = color.white; // champs PIERRE fond blanc
this.getField(“JACQUES”).fillColor = color.white; // champs JACQUES fond blanc
app.beep(); // bip de confirmation
}
else if ( cResponse == “222222”) // sinon si reponse est 222222
{
this.getField(“JACQUES”).readonly = false; // deverrouille les champs JACQUES
this.getField(“JACQUES”).fillColor = color.yellow; // champs JACQUES fond jaune
this.getField(“PIERRE”).readonly = true; // verrouille les champs PIERRE
this.getField(“PAUL”).readonly = true; // verrouille les champs PAUL
this.getField(“PIERRE”).fillColor = color.white; // champs PIERRE fond blanc
this.getField(“PAUL”).fillColor = color.white; // champs PAUL fond blanc
app.beep(); // bip de confirmation
}
else // sinon si autre reponse (mot de passe erroné)
{
app.alert(“Ce mot de passe est invalide !”,3);
} // envoi alerte
}
////////////////////////////////////////////////////////////////////////////
/* partie à utiliser sur un deuxième bouton de verrouillage général */
////////////////////////////////////////////////////////////////////////////
this.getField(“PIERRE”).readonly = true; // verrouille les champs PIERRE
this.getField(“PAUL”).readonly = true; // verrouille les champs PAUL
this.getField(“JACQUES”).readonly = true; // verrouille les champs JACQUES
this.getField(“PIERRE”).fillColor = color.white; // champs PIERRE fond blanc
this.getField(“PAUL”).fillColor = color.white; // champs PAUL fond blanc
this.getField(“JACQUES”).fillColor = color.white; // champs JACQUES fond blanc
app.beep(); // bip de confirmation
////////////////////////////////////////////////////////////////////////////