Skip to content

$pdf.sign

Description

Appose une signature à un pdf.

Danger

Cette méthode en est au stade expérimental

Syntaxe

$pdf.sign( pdf , keystore , keypass [ , destination ] )

Paramètres

pdf file / string
Fichier auquel apposer la signature
keystore file / string
Fichier ou path du keystore pkcs12
keypass string
Mot de passe du keystore
options map

Options de signature. Les options reconnues sont:

destination file / string
Fichier de destination. Peut être null ou non spécifié, auquel cas la méthode se charge de créer un fichier dans le répertoire de travail.
visible boolean
Flag true/false indiquant si la signature doit être visible. Si tel est le cas, une zone est ajoutée dans le PDF pour afficher la signature. Les propriétés image et location sont attendues pour détailler la forme de cette zone.
rectangle string / array / map

Coordonnées du rectangle dans lequel la signature doit s'afficher. Globalement, la propriété doit indiquer les coordonnées x, y, w et h du rectangle.

Exemple de coordonnées sous forme de string: "100,200,150,50"

Exemple de coordonnées sous forme de tableau: [ 100, 200, 150, 50 ]

Exemple de coordonnées sous forme de map: { x: 100, y: 200, w: 150, h: 50 }

Si le flag visible est activé mais rectangle n'est pas spécifié, la signature est affichée par défaut dans le rectangle défini aux coordonnées 100, 200, 150, 50.

image file / string
Image à reprendre dans le rectangle de signature.
tsa string
URL de TSA
externalSig boolean
Flag true/false indiquant d'activer la signature externe. Par défaut le flag est false.

Retour

Fichier de destination ou null si une erreur est rencontrée.

Exemple

Exemple de script ajoutant un bloc de signature incluant une image. Le keystore peut être créé au moyen des commandes suivantes:

openssl req -x509 -newkey rsa:4096 -keyout myKey.pem -out cert.pem -days 365 -nodes
openssl pkcs12 -export -out keyStore.p12 -inkey myKey.pem -in cert.pem
1
2
3
4
5
6
7
8
var pdf = $pdf.sign("/path/to/sample.pdf",
                    "/path/to/keyStore.p12",
                    "changeit",
                    {
                        visible: true,
                        image: "/path/to/signature.png",
                        location: { x: 200, y: 400, w: 270, h: 70 }
                    });