Extraire les images d'un fichier RTF

scaph77 Messages postés 3 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 3 février 2012 - 24 janv. 2012 à 14:14
scaph77 Messages postés 3 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 3 février 2012 - 3 févr. 2012 à 14:50
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

cs_Le Pivert Messages postés 7870 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 23 janvier 2023 137
25 janv. 2012 à 17:06
Bonjour,
Tu enregistres ton document en Page Web.
Cela va te créer un dossier où tu auras toutes tes images
Voilà


@+Le Pivert
0
scaph77 Messages postés 3 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 3 février 2012
1 févr. 2012 à 13:48
Merci pour ta réponse. Je l'avais déjà envisagé mais je voudrais automatisé le process.
0
cs_Le Pivert Messages postés 7870 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 23 janvier 2023 137
1 févr. 2012 à 14:13
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
0
scaph77 Messages postés 3 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 3 février 2012
3 févr. 2012 à 14:50
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
0
Rejoignez-nous