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:

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();
}
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
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'});
Alors, voilà ma théorie est que JavaScript a de la misère à passer un array à mon pdfJS comme paramètre...

Quelqu'un sait comment règler ce problème? Merci!