Bonjour,
je suis en train de créer une fonction JavaScript (qui sera exécuter dans une page JSP plus tard) qui va me permettre d'ajouter du text en haut à gauche dans des fichiers PDF. Jusqu'ici tout va bien. Je suis capable d'ouvrir mon fichier, insérer ma note, imprimer le fichier avec mes modifications... le seul problème est que je ne suis pas capable de positionner le message. Voci ma fonction:
La méthode addAnnot() crée bien mon annotation, mais elle se positionne à 0,0 dans mon document avec une grosseur (width & height) nulle. Par contre (et c'est là que c'est étrange), lorsque j'ajoute directement une de ces 3 lignes ci-dessous dans mon PDF (via Advanced -> Document Processing -> JavaScript Debugger...) cela fonctionne avec la bonne position!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 function modifPdf(src) { // Créer l'objet qui permet de manipuler un PDF var pdf = new ActiveXObject('AcroExch.PDDoc'); // Variables var pdfJS; var annot; var props; var printParams; var page; var rectSize = new Array(); // Ouverture du PDF pdf.Open(src); page = pdf.AcquirePage(0); page = page.GetSize() rectSize[0] = 25; rectSize[1] = page.y - 50; rectSize[2] = page.x - 25; rectSize[3] = page.y - 25; // Obtenir le javascript du PDF pdfJS = pdf.GetJSObject(); // Ajout de l'annotation // L'annotation est crée, mais elle n'est pas positionnée (rect n'est pas pris en compte) pdfJS.addAnnot({page: 0,type: 'FreeText',rect: rectSize,author: 'SA',contents: 'Test'}); pdfJS.addAnnot({page: 0,type: 'FreeText',rect: [25,742,1199,767],author: 'SA',contents: 'Test'}); pdfJS.addAnnot({page: 0,type: 'FreeText',rect: new Array(25,742,1199,767), author: 'SA',contents: 'Test'}); // Impression printParams = pdfJS.getPrintParams(); printParams.interactive = -1; printParams.firstPage = 0; printParams.pageHandling = printParams.constants.handling.fit; //pdfJS.print(printParams); // Je save sur mon disque dur à place d'imprimer pour les tests pdf.Save(1, "C:/Tempo/test.pdf" ); pdf.Close(); }
Alors, voilà ma théorie est que JavaScript a de la misère à passer un array à mon pdfJS comme paramètre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 this.addAnnot({page: 0,type: 'FreeText',rect: rectSize,author: 'SA',contents: 'Test'}); // rectSize est setter plus haut avec les bonnes valeurs this.addAnnot({page: 0,type: 'FreeText',rect: [25,742,1199,767],author: 'SA',contents: 'Test'}); this.addAnnot({page: 0,type: 'FreeText',rect: new Array(25,742,1199,767), author: 'SA',contents: 'Test'});
Quelqu'un sait comment règler ce problème? Merci!
Partager