Bonjour,
J'avais récupéré les macros du livre de Bernard Marcelly, Laurent Godard (voir code ci-dessous)
Je voudrais lorsque j'insère mon image garder sa taille réelle mais si j'ai bien compris, il faut transformer la taille en pixel en cm (ce que fait la fonction "resizeimageByWith".
Sauf que je ne sais pas comment trouver la résolution pour faire cela.
Si quelqu'un a une solution, merci d'avance
Claude
Option Explicit
Sub AjouterImage()
Dim monDocument As Object, monTexte As Object
Dim monCurseur As Object, monImage As Object
Dim positionImage As New com.sun.star.awt.Point
monDocument = ThisComponent
monTexte = monDocument.Text
monCurseur = monTexte.createTextCursor
monCurseur.gotoNextParagraph(False) ' déplacer le curseur
positionImage.x = 1500 ' 15 mm à droite du point d'ancrage
positionImage.y = 1300 ' 13 mm en dessous du point d'ancrage
monImage= monDocument.createInstance("com.sun.star.drawing.GraphicObjectShape")
monImage.GraphicURL = ConvertToURL("C:\Docs OpenOffice\LogoOpenOffice.png")
monImage.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PARAGRAPH
monTexte.insertTextContent(monCurseur, monImage, false)
resizeImageByWidth(monImage, 5500) ' largeur en 1/100 de mm
monImage.Position = positionImage
monImage.Surround = com.sun.star.text.WrapTextMode.RIGHT
monImage.Name = "Logo1" ' donner un nom à cette image
End Sub
Sub resizeImageByWidth(uneImage As Object, largeur As long)
Dim imageInfo As Object, Proportion As Double, Taille1 As Object
imageInfo = uneImage.Graphic
Taille1 = imageInfo.SizePixel
Proportion = Taille1.Height / Taille1.Width
Taille1.Width = largeur
Taille1.Height = Taille1.Width * Proportion
uneImage.Size = Taille1
End Sub