Convertir un fichier RTF en HTML

Convertir un fichier RTF en HTML - Programmation

Marsh Posté le 07-02-2002 à 10:56:13    

Voilà, avec un copain, on est en train de développer un site et on voudrait pouvoir convertir automatiquement un fichier RTF uploadé en html (le fichier rtf pouvant contenir des tableaux, images, etc.). On a créé une dll en vb qui marche pas trop mal quand on la lance à partir de word, mais une fois le code compilé en dll, ça marche plus :( (erreur automation)... Est-ce-que qq'un a une idée de pourquoi ça plante, ou alors, est-ce-que qq'un sait où on pourrait trouver une dll qui effectue cette convertion (gratuitement)? Merci beaucoup :)

Reply

Marsh Posté le 07-02-2002 à 10:56:13   

Reply

Marsh Posté le 07-02-2002 à 10:58:38    

Ah, oui, autre précision : notre dll génère un fichier html pour chaque page du fichier rtf...

Reply

Marsh Posté le 07-02-2002 à 16:18:14    

up :)

Reply

Marsh Posté le 08-02-2002 à 09:14:03    

personne ne peut aider? :(

Reply

Marsh Posté le 08-02-2002 à 11:14:02    

N'y a t-il pas la possibilité le programme en exe plutôt et de l'utiliser avec CGI... mais bon là je sais pas trop comment ça fonctionne.

Reply

Marsh Posté le 08-02-2002 à 17:58:54    

Dost67 a écrit a écrit :

N'y a t-il pas la possibilité le programme en exe plutôt et de l'utiliser avec CGI... mais bon là je sais pas trop comment ça fonctionne.  




 
non, pas besoin de cgi... notre dll, on l'a faite en VB, et on utilise les fct de word. mais on a du se tromper, ça marche pas  
:(
 
qq'un verrait où y'a une erreur (en dehors du fait qu'on écrit de temps en temps dans un fichier txt pour débugger)
 
Sub SplitFile2Html(NomFichier As String, CheminEnrgt As String)
 
    ' Déclaration des variables
    Dim oWordApp As Word.Application
    Dim oWordDoc As Word.Document
    Dim oWordDocTmp As Word.Document
    Dim oFso 'As New FileSystemObject
    Dim oText 'As New TextStream
    Dim strFile As String
    Dim nbPages As Integer
    Dim i As Integer
     
    ' Création de l'application et ouverture du fichier
    Set oWordApp = CreateObject("Word.Application" )
    Set oWordDoc = oWordApp.Documents.Open(FileName:=NomFichier, ConfirmConversions:=False, ReadOnly:=True)
     
    ' Nombre de pages
    nbPages = oWordDoc.ComputeStatistics(Statistic:=wdStatisticPages)
     
     
        ' ************* DEBUG ******************
        Set oFso = CreateObject("Scripting.FileSystemObject" )
        Set oText = oFso.OpenTextFile("C:\infos.txt", 2)
        oText.write ("Debut" & i & vbCrLf)
        oText.Close
        Set oText = Nothing
        Set oFso = Nothing
        ' ************* DEBUG ******************
     
    ' On s'occupe des n-1 premières pages
    For i = 1 To nbPages - 2
         
        ' ************* DEBUG ******************
        Set oFso = CreateObject("Scripting.FileSystemObject" )
        Set oText = oFso.OpenTextFile("C:\infos.txt", 8)
        oText.write ("Page : " & i & vbCrLf)
        oText.Close
        Set oText = Nothing
        Set oFso = Nothing
        ' ************* DEBUG ******************
         
        ' On copie la page
        With oWordApp.Selection
            .Extend
            .GoTo (wdGoToPage)
            .Copy
            .Collapse (wdCollapseEnd)
        End With
     
        ' ************* DEBUG ******************
        Set oFso = CreateObject("Scripting.FileSystemObject" )
        Set oText = oFso.OpenTextFile("C:\infos.txt", 8)
        oText.write ("Copie ok" & vbCrLf)
        oText.Close
        Set oText = Nothing
        Set oFso = Nothing
        ' ************* DEBUG ******************
         
        ' On crée un nouveau document et on colle la page dedans
        Set oWordDocTmp = oWordApp.Documents.Add
        oWordApp.Selection.Paste
        oWordDocTmp.SaveAs FileName:=CheminEnrgt & "\" & CStr(i) & ".html", FileFormat:=wdFormatHTML
        oWordDocTmp.Close
         
         
        ' ************* DEBUG ******************
        Set oFso = CreateObject("Scripting.FileSystemObject" )
        Set oText = oFso.OpenTextFile("C:\infos.txt", 8)
        oText.write ("Paste ok" & vbCrLf)
        oText.Close
        Set oText = Nothing
        Set oFso = Nothing
        ' ************* DEBUG ******************
         
         
        ' On réouvre le fichier pour mettre à jour les chemins
        Set oFso = CreateObject("Scripting.FileSystemObject" )
        Set oText = oFso.OpenTextFile(CheminEnrgt & "\" & CStr(i) & ".html", 1)
        strFile = oText.ReadAll
        oText.Close
        strFile = Replace(strFile, "./" & CStr(i) & ActiveDocument.WebOptions.FolderSuffix, "../" & Mid(CheminEnrgt, InStr(CheminEnrgt, "Fichiers" )) & "/" & CStr(i) & ActiveDocument.WebOptions.FolderSuffix)
        Set oText = oFso.OpenTextFile(CheminEnrgt & "\" & CStr(i) & ".html", 2)
        oText.write (strFile)
        oText.Close
        Set oText = Nothing
        Set oFso = Nothing
     
        ' ************* DEBUG ******************
        Set oFso = CreateObject("Scripting.FileSystemObject" )
        Set oText = oFso.OpenTextFile("C:\infos.txt", 8)
        oText.write ("Replace ok" & vbCrLf)
        oText.Close
        Set oText = Nothing
        Set oFso = Nothing
        ' ************* DEBUG ******************
     
    Next
     
     
        ' ************* DEBUG ******************
        Set oFso = CreateObject("Scripting.FileSystemObject" )
        Set oText = oFso.OpenTextFile("C:\infos.txt", 8)
        oText.write ("Fin boucle" & vbCrLf)
        oText.Close
        Set oText = Nothing
        Set oFso = Nothing
        ' ************* DEBUG ******************
     
    ' On s'occupe de la dernière page
    'With oWordApp.Selection
    '    .MoveEnd Unit:=wdParagraph, Count:=15
    '    .Copy
    'End With
     
    ' On crée un nouveau document et on colle la page dedans
    'Set oWordDocTmp = oWordApp.Documents.Add
    'oWordApp.Selection.Paste
    'oWordDocTmp.SaveAs FileName:=CheminEnrgt & "\" & CStr(i) & ".html", FileFormat:=wdFormatHTML
    'oWordDocTmp.Close
    'Set oWordDocTmp = Nothing
     
    ' On réouvre le fichier pour mettre à jour les chemins
    'Set oFso = CreateObject("Scripting.FileSystemObject" )
    'Set oText = oFso.OpenTextFile(CheminEnrgt & "\" & CStr(i) & ".html", 1)
    'strFile = oText.ReadAll
    'oText.Close
    'strFile = Replace(strFile, "./" & CStr(i) & ActiveDocument.WebOptions.FolderSuffix, "../" & Mid(CheminEnrgt, InStr(CheminEnrgt, "Fichiers" )) & "/" & CStr(i) & ActiveDocument.WebOptions.FolderSuffix)
    'Set oText = oFso.OpenTextFile(CheminEnrgt & "\" & CStr(i) & ".html", 2)
    'oText.write (strFile)
    'oText.Close
    'Set oText = Nothing
    'Set oFso = Nothing
   
   ' Fermeture du fichier et de l'application
   'oWordDoc.Close
   'oWordApp.Quit
   
   Set oWordDoc = Nothing
   Set oWordApp = Nothing
   
   
        ' ************* DEBUG ******************
        Set oFso = CreateObject("Scripting.FileSystemObject" )
        Set oText = oFso.OpenTextFile("C:\infos.txt", 8)
        oText.write ("Bye" & vbCrLf)
        oText.Close
        Set oText = Nothing
        Set oFso = Nothing
        ' ************* DEBUG ******************
 
   
End Sub
 
le pb, c'est que la dll plante sur la convertion de la dernière page du rtf -> html...

Reply

Marsh Posté le 10-02-2002 à 20:45:13    

up :)

Reply

Marsh Posté le 10-02-2002 à 22:14:43    

Bon bah je peux pas t'aider... mais je peux te faire un up ;)

Reply

Marsh Posté le 11-02-2002 à 00:38:37    

Moi j'ai trouvé un convertisseur génial : ca s'appelle RTF2HTML et ca marche du tonnerre

Reply

Marsh Posté le 11-02-2002 à 10:34:08    

Ace17 a écrit a écrit :

Moi j'ai trouvé un convertisseur génial : ca s'appelle RTF2HTML et ca marche du tonnerre  




 
la fct de Word en vba???

Reply

Marsh Posté le 11-02-2002 à 10:34:08   

Reply

Marsh Posté le 11-02-2002 à 14:44:12    

Ace17> c'est ce que j'allais dire. il marche bien.


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 11-02-2002 à 22:56:19    

TBone a écrit a écrit :

Ace17> c'est ce que j'allais dire. il marche bien.  




 
oui, si on veut par ce que quand on regarde le code html généré, y'a pleins de trucs en + pour IE/Word afin de bien afficher...
mais, moi et copain, ce qu'on veut, c'est à partir d'un fichier rtf, couvertir CHAQUE page du fichier rtf en fichier html et non pas tout le fichier rtf en html. Or, il se trouve que la convertion de la dernière page plante 9 fois sur 10 :( Par rapport au code que j'ai mis précédemment, y'a une raison particulière??? :??:

Reply

Marsh Posté le 14-02-2002 à 21:42:44    

up:)

Reply

Marsh Posté le 15-04-2002 à 10:25:12    

j'ai besoin d'un filtre RTF/DOC -> XHTML/XML donc je suis retombé sur ce post :)
 
www.logictran.com mais c'est payant...
 
tu as trouvé qque chose de mieux rufo depuis ?


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 21-07-2003 à 13:01:28    

Maintenant c'est gratuit.
J'ai aussi trouvé Majix.
Le problème est que tous les deux sont assez buggés.
 
Alors je me demandais du coup si quelqu'un ne connaissait pas un autre convertisseur Word/RTF -> XML gratuit et qui marche bien. Merci d'avance. :hello:
 
Le cas échéant, je me contenterais d'un convertisseur Word/RTF -> HTML/XHTML, mais celui de Word (XP) ne prend pas en compte les petites majuscules. Pire encore, il n'y a quasiment aucune factorisation des attributs générés. :sarcastic: Alors, sur quoi me porter ?
 
Krueger

Reply

Marsh Posté le 21-07-2003 à 13:05:01    

TBone a écrit :

j'ai besoin d'un filtre RTF/DOC -> XHTML/XML donc je suis retombé sur ce post :)
 
www.logictran.com mais c'est payant...
 
tu as trouvé qque chose de mieux rufo depuis ?  


 
non, je me suis pas repenché sur la question...

Reply

Marsh Posté le 21-07-2003 à 13:43:01    

Je sais pas si ça peut vous aider, mais avec openOffice il est possible d'ouvrir en doc word avec une alteration minimale de la présentation, puis en le sauvant au format openOffice ( sxw) on obtient en fait une archive contenant un ensemble de fichier xml et les images rattachées ...
Après ça dépend vraiment ce que vous voulez en faire!

Reply

Marsh Posté le 22-07-2003 à 10:52:34    

Bon j'ai pas mal fait mumuse avec OpenOffice. Au final, c'est plus lourd à gérer : plusieurs fichiers XML, une appli en plus, nécessité de retraiter le contenu XML pour personaliser ses balises. Mais au moins il déclare toutes les styles utilisées au début du contenu. Le reste est propre et clean. Voilà, merci pour le coup de pouce. :jap:
 
Krueger

Reply

Marsh Posté le 22-07-2003 à 11:11:01    

en fait il y a dejà pas mal de gens qui se sont penchés sur le probleme et en cherchant un peu tu trouveras facilement une XSLT pour passer tes documents de SXW a XSL-FO ( par exemple la: http://www.fawcette.com/xmlmag/200 [...] ult_pf.asp )
 
Perso je me sers de ce genre de choses dans deux applis et ça marche niquel!

Reply

Marsh Posté le 13-08-2003 à 14:02:57    

tenez, en surfant, je suis tombé par hasard là-dessus :
 
http://www.phpbuilder.com/snippet/ [...] pet&id=145

Reply

Sujets relatifs:

Leave a Replay

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