Convertir un fichier .rtf en .pdf

Convertir un fichier .rtf en .pdf - ASP - Programmation

Marsh Posté le 03-06-2009 à 11:53:28    

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. ' 1
  2. 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 & ""
  3. '2
  4. pathcmd = """C:\Program Files\OpenOffice.org 3\program\soffice"" -norestore -nofirststartwizard -nologo -headless -pt PDFCreator """& pathRepPdf & nomFichier & "." & format & ""
  5. '3
  6. pathcmd = """C:\Program Files\PDFCreator\PDFCreator.exe"" /NOSTART /PF""" & pathRepPdf & nomFichier & ".rtf"""
  7. '4
  8. pathcmd = """C:\Program Files\Windows NT\Accessoires\wordpad.exe"" /p """ & pathRepPdf & nomFichier & ".rtf"""
  9. '5
  10. pathcmd = "wordpad /p " & pathRepPdf & nomFichier & ".rtf"
  11. '6
  12. pathcmd = "print """ & pathRepPdf & nomFichier & ".rtf"" /d:\\127.0.0.1\PDFCreator"


Et j'appelle tout ça avec  
 

Code :
  1. 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 :
  1. 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 :
  1. set PDFCreator = Server.CreateObject("PDFCreator.clsPDFCreator" )
  2. PDFCreator.cStart ("/NoProcessingAtStartup" )
  3. PDFCreator.cOption("UseAutosave" ) = 1
  4. PDFCreator.cOption("UseAutosave" ) = 1
  5. PDFCreator.cOption("UseAutosaveDirectory" ) = 1
  6. PDFCreator.cOption("AutosaveFormat" ) = 0 ' 0 = PDF
  7. PDFCreator.cVisible = True
  8. PDFCreator.cDefaultPrinter = "PDFCreator"
  9. PDFCreator.cClearCache
  10. PDFCreator.cPrintFile (pathRepPdf & nomFichier & ".rtf" )
  11. PDFCreator.cVisible = True
  12. 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
Reply

Marsh Posté le 03-06-2009 à 11:53:28   

Reply

Sujets relatifs:

Leave a Replay

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