Bonjour à tous.
Mon problème concerne la conversion des fichiers rtf au format pdf.
Comme expliqué dans le thread ici, je dispose de fichiers rtf à convertir.
Mais cela me pose plus de problèmes que prévu.
J'ai tout d'abord installé PDFCreator sur le serveur, défini l'imprimante PDFCreator comme imprimante par défaut et je l'ai aussi partagée (j'ai aussi configuré l'enregistrement automatique des fichiers).
Maintenant dans mon code ASP j'ai essayé diverses techniques pour générer un fichier pdf sur le serveur mais rien ne fonctionne correctement pour le moment.
J'utilise donc l'objet wshell (comme pour ma conversion de fichier doc -> odt qui fonctionne bien).
Voila l'ensemble de mes tentatives infructueuses
Code :
- ' 1
- pathcmd = """C:\Program Files\OpenOffice.org 3\program\python.exe"" ""C:\Program Files\OpenOffice.org 3\program\DocumentConverter.py"" """ & pathRepPdf & nomFichier & ".rtf"" """ & pathRepPdf & nomFichier & "." & format & ""
- '2
- pathcmd = """C:\Program Files\OpenOffice.org 3\program\soffice"" -norestore -nofirststartwizard -nologo -headless -pt PDFCreator """& pathRepPdf & nomFichier & "." & format & ""
- '3
- pathcmd = """C:\Program Files\PDFCreator\PDFCreator.exe"" /NOSTART /PF""" & pathRepPdf & nomFichier & ".rtf"""
- '4
- pathcmd = """C:\Program Files\Windows NT\Accessoires\wordpad.exe"" /p """ & pathRepPdf & nomFichier & ".rtf"""
- '5
- pathcmd = "wordpad /p " & pathRepPdf & nomFichier & ".rtf"
- '6
- pathcmd = "print """ & pathRepPdf & nomFichier & ".rtf"" /d:\\127.0.0.1\PDFCreator"
|
Et j'appelle tout ça avec
Code :
- runcmd = wshell.Run (pathcmd, SW_SHOWNORMAL, true)
|
Pour les deux premiers essais, j'obtiens un fichier pdf tronqué. J'ai alors remarqué que le fichier rtf que je génère avec OpenOffice est différent que celui généré avec Word (le pdf tronqué provient surement de cette différence).
Les autres essais font que j'obtiens soit un fichier pdf vide (nommé automatiquement .pdf, pas de nom Oo) soit rien du tout (avec ma page asp qui ne s'arrête pas de charger).
Lorsque j'affiche pathcmd sur ma page et que j'exécute directement la commande affichée sur le serveur elle fonctionne correctement dans tous les cas (sauf le cas 6 je crois).
J'ai également attribué des droits d'écritures à tout le monde sur le répertoire concerné ainsi que des droits d'exécution sur les exécutables utilisés.
J'ai oublié de préciser qu'une fois la commande appelée, une instance de l'exécutable est bien créée sur le serveur (le gestionnaire des tâches m'indique bien que PDFCreator.exe ou wordpad.exe,... est lancé).
Si je kill ces instances alors le chargement de ma page asp s'arrête (bien sûr sans résultat).
Là je suis en train d'essayer en installant PDFCreator en mode serveur (j'avais déjà essayé mais bon je réessaie )
Si j'exécute ceci dans l'invite de commande du poste client
Code :
- print "\\nom_serveur_et_chemin\pdf\a.rtf" /d:\\192.168.1.43\PDFCreator
|
192.168.1.43 étant l'ip du serveur et a.rtf le fichier à convertir.
Cela me créé un fichier vide mais qui a un nom cette fois.
J'ai aussi vu qu'il existait un objet COM pour PDFCreator. J'ai donc essayé
Code :
- set PDFCreator = Server.CreateObject("PDFCreator.clsPDFCreator" )
- PDFCreator.cStart ("/NoProcessingAtStartup" )
- PDFCreator.cOption("UseAutosave" ) = 1
- PDFCreator.cOption("UseAutosave" ) = 1
- PDFCreator.cOption("UseAutosaveDirectory" ) = 1
- PDFCreator.cOption("AutosaveFormat" ) = 0 ' 0 = PDF
- PDFCreator.cVisible = True
- PDFCreator.cDefaultPrinter = "PDFCreator"
- PDFCreator.cClearCache
- PDFCreator.cPrintFile (pathRepPdf & nomFichier & ".rtf" )
- PDFCreator.cVisible = True
- PDFCreator.cPrinterStop = False
|
Mais rien de plus, la page charge indéfiniment.
Si quelqu'un a une idée du pourquoi du comment je suis assez preneur
Message édité par TiBoO le 03-06-2009 à 12:37:11