[Résolu]"Couper" un .pdf

"Couper" un .pdf [Résolu] - Divers - Programmation

Marsh Posté le 27-02-2008 à 16:46:45    

Bonjour.
 
Je bosse sur une application qui génère des rapports .pdf en utilisant PDFCreator (avec l'enregistrement automatique).
Sur ces rapports il y a une première page qui constitue les résultats à rendre au client et une deuxième page composée de statistiques destinées à un usage purement interne (que le client n'a pas à connaître).
J'aimerais savoir si il est possible de "couper" le rapport de manière à ce que le fichier mis à disposition du client ne comprenne pas la deuxième page.


Message édité par Opera140 le 28-02-2008 à 11:39:50
Reply

Marsh Posté le 27-02-2008 à 16:46:45   

Reply

Marsh Posté le 27-02-2008 à 17:05:19    

vous simulez une impression pour générer le pdf ?
il est peut-etre possible d'imprimer la page 1 puis la page 2 dans un deuxième temps ce qui génèrera 2 fichiers.
sinon cf http://www.framasoft.net/article4346.html


Message édité par djobidjoba le 27-02-2008 à 17:06:27
Reply

Marsh Posté le 28-02-2008 à 11:38:46    

La génération de .pdf se fait effetivement par simulation d'impresison.
Malheureusement, le logiciel qui génère les fichiers .pdf ne permet pas d'imprimer une page puis l'autre.
En revanche, grace à pdfsam (et sa facilité d'utilisation par ligne de commande), j'ai réussi à splitter mes fichiers après leur création et à les renommer.
 
Voici le code (ici en JAVA mais portable) qui me permet ceci :

Code :
  1. public static void parsePage1(String[][] tab)
  2.       throws IOException
  3.     {
  4.      Runtime myRuntime = Runtime.getRuntime();
  5.      Process myProcess;
  6.      File file = new File("C:\\" );
  7.  
  8.      for(int i=0; i<tab.length; i++)
  9.      {
  10.       file = new File("SOURCE_PATH\\"+tab[i][0]+"_"+tab[i][1]+"_"+tab[i][2]+"_"+tab[i][3]+".pdf" );
  11.       myProcess = myRuntime.exec("java -jar \"C:\\Program Files\\pdfsam\\lib\\pdfsam-console-0.7.3.jar\" -f \""+file.getPath()+"\" -o DESTINATION_PATH -s BURST -compressed split" );
  12.       try
  13.       {
  14.        myProcess.waitFor();
  15.       }
  16.       catch (InterruptedException ie)
  17.       {
  18.        ie.printStackTrace();
  19.       }
  20.       file.delete();
  21.       file = new File("DESTINATION_PATH\\1_"+tab[i][0]+"_"+tab[i][1]+"_"+tab[i][2]+"_"+tab[i][3]+".pdf" );
  22.       file.renameTo(new File("DESTINATION_PATH\\"+tab[i][0]+"_"+tab[i][1]+"_"+tab[i][2]+"_"+tab[i][3]+".pdf" ));
  23.       file = new File("DESTINATION_PATH\\2_"+tab[i][0]+"_"+tab[i][1]+"_"+tab[i][2]+"_"+tab[i][3]+".pdf" );
  24.       file.delete();
  25.       myProcess.destroy();
  26.      }
  27.     }


Où tab contient les éléments servant à nommer le fichier.
 
Merci beaucoup.


Message édité par Opera140 le 28-02-2008 à 11:43:21
Reply

Sujets relatifs:

Leave a Replay

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