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
////////////////////////////////////////////////////////////////////////////