Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.
Modérateur :Vilains modOOs
Règles du forum Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
je suis en train de tester la macro " inserer une image à la position du curseur" fournie dans le livre programmationOpenOffice.Org (p479) et je n'obtiens pas le résultat anoncé. Mon image s'insère mais jamais à la position de mon curseur mais à une position qui fait référence au coin en haut à gauche de la feuille. Merci par avance pour vos explications.
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
End Sub
Sub resizeImageByWidth(uneImage As Object, largeur As Long)
Dim leBitMap As Object, Proportion As Double
Dim Taille1 As New com.sun.star.awt.Size
LeBitmap = uneImage.GraphicObjectFillBitmap
Taille1 = LeBitMap.Size ' taille en pixels !
Proportion = Taille1.Height / Taille1.Width
Taille1.Width = largeur ' largeur en 1/100 de mm
Taille1.Height = Taille1.Width * Proportion
uneImage.Size = Taille1
End Sub
Dernière modification par larra.phil le 10 août 2007 10:30, modifié 3 fois.
Nouveau (elle ?) sur ce forum tu n'en maitrises pas encore le fonctionnement
Il faut poser les questions relatives aux macros dans la section "macros".
Autre conseil : le code doit être "balisé" avec la balise Code correspondante. Le plus simple est de sélectionner le texte correspondant et de cliquer sur le bouton Code dans la barre d'outils en dessous du sujet.
Merci
Cela dit, sur le fond, ce code se déplace au deuxième paragraphe (s'il existe) et ancre l'image à ce parapraphe (avec un léger décalage). Il me semble donc tout à fait normal que l'image soit insérée "en haut de la page"...
Merci pour tes conseils Pierre-Yves qui m'ont permis de comprendre mon erreur car je pensais que l'image serait insérée à mon curseur visible mais dans la macro elle est inserée à la position du curseur d'écriture. J'ai pu faire la modification et du coup mon image s'insert bien à la position de mon curseur visible.Voici la partie modifier qui permet de positionner le curseur d'écriture sur le curseur visible :
Ceci étant fait, je cherche maintenant à mettre au point une macro qui me permettrait de remplacer une image sélectionnée par une autre image et là, je bloque un peu car ma sélection de départ n'est plus du texte comme dans la macro précedente mais une image. Merci d'avance pour vos solutions.
larra.phil a écrit : Ceci étant fait, je cherche maintenant à mettre au point une macro qui me permettrait de remplacer une image sélectionnée par une autre image et là, je bloque un peu car ma sélection de départ n'est plus du texte comme dans la macro précedente mais une image. Merci d'avance pour vos solutions.
La règle sur ce forum est de ne poser qu'une question par fil afin de faciliter les recherches ultérieures. Il aurait donc fallu ouvrir un nouveau fil spécifique...
option explicit
Sub PysRemplacerImage
Dim PysDocument as Object
Dim PysDrawPage as Object
Dim PysImage as Object
PysDocument = thisComponent 'le document courant
PysDrawPage = thisComponent.DrawPage 'la couche "dessin" dans laquelle sont les images
PysImage = PysDrawPage.getByIndex(0) 'accès dans cette "couche" à la première image
PysImage.GraphicURL = ConvertToURL(_
"C:\Documents and Settings\Pierre-Yves\Mes documents\Mes images\divers\test.jpg")
End Sub