Importer programmatiquement une pièce jointe dans un PDF

Importer programmatiquement une pièce jointe dans un PDF

 

Importer une pièce jointe dans un PDF peut paraitre simple à première vue.

En effet, que ce soit avec Adobe Reader ou avec Acrobat il suffit de cliquer sur l’outil de Commentaire Ajouter une pièce jointe et ensuite de cliquer sur n’importe quelle page. On peut aussi utiliser le panneau des Pièces jointes.

Outil "Joindre un fichier"

Oui mais lorsqu’on doit diffuser un document PDF, formulaire ou non, comment faire pour expliquer ça à l’utilisateur final ?
Ne serait-il pas plus facile de placer bien en évidence un bouton sur lequel il n’y aurait qu’à cliquer ?

À l’évidence oui. C’est donc l’objet de ce tuto.
Il est ici question d’Acrobat mais on peut en faire autant avec d’autres logiciels sachant exporter des PDF interactifs, comme Adobe InDesign, Scribus, LibreOffice…

Attention : le script qui suit fonctionne avec Adobe Reader 11 (et versions ultérieures) mais pas dans les versions antérieures, vous voilà prévenu.
Par-contre ça fonctionne avec toutes les versions d’Acrobat.

 

1. Création du bouton

C’est le plus simple à faire, il faut sélectionner l’outil Bouton et tracer un rectangle n’importe où sur la page.

On trouvera ici une liste exhaustive de toutes les options possibles : http://help.adobe.com/fr_FR/acrobat/pro/using/WSBB6EF75F-BC3D-4094-B787-FB76DAE1EBDC.w.html

outil Bouton

Ce qui nous intéresse en particulier c’est le panneau Action des Propriétés du bouton, dont on trouvera la liste complète des options ici : http://help.adobe.com/fr_FR/acrobat/pro/using/WSDFC888F9-219C-4b55-90E6-D316E2A85F08.w.html

 

2- Ajout de l’Action

Dans le panneau du même nom on collera ou on saisira ce JavaScript comme indiqué dans l’infographie ci-dessous :

var annot = this.addAnnot({
page: this.pageNum,
type: "FileAttachment",
author: "abracadabraPDF",
contents: "Double-clic pour ouvrir",
attachIcon: "PushPin",
point: [400,500],
strokeColor: color.red,
});

 

Dans ce JavaScript on peut personnaliser les valeurs en rouge :

  • author : le nom de l’auteur de l’annotation, on y met ce qu’on veut (facultatif).
  • contents : c’est le contenu de l’info-bulle qui s’affiche au survol du curseur, on y met ce qu’on veut (facultatif).
  • attachIcon : le type de l’icône de l’annotation Pièce Jointe (facultatif). On a le choix entre quatre : Paperclip (trombone), PushPin (punaise), Graph (graphique), Tag (étiquette).
  • point : les coordonnées, en points, de l’annotation sur la page, sachant que le point zéro se trouve en bas à gauche de chaque page et qu’il y a 72 points/pouce, soit environ 28,3 points/cm (facultatif mais fortement conseillé).
  • strokeColor : la couleur de l’icône de l’annotation Pièce Jointe (facultatif).

Si on ne renseigne pas les valeurs facultatives ce sont les valeurs par défaut qui s’appliquent.

 

Exécuter un JavaScript

 

3. C’est terminé

Il ne reste plus qu’à tester le nouveau bouton avant de diffuser le document PDF.

On pourra aussi aider l’utilisateur final en lui précisant, dans l’info-bulle par exemple, qu’il y a des types de fichiers interdits, parce-que potentiellement dangereux. Liste non exhaustive : EXE, ZIP, GZ, TAR, SIT, SEA, VBS, BAT, DLL, JS, JSX…

En ce qui concerne les formats compressés ce n’est pas un problème car les pièces jointes dans un PDF sont de toutes façon compressées (compression sans perte ni dégradation). Voir explications complètes sur cette page : http://abracadabrapdf.net/ressources-et-tutos/creation/fichiers-zip-et-fichiers-pdf/

 

4. Bonus

Télécharger

abracadabraPDF vous offre un document PDF contenant un bouton « prêt à l’emploi » : à personnaliser et à garder comme modèle pour vos documents.

 

Print Friendly

Les commentaires sont clos.