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: prog-unsubscr...@fr.openoffice.org
> For additional commands, e-mail: prog-h...@fr.openoffice.org
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org

Répondre à