Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1723 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Lancer une ligne de commande pdftk depuis une page PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Lancer une ligne de commande pdftk depuis une page PHP

n°1699810
roumsi
Posté le 10-03-2008 à 11:46:22  profilanswer
 

Bonjour,  
 
Je viens ici pour me renseigner après de nombreux essais infructueux pour arriver à ce que je souhaite réaliser.
 
Voilà j'ai un page list_pdf.php qui parcourt un dossier et en affiche le contenu (un ensemble de fichiers PDF).
Il est ici possible de cocher des fichiers afin de les concaténer en un seul et même fichier.  
 
Je récupère le nombre de fichiers cochés, leurs noms via POST et tout se passe bien.
Par la suite je génère ma ligne de commande pour lancer pdftk :
 
D:\PROG\EasyPHP1-8\www\pdftk\pdftk-1.12\pdftk.exe "N°15247_SICMA AERO SEAT.pdf" "N°1_HONEYWELL SECAN.pdf" cat output pdfprint.pdf
 
Lorsque je copie et colle dans le cmd cette ligne de commande, le fichier pdfprint.pdf est bien crée et il contient les fichiers pdf à concaténer.  
 
Par contre lorsque j'utilise shell_exec(), exec() ou system() pour automatiser la concaténation à partir de la commande générée dynamiquement, la commande n'est pas lancée et rien ne se produit (system renvoit même 1).
 

Code :
  1. $lignecommand="D:\PROG\EasyPHP1-8\www\pdftk\pdftk-1.12\pdftk.exe "N°15247_SICMA AERO SEAT.pdf" "N°1_HONEYWELL SECAN.pdf" cat output pdfprint.pdf";
  2. $cmdline = "cmd /C ".$lignecommand;
  3. //Affichage pour vérification de la ligne de commande
  4. echo $cmdline."<br />";
  5. $res=shell_exec($cmdline);
  6. echo $res;

mood
Publicité
Posté le 10-03-2008 à 11:46:22  profilanswer
 

n°1699818
soju
One shot !
Posté le 10-03-2008 à 11:53:28  profilanswer
 

pourquoi n'appelles tu pas pdftk directement sans passer par cmd ?
et pour les éventuels messages d'erreur ça peut être utile de rediriger stderr avec "2>&1"

n°1699821
roumsi
Posté le 10-03-2008 à 11:57:46  profilanswer
 

Comment puis je l'appeler directement ? Je ne maîtrise pas trop le lancement d'exécutable depuis PHP.  :)  
J'ai aussi essayé avec l'objet COM.
 
Ce genre de chose :  

Code :
  1. $shell = new COM('WScript.Shell') or die("Cannot start WScript.Shell" );
  2. $oExec = $shell->Exec($cmdline,0,true);


Je précise aussi que :
concat_PDF.php (qui doit lancer la ligne de commande pdftk),
pdftpk.exe,
ainsi que les fichiers à concaténer se trouvent tous dans le même dossier.
 
La concaténation doit aussi être totalement transparente pour l'utilisateur. Lui, il coche les fichiers à concaténer, le script les concatène via pdftk puis fait quelques opérations sur le fichier généré. C'est vraiment l'étape "lancer la ligne de commande générée à pdftk" que je ne sais comment implémenter.
 
Peut être existe une méthodologie bien particulière (que je ne maîtrise pas du tout) pour lancer un exe depuis PHP.

Message cité 1 fois
Message édité par roumsi le 10-03-2008 à 12:07:03
n°1699874
soju
One shot !
Posté le 10-03-2008 à 13:41:57  profilanswer
 

roumsi a écrit :

Comment puis je l'appeler directement ?

ben au lieu de d'executer $cmdline tu executes $lignecommand, tout simplement

n°1699925
roumsi
Posté le 10-03-2008 à 15:01:31  profilanswer
 

Ça fonctionne, je n'avais pas fait attention à ça à force de me prendre le chou. Je te remercie grandement.  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Lancer une ligne de commande pdftk depuis une page PHP

 

Sujets relatifs
Probleme PHP _> FLash[Zone d'image sensitive] comment via commande MAP faire apparaitre
[PHP] probleme de redirection[PHP] Imagecreatefromjpeg() marche pas completement
Supprimer ligne si cellule un 0 [RESOLU][PHP] fonction: probleme de debutant
retour en page d'accueil en actualisantErreur de code en PHP
[PHP] Formulaire + transfert de données par post + codage de porc[PHP] génération d'un pdf (pas une impression de page)
Plus de sujets relatifs à : [PHP] Lancer une ligne de commande pdftk depuis une page PHP


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)