Extraire les images d'un fichier RTF

Signaler
Messages postés
3
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
3 février 2012
-
Messages postés
3
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
3 février 2012
-
Bonjour,

Je développe un petit programme qui convertit des fichiers .RTF en fichier .XML .HTML. Ces fichiers contiennent des images. Je cherche une solution pour extraire des images et les mettre dans un fichier png, jpg ou autres.

Merci

4 réponses

Messages postés
7622
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
7 décembre 2021
128
Bonjour,
Tu enregistres ton document en Page Web.
Cela va te créer un dossier où tu auras toutes tes images
Voilà


@+Le Pivert
Messages postés
3
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
3 février 2012

Merci pour ta réponse. Je l'avais déjà envisagé mais je voudrais automatisé le process.
Messages postés
7622
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
7 décembre 2021
128
En VB.Net tu peux faire cela:
Ajouter dans les références:
Microsoft Word 11.0 Object Library

 Private Sub Extractionword()
 Dim oWord As Object
        'Créer une instance de word
        oWord = CreateObject("Word.Application")
        'Ouvrir un nouveau document
        oWord.Documents.Open("chemin complet du fichier avec extension")
        'rendre le document word visible
        oWord.Visible = True
        'on enregistre en HTML
        oWord.ActiveDocument.SaveAs(FileName:="chemin complet du fichier avec extension" & ".htm", FileFormat:=Word.WdSaveFormat.wdFormatFilteredHTML, _
        LockComments:=False, Password:="", AddToRecentFiles _
        :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
        :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
        SaveAsAOCELetter:=False)
        oWord.ActiveDocument.Close() 'on ferme le document
        oWord.Visible = False
        oWord.Quit() 'on ferme Word
    End Sub

Un dossier d'image sera crée au nom du chemin du fichier dans le même dossier que le fichier.

@+Le Pivert
Messages postés
3
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
3 février 2012

j'ai trouvé un code c# qui fait ce que je veux. Dans Text, je met la chaine en hexa représentant l'image qui est codé dans le RTF.

En tout cas merci.

Dim dataSize As Integer = Text.Length \ 2
Dim data As Byte()

data = New Byte(dataSize - 1) {}

Dim sbaux As New StringBuilder(2)

lPos = 0
For i As Integer = 0 To text.Length - 1
lPos = i
lStrHexa = text(i)
' Debug.Print(text(i) & " " & Asc(text(i)).ToString)
sbaux.Append(text(i))

If sbaux.Length = 2 Then
data(i \ 2) = Byte.Parse(sbaux.ToString(), Globalization.NumberStyles.HexNumber)
sbaux.Remove(0, 2)
End If
Next

If data IsNot Nothing Then
Dim stream As New MemoryStream(data, 0, data.Length)

Dim bitmap As New Bitmap(stream)
bitmap.Save("h:\image.png", System.Drawing.Imaging.ImageFormat.Png)
End If