Bonsoir,
A priori le code semble correct.
As-tu correctement nommé ton logo ?!
Peut être vérifier également pour certains composants au moyen de xray
leur existence et/ou leur contenu.
Francois Gatto
Rémi B a écrit :
> 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]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]