Chiffrement
L'objet encryption ajoute une protection par mot de passe au PDF généré. Vous pouvez définir des mots de passe utilisateur et propriétaire séparés et contrôler les actions que les lecteurs sont autorisés à effectuer.
Propriétés
| Propriété | Type | Défaut | Description |
|---|---|---|---|
encryptionType | string | — | Algorithme de chiffrement : RC4_40, RC4_128, AES_128, ou AES_256 |
userPassword | string | — | Mot de passe requis pour ouvrir le document |
ownerPassword | string | — | Mot de passe requis pour modifier les permissions ou supprimer la protection |
permissions | object | — | Drapeaux de permission granulaires (voir ci-dessous) |
doNotEncryptMetadata | boolean | false | Quand true, les métadonnées du document restent non chiffrées |
encryptEmbeddedFilesOnly | boolean | false | Quand true, seuls les fichiers joints intégrés sont chiffrés |
Types de chiffrement
| Type | Longueur de clé | Remarques |
|---|---|---|
RC4_40 | 40-bit | Hérité, faible — utiliser uniquement pour la rétrocompatibilité |
RC4_128 | 128-bit | Hérité, supporté par les anciens lecteurs |
AES_128 | 128-bit | Moderne, largement supporté |
AES_256 | 256-bit | Le plus robuste disponible, recommandé pour les documents sensibles |
Permissions
L'objet permissions contrôle ce qu'un utilisateur qui ouvre le document avec le mot de passe utilisateur est autorisé à faire.
| Propriété | Type | Défaut | Description |
|---|---|---|---|
print | boolean | false | Autoriser l'impression |
modify | boolean | false | Autoriser la modification du contenu du document |
copy | boolean | false | Autoriser la copie du texte et des graphiques |
annotate | boolean | false | Autoriser l'ajout d'annotations |
fillForm | boolean | false | Autoriser le remplissage des champs de formulaire |
extract | boolean | false | Autoriser l'extraction de texte pour l'accessibilité |
assemble | boolean | false | Autoriser l'insertion, la rotation ou la suppression de pages |
Exemples
Protection par mot de passe basique
{
"document": {
"encryption": {
"encryptionType": "AES_256",
"userPassword": "viewerPass123",
"ownerPassword": "adminPass456"
},
"content": [
{ "p": "This document requires a password to open." }
]
}
}
Lecture seule avec impression autorisée
{
"document": {
"encryption": {
"encryptionType": "AES_256",
"userPassword": "readonly",
"ownerPassword": "owner",
"permissions": {
"print": true,
"copy": false,
"modify": false,
"annotate": false,
"fillForm": false,
"extract": true,
"assemble": false
}
},
"content": [
{ "p": "This document can be viewed and printed, but not edited or copied." }
]
}
}
Remplissage de formulaires uniquement
{
"document": {
"encryption": {
"encryptionType": "AES_128",
"userPassword": "",
"ownerPassword": "formsAdmin",
"permissions": {
"print": true,
"fillForm": true,
"modify": false,
"copy": false,
"annotate": false,
"extract": false,
"assemble": false
}
},
"content": [
{ "p": "Fill in the fields below:" }
]
}
}
Un userPassword vide permet d'ouvrir sans mot de passe tout en appliquant les restrictions de permissions.
Métadonnées non chiffrées
{
"document": {
"metadata": {
"title": "Confidential Report",
"author": "Operations Team"
},
"encryption": {
"encryptionType": "AES_256",
"userPassword": "secure",
"ownerPassword": "admin",
"doNotEncryptMetadata": true
},
"content": [
{ "p": "Metadata is searchable even though the document is encrypted." }
]
}
}
Cela est utile lorsque les documents doivent être indexés par un système de gestion documentaire sans nécessiter le mot de passe.