Bonjour,

En fait il manque la définition de l'objet à insérer :

dim oImageFooter
oImageFooter =
thisComponent.createInstance("com.sun.star.text.GraphicObject")
With oImageFooter
    .GraphicURL = monImage.GraphicURL
    .AnchorType = com.sun.star.text.TextContentAnchorType.AS_CHARACTER
    .width = monImage.getSize.Width
    .height = monImage.getSize.Height
End With

'xray monImage
'xray CurseurPiedPage
'xray TextePiedPage
TextePiedPage.insertTextContent(CurseurPiedPage, oImageFooter, false)

Francois Gatto

Rémi B a écrit :
> Le Thu, 03 Sep 2009 22:53:03 +0200, Francois Gatto a écrit :
> 
>> 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.
> 
> xray monImage me renvoit bien les propriétés (avec le nom correct)
> 
> On dirait que cela vient de :
> TextePiedPage.insertTextContent(CurseurPiedPage, monImage, false) 
> 
> Merci.
> Rémi.
> 
>> 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]
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Répondre à