je cherche à déconnecter les images liées par macro, d'autant plus que la procédure manuelle "Édition>Liens externes" ne fonctionne pas très bien, il arrive qu'à la réouverture du document, certain liens réapparaissent, comme s'ils n'avaient pas été déconnectés...
Voici mon code :
Code : Tout sélectionner
Sub graphicUnLink
Dim oDoc as object
Dim oText as Object
Dim oGraphics as object ' collecte toutes les images du document
Dim oGraphic as Object ' pour chaque image
Dim oCursor as Object ' pour le curseur auquel est ancré l'image
Dim oNewGraphic as Object ' pour la nouvelle image
Dim sURL as String ' pour stocker l'URL de l'image liée
Dim sAnchorType as String ' pour stocher le type d'ancrage de l'image liée
oDoc = ThisComponent
oText = oDoc.Text
oGraphics = oDoc.GraphicObjects
For i = 0 To oGraphics.Count - 1
oGraphic = oGraphics.getByIndex(i)
REM récupère l'URL de l'objet lié
sURL = oGraphic.graphic.OriginURL
REM récupère le type d'ancrage de l'objet lié
sAnchorType = oGraphic.AnchorType
REM récupère la position de l'objet lié
...
REM insère un nouvel objet embarqué (i.e. il ne sera pas lié) depuis l'URL de l'objet lié
oNewGraphic = oDoc.CreateInstance("com.sun.star.text.GraphicObject")
oNewGraphic.GraphicURL = sURL
oNewGraphic.AnchorType = sAnchorType
oNewGraphic.Width = oGraphic.Size.Width
oNewGraphic.Height = oGraphic.Height
'oCursor = oText.createTextCursorByRange(oGraphic.Anchor.Start)
'oText.insertTextContent(oCursor, oNewGraphic, True)
Next i
End Sub1) insertTextContent(), qu'il soit à False ou à True n'a aucun effet puisque l'image n'est pas du texte,
2) comme je ne peux pas "écraser" l'image linkée avec l'imagé embarquée, il me faudrait effacer l'image embarquée, mais je n'ai pas trouvé comment faire. Qui connaît le nom de la méthode à utiliser ?
3) le code insère l'image embarquée, à la même ancre que l'image linkée, avec le même type d'ancre, mais pas toujours à la même position par rapport à l'ancre... Qui saurait comment je pourrais récupérer la position de l'image et forcer cette position sur l'image insérée ?


