Convertir un fichier RTF en HTML - Programmation
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...
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.
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... 
Marsh Posté le 10-02-2002 à 22:14:43
Bon bah je peux pas t'aider... mais je peux te faire un up  
 
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
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??? 
Marsh Posté le 11-02-2002 à 14:44:12
Ace17> c'est ce que j'allais dire. il marche bien.
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???
 Par rapport au code que j'ai mis précédemment, y'a une raison particulière???  
 
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 ? 
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.  
 
 
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.  Alors, sur quoi me porter ?
 Alors, sur quoi me porter ? 
 
Krueger
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  | 
 
 
non, je me suis pas repenché sur la question...
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!
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.  
 
 
Krueger
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!
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 
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
 (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 