Bonjour,
Dans un document Writer, j'ai déjà une image insérée (logo).
Par macro Basic, je souhaite récupérer son URL interne afin de l'insérer
dans le pied de page du document. Une sorte de copier/coller
J'utilise le code suivant (très largement basé sur Marcelly/Godard,
programmation OOo) :
'=========================================================
Function FindObjectByName(unePage As Object, _
nomObj As String, Optional service As String) As Object
'Marcelly, Godard, annexe B
Dim objX As Object, x As Long
For x = 0 To unePage.Count - 1
objX = unePage(x)
If objX.Name = nomObj Then
if IsMissing(service) then
FindObjectByName = objX ' objet trouvé
Exit Function
else
if objX.supportsService(service) then
FindObjectByName = objX ' objet trouvé
Exit Function
end if
end if
EndIf
Next
End Function ' renvoie Null en cas d'échec
Sub InsererLogo()
'D'après Marcelly, Godard, page 297
LeDoc = thisComponent
LeTexte = LeDoc.Text
'Un curseur pour analyser les styles
monCurseur = LeTexte.createTextCursor
'On récupère le nom du style de la page en cours
nomStyleMaPage = monCurseur.PageStyleName
'on récupère l'ensemble des styles de pages possibles
lesStylesPage = LeDoc.StyleFamilies.getByName("PageStyles")
'on récupère le style de la page en cours
StyleMaPage = lesStylesPage.getByName(nomStyleMaPage)
With StyleMaPage
.FooterIsOn = true 'on active le pied de page
.FooterHeight = 500 'en centaines de mm
TextePiedPage = .FooterText 'zone de texte du pied de page
End With
CurseurPiedPage = TextePiedPage.createTextCursor
'On aligne à droite
CurseurPiedPage.ParaAdjust = com.sun.star.style.ParagraphAdjust.RIGHT
'On insère le texte
'TextePiedPage.insertString(CurseurPiedPage, "Texte inséré en pied de
page, false)
'Insertion d'une image déjà insérée ailleurs dans le document
maPage = LeDoc.DrawPage
'L'image doit être préalablement nommée dans OOo
monImage = FindObjectByName(maPage,"logo")
TextePiedPage.insertTextContent(CurseurPiedPage, monImage, false)
End Sub
'=========================================================
Le texte s'insère bien en pied de page mais pas l'image.
J'ai une runtime error sur la dernière ligne.
Comment pourrais-je faire ?
Merci.
Rémi.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]