Rukk | 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 :
- 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 :
- 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! |