Exécution d'un code dos

Fermé
petittrain Messages postés 50 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 4 juin 2010 - 1 juin 2010 à 16:55
thunder413 Messages postés 167 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 16 novembre 2012 - 5 juin 2010 à 02:34
Bonjour,

je dois créer un fichier pdf à partir d'un document en .doc à partir d'un site.
c'est à dire d'un utilisateur (en intranet) m'envoie un document en .doc et je l'enregistre en .pdf le tous en automatique (sans passer par l'ouverture manuel de l'IHM de pdfcreator).
j'ai donc opté pour pdfcreator qui est un logiciel libre.

j'ai trouvé à partir de différent forum un script qui marche en ligne de command dos
pdfcreator /optionfile"c:\pdfcreator.ini" /pf"c:\temp\essai2.doc"
ligne teste avec sucés dans la fenêtre cmd.exe de dos quand je suis dans le chemin c: program files\pdfcreator

avec pdfcreator.ini
[Options]
AutosaveDirectory=C:\
AutosaveFilename=pdfcreator
AutosaveFormat=0
StartStandardProgram=0
UseAutosave=1
UseAutosaveDirectory=1

mais lorsque je lance les commande suivantes dans un fichier essai.php
$cmd = 'c: program files\pdfcreator' . DIRECTORY_SEPARATOR . 'pdfcreator.exe';
$shell = new COM('WScript.Shell');
$oExec = $shell->Exec($cmd.' /optionfile"c:\temp\pdfcreator.ini" /pf"c:\temp\essai2.doc"');

il me dit "error "
Uncaught exception 'com_exception' with message '<b>Source:</b> WshShell.Exec<br/><b>Description:</b> Accès refusé

je ne l'ai pas trouvé où on pouvait autoriser l'exécution de script "WshShell.Exec" ou est ce qu'il y a une autre solution.

je vous remercie d'avance pour vos réponse.


A voir également:

3 réponses

thunder413 Messages postés 167 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 16 novembre 2012 23
1 juin 2010 à 17:56
salut ,
t'a pas besoin de COM pour executer des commandes DOS utilise passthru ou exec
0
petittrain Messages postés 50 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 4 juin 2010 2
2 juin 2010 à 09:27
bonjour thunder,

je te remercie pour ta réponse. j'ai essayé ta réponse en suppriment la fonction com. je n' ai plus eu le message d'erreur du début mais la page m'as retourné la valeur 'null' alors que la même fonction dans dos me donnée un résultat avant et après l'essai de lancement de la page php. tous les dossier contenant les document on était mis en partage à l'aide des outil de partage de windows.

cordialement petittrain
0
thunder413 Messages postés 167 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 16 novembre 2012 23
2 juin 2010 à 13:10
bonjour,
est ce que la syntaxe de ta commande est bien fait fais attention au antislash et back slash utilise "/" plutot que "\" dans tes chemein d'acces et utilise passthru et passe a celle-ci un deuxieme argument apres tu poura faire un print_r($ton2arg) pour voir ce que dos retourne comme erreur
0
petittrain Messages postés 50 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 4 juin 2010 2
2 juin 2010 à 14:06
salut,

en changeant les \ par des / et en modifiant le format de sortie le retour de la fonction passthru me renvoie 0.
en essayant la ligne "corrigé" dans la fenêtre ms dos, j'ai une fenêtre d'erreur de pdfcreator me disant qu'il ne trouve pas le chemin du fichier.
par contre dans la fenetre dos, il faut tapper
cd c:\program files\pdfcreator
avant de tapper la ligne
pdfcreator /optionfile"c:/temp/pdfcreator.ini" /pf"c:/temp/essai2.doc"

merci de tes réponse petittrain
0
thunder413 Messages postés 167 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 16 novembre 2012 23
2 juin 2010 à 14:22
docn tru fait
<?php
chdir("c:/program files/pdfcreator /");// chagement du repertoire couran
//ensuite
passthru("pdfcreator /optionfile\"c:/temp/pdfcreator.ini\" /pf \"c:/temp/essai2.doc\""); 
?>
0
petittrain Messages postés 50 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 4 juin 2010 2
2 juin 2010 à 17:35
merci encore

je n'arrive toujours pas à faire fonctionner le code.

pour l'essai j'ai copié et en collé dans mon code lors du lancement, j'ai obtenu un chiffre -1073741502 mais il n'y a pas eu de lancement du pdfcreator (fichier "history.txt" de pdfcreator) et emplacement n'affichant pas la transformation de l'heure durant laqu'elle j'ai essayé le code.

j'ai également essayé en remplaçant les / par des \
re résultat la été que page php ne s'arrête pas de "s'exécuter"
j'ai essayé de faire un fichier bat qui ne marque que dans le repertoire de windows avec exec ou le passthru il ne donne aucun résultat (sans planter).

merci d'avance
0
thunder413 Messages postés 167 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 16 novembre 2012 23
Modifié par thunder413 le 3/06/2010 à 03:02
salut,
voici un code qui marche comme j'avais pdf creator 0.9.8 sous la main j'ai pris la peine de l'installer et de tester ton truc j'ai rectifier le code précédent celui-ci marche mais il y'a un hic il ne prend pas en charge le fichier ini
<?php 
chdir("c:/program files/pdfcreator/");// changement du répertoire courant 
//ensuite 
passthru("pdfcreator /optionsfile \"C:\\temp\\pdfcreator.ini\" /pf\"C:\\temp\\essai2.doc\"");  
?> 

je ne sais pas si ton fichier ini est valide mais il y'a une méthode simple pour créer un ini ensuite tu pourra le récupérer et le modifier a ta guise donc
Sélectionne PDFCreator.exe puis faire un raccourci vers le bureau 
  
- ensuite édite les propriétés de ce raccourci (clique droit > Propriétés), et va à 
  l'onglet Raccourci. 
- Dans le champ Cible, à la suite de ce qui est déjà écrit, tape: 
  /UseINI (n'oublier pas l'espace avant le /) 
  
  "C:\Documents and Settings\xxx\Bureau\PDFCreator.exe" /UseINI 
- Clique sur OK pour valider les changements et fermer la fenêtre du raccourci.  

en suite tu peut utiliser le raccourci pour l'installation tu aura le fichier ini par defaut dans C:\Documents and Settings\%username%\Application Data\PDFCreator
cette méthode est décrite dans l'article https://www.commentcamarche.net/applis-sites/bureautique/427-creer-et-convertir-gratuitement-des-fichiers-en-pdf/
maintenant s'il ne t'est pas impérative d'utiliser pdfcreator tu peut opter pour une solution pure php disponible ici https://jc-cornic.developpez.com/tutoriels/php/pdf/

CORDIALEMENT
0
petittrain Messages postés 50 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 4 juin 2010 2
4 juin 2010 à 17:22
bonjour,

je te remercie pour ton aide, j'ai essayé tes modifications. mon navigateur que se soit firefox ou IE ne marche pas ne donne pas résultat sans planter. j'ai trouvé un fichier ini pour pdf sur internet que j'ai adapté aux besoins. mon fichier .bat en cliquant dessus marche.
ce fichier bat fait appelle au même fichier ini et j'ai le même résultat le server n'arrête pas de tourner.

j'ai essayé de modifié les paramètres de php.ini sans succès.

le but est qu'un client (du server) télécharge un document word sous forme pdf. fpdf est une très bonne librairie avec une communauté actif (je m'en sert pour créer les métadonnés).

merci
0
thunder413 Messages postés 167 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 16 novembre 2012 23
5 juin 2010 à 02:34
effectivement de mon coté il y'a un ptit moment de plantage mais dés que l'impression est finie ca redevien normale mais je crois que c'est pas ton cas
mais maintenant tu a opter pour fpdf ou il y'a une contrainte pour son utilisation pour son utilisation
sinon comme tu as un bat qui fonctionne essaye de l'appeler dans ton script !
0