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???
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 ?
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