Récupérer les images contenues dans un doc

10 réponses
Avatar
Jac
Bonjour à tous,

j'ai une cinquantaine d'images (copies d'écran) dans un .doc et j'ai
besoin de les récupérer en tant qu'images jpg, tiff ou autre pour leur
faire subir quelques petites manips du genre recadrages, niveaux de
gris, ...
Le doc ne contient rien d'autre que les images.

Est-ce possible ?

Merci d'avance à qui me mettra sur la voie.

Jac

10 réponses

Avatar
Geo
Bonjour à Jac qui nous a écrit :

Bonjour à tous,

j'ai une cinquantaine d'images (copies d'écran) dans un .doc et j'ai besoin de les
récupérer en tant qu'images jpg, tiff ou autre pour leur faire subir quelques petites
manips du genre recadrages, niveaux de gris, ...
Le doc ne contient rien d'autre que les images.

Est-ce possible ?

Merci d'avance à qui me mettra sur la voie.

Jac



Enregistrez votre fichier en format htm, il sera créé un dossier avec
vos photos.
Vous les modifiez.
Vous ouvrez votre document en htm et vous l'enregistrez en doc.

--
A+
Avatar
Jac
Merci Géo,

c'est tellement simple que j'ai honte de ne pas y avoir pensé. Je
réfléchissais déjà à une macro.

Bonjour à Jac qui nous a écrit :

Bonjour à tous,

j'ai une cinquantaine d'images (copies d'écran) dans un .doc et j'ai besoin
de les récupérer en tant qu'images jpg, tiff ou autre pour leur faire subir
quelques petites manips du genre recadrages, niveaux de gris, ...
Le doc ne contient rien d'autre que les images.

Est-ce possible ?

Merci d'avance à qui me mettra sur la voie.

Jac



Enregistrez votre fichier en format htm, il sera créé un dossier avec vos
photos.
Vous les modifiez.
Vous ouvrez votre document en htm et vous l'enregistrez en doc.


Avatar
Anacoluthe
Bonjour !

'Jac' nous a écrit ...
Merci Géo,
Je réfléchissais déjà à une macro.



:-D je suis sûr que Geo aurait bien aimé aussi !!
Les macros il adore, il en a même fait un bouquin,
mais les AMIS (Anti Macros Inutilement Superfétatoires) veillent...

A signaler que pour les docx (Word 2007) on peut récupérer les images
en fouillant dans le zip que constitue le nouveau format openXML

Anacoluthe
« Ce n’est pas si simple que ça d’être simple. »
- Pierre REVERDY
Avatar
Geo
Bonjour

c'est tellement simple



C'est simple quand on le sait, je l'ai appris sur ce forum.
La piste d'Anacoluthe est intéressante aussi.
Je l'aurai apprise ici aussi.

--
A+
Avatar
dle
Bonjour à tous,



Je suis aussi intéressé par une récupération de toutes les images d'un
document pour les traiter "en lot" et les réinsérer une fois traitées dans
le document d'origine.
J'étais content de trouver les deux solutions proposées ici : celle de Geo
(page html) et celle d'Anacoluthe (openXML).
J'ai immédiatement entrepris de les essayer... et je n'ai pas réussi. Sans
doute mon incompétence nécessite des infos complémentaires.

Page HTML : je coince sur la procédure de Geo ici :"Vous ouvrez votre
document en htm et vous l'enregistrez en doc."
En effet :
- enregistrer un .docx en .html (page web complète) : OK
- trouver les images dans le dossier _fichiers associé au .html : OK
- ouvrir la page .html avec un navigateur : OK
- ouvrir "avec Word" la page .html : NOK. Une simple page vierge (donnée
avec 2 caractères qui sont apparemment 2 passages à la ligne suivante)
apparaît.
Comment faire pour revenir de la page .html enregistrée à un .docx ?

openXML : je coince sur la procédure d'Anacoluthe :"on peut récupérer les
images en fouillant dans le zip que constitue le nouveau format openXML"
Comment à partir d'un .docx "fouiller dans le zip" ?

Je précise bien utiliser Word 2007.

Merci de vos éclairages complémentaires.
Avatar
Geo
Bonjour

- ouvrir "avec Word" la page .html : NOK. Une simple page vierge (donnée
avec 2 caractères qui sont apparemment 2 passages à la ligne suivante)
apparaît.



Je viens de refaire un essai en format page Web, pas de problème.
A l'ouverture il m'a demandé de confirmer que c'est bien un document de
ce type, mais ça sans doute parce que j'ai coché cette option.
Donc fichier ouvrir Mondoc.htm Ouvrir.

Comment à partir d'un .docx "fouiller dans le zip" ?



Remplacer docx par zip
Et là déziper le fichier, les images sont isolées dans un dossier
word/media

Pour faire un traitement de masse il faut savoir zipper et dézipper par
programme.

--
A+
Avatar
dle
Bonjour à tous,

Après ces explications, j'ai réussi avec les deux solutions : page Web et
openXML !

Pour la première, il y a sans doute un problème dans le .docx d'origine qui
plombait la manip (le retour en .docx ne donnait qu'une page avec deux
retours à la ligne alors le document original fait 120 pages). Mais pas de
problème avec un autre document.

L'astuce page Web me semble plus simple de mise en ½uvre.

Merci à vous.

@ une prochaine... sans doute.
Avatar
Geo
Bonjour

Après ces explications, j'ai réussi avec les deux solutions : page Web et openXML !



Merci pour le retour.
Si vous savez zipper et dézipper en vba, je suis preneur.


--
A+
Avatar
Anacoluthe
Hello Geo !

'Geo' nous a écrit ...
Si vous savez zipper et dézipper en vba, je suis preneur.



Je m'étais mis ça de côté ;-)

Je suppose que tu veux déziper sans utiliser les classiques
librairies externes winzip ou autres. Les fonctions zip et unzip
de Windows sont assez limitées.

Je me suis rendu compte que pour déziper avec Windows il faut
comme en manuel renommer le docx en zip !

Voici un premier brouillon : cette macro permet de sélectionner
divers documents OFF2007 et compose pour chacun un répertoire
associé 'nom-du-document_media' contenant ses médias s'il en a.

à peaufiner...

' -------------------------------------------------------------------
Sub Extraire_Dossiers_Media()
' sélectionne des documents openXML et en extrait les médias
' dézipe avec Windows
' saute les documents non openXML ou sans média ou déjà extraits
' Anacoluthe - octobre 2008 - V1

Dim FSO As Object
Dim oApp As Object
Dim fd As FileDialog

Dim vrtSelectedItem, fTemp, f, sf, ssf, fmedia
Dim nF As Integer
Dim nM As Integer

Set fd = Application.FileDialog(msoFileDialogFilePicker)
If fd.Show <> -1 Then Exit Sub

Set FSO = CreateObject("Scripting.FileSystemObject")
Set oApp = CreateObject("Shell.Application")

For Each vrtSelectedItem In fd.SelectedItems
' renomme le fichier en zip
FSO.MoveFile vrtSelectedItem, vrtSelectedItem & ".zip"
' si c'est un vrai zip le dézipe dans un dossier temporaire
If oApp.Namespace(vrtSelectedItem & ".zip").items.Count > 1 Then
fTemp = vrtSelectedItem & "_dossier"
MkDir fTemp
oApp.Namespace(fTemp).CopyHere _
oApp.Namespace(vrtSelectedItem & ".zip").items

' itérations pour trouver et sortir le sous-répertoire media
fmedia = ""
Set f = FSO.GetFolder(fTemp)
For Each sf In f.subfolders
If Right(sf.Name, 5) = "media" Then
fmedia = sf.Path
Else
For Each ssf In sf.subfolders
If Right(ssf.Name, 5) = "media" Then
fmedia = ssf.Path
End If
Next ssf
End If
Next sf
If fmedia <> "" And _
Not FSO.FolderExists(vrtSelectedItem & "_media") Then
nM = nM + 1
FSO.movefolder fmedia, vrtSelectedItem & "_media"
End If

' suppression du dossier dézipé temporaire
f.Delete
End If

' renomme sans zip le fichier original
FSO.MoveFile vrtSelectedItem & ".zip", vrtSelectedItem
nF = nF + 1
Next vrtSelectedItem

' c'est fini on affiche les comptes
MsgBox nF & " fichier(s) sélectionné(s)" & vbCr & _
nM & " dossier(s) _media créé(s)"

Set fd = Nothing
Set FSO = Nothing
Set oApp = Nothing

End Sub
' -------------------------------------------------------------------


Bon week-end de la Toussaint !

Anacoluthe
« La joie est en tout ; il faut savoir l'extraire. »
- CONFUCIUS
Avatar
Geo
Bonjour

Je m'étais mis ça de côté ;-)



Ha ha l'hiver est est commencé en Alsace !

Je suppose que tu veux déziper sans utiliser les classiques
librairies externes winzip ou autres. Les fonctions zip et unzip
de Windows sont assez limitées.



Ben oui, j'arrive à zipper en VB en utilisant un shell, mais ça foire
de temps en temps.

Je me suis rendu compte que pour déziper avec Windows il faut
comme en manuel renommer le docx en zip !



S'il n'y a que ça !

Voici un premier brouillon : cette macro permet de sélectionner
divers documents OFF2007 et compose pour chacun un répertoire
associé 'nom-du-document_media' contenant ses médias s'il en a.

à peaufiner...



OK merci, je potasse.

« La joie est en tout ; il faut savoir l'extraire. »



Même dans le vba !

--
A+