Modifier un PDF avec Javascript

Modifier un PDF avec Javascript - HTML/CSS - Programmation

Marsh Posté le 15-06-2009 à 21:24:44    

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 :
  1. function modifPdf(src)
  2. {
  3.  // Créer l'objet qui permet de manipuler un PDF
  4.  var pdf = new ActiveXObject('AcroExch.PDDoc');
  5.  // Variables
  6.  var pdfJS;
  7.  var annot;
  8.  var props;
  9.  var printParams;
  10.  var page;
  11.  var rectSize = new Array();
  12.  // Ouverture du PDF
  13.  pdf.Open(src);
  14.  page = pdf.AcquirePage(0);
  15.  page = page.GetSize()
  16.  rectSize[0] = 25;
  17.  rectSize[1] = page.y - 50;
  18.  rectSize[2] = page.x - 25;
  19.  rectSize[3] = page.y - 25;
  20.  // Obtenir le javascript du PDF
  21.  pdfJS = pdf.GetJSObject();
  22.  // Ajout de l'annotation
  23.  // L'annotation est crée, mais elle n'est pas positionnée (rect n'est pas pris en compte)
  24.  pdfJS.addAnnot({page: 0,type: 'FreeText',rect: rectSize,author: 'SA',contents: 'Test'});
  25.  pdfJS.addAnnot({page: 0,type: 'FreeText',rect: [25,742,1199,767],author: 'SA',contents: 'Test'});
  26.  pdfJS.addAnnot({page: 0,type: 'FreeText',rect: new Array(25,742,1199,767), author: 'SA',contents: 'Test'});
  27.  // Impression
  28.  printParams = pdfJS.getPrintParams();
  29.  printParams.interactive = -1;
  30.  printParams.firstPage = 0;
  31.  printParams.pageHandling = printParams.constants.handling.fit;
  32.  //pdfJS.print(printParams);
  33.  // Je save sur mon disque dur à place d'imprimer pour les tests
  34.  pdf.Save(1, "C:/Tempo/test.pdf" );
  35.  pdf.Close();
  36. }


 
 
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 :
  1. this.addAnnot({page: 0,type: 'FreeText',rect: rectSize,author: 'SA',contents: 'Test'}); // rectSize est setter plus haut avec les bonnes valeurs
  2. this.addAnnot({page: 0,type: 'FreeText',rect: [25,742,1199,767],author: 'SA',contents: 'Test'});
  3. 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!

Reply

Marsh Posté le 15-06-2009 à 21:24:44   

Reply

Marsh Posté le 16-06-2009 à 00:54:44    

tu as un lien vers l'API de AcroExch.PDDoc ?


Message édité par SICKofitALL le 16-06-2009 à 00:55:00

---------------
We deserve everything that's coming...
Reply

Marsh Posté le 16-06-2009 à 04:35:51    

Bonsoir,
 
voici le lien vers l'API: http://livedocs.adobe.com/acrobat_ [...] 3.100.html
 
Merci, Rukk.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed