3 messages in org.openoffice.fr.progRE: [prog] Couleur de fond ODG
FromSent OnAttachments
Antoine POURCHEZNov 23, 2007 3:08 am 
Bernard MarcellyNov 23, 2007 5:45 am 
Antoine POURCHEZNov 26, 2007 8:43 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:RE: [prog] Couleur de fond ODGActions...
From:Antoine POURCHEZ (anto@kelis.fr)
Date:Nov 26, 2007 8:43:27 am
List:org.openoffice.fr.prog

Merci pour ces infos. Elles m'ont permis de résoudre mon pb. Pour ceux que ça intéresse, voici l'implémentation en java : vDocDraw = vCompLoader.loadComponentFromURL(vUrl, "_blank", 0, vProps); XDrawPagesSupplier vDrawPagesSupplier_DocDraw = (XDrawPagesSupplier) UnoRuntime.queryInterface(XDrawPagesSupplier.class, vDocDraw); XIndexAccess vIndexedDrawPages = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, vDrawPagesSupplier_DocDraw.getDrawPages()); XDrawPage vDrawPage = (XDrawPage) UnoRuntime.queryInterface(XDrawPage.class, vIndexedDrawPages.getByIndex(0)); ... // On crée l'objet BG XMultiServiceFactory mxMSF = (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, vDocDraw); Object oBg = mxMSF.createInstance("com.sun.star.drawing.Background"); XPropertySet vProps_BG = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, oBg); vProps_BG.setPropertyValue("FillStyle", com.sun.star.drawing.FillStyle.SOLID); vProps_BG.setPropertyValue("FillColor", new Integer(0xFFFF00)); // On affecte l'objet BG à la page XPropertySet vProps_DrawPage = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, vDrawPage); vProps_DrawPage.setPropertyValue("Background", vProps_BG); Antoine

-----Message d'origine----- De : Bernard Marcelly [mailto:marc@club-internet.fr] Envoyé : vendredi 23 novembre 2007 14:46 À : pr@fr.openoffice.org Objet : Re: [prog] Couleur de fond ODG

Message de Antoine POURCHEZ date 2007-11-23 12:09 :

Bonjour, J’aimerais via JAVA changer la couleur de fond d’un ODG. Est-ce que qq a une piste sur les objets à utiliser ?

ODG ? plus clairement, document Draw. D'abord que veut-on faire ? changer la couleur de fond d'une page d'un document Draw, ou celle de l'arrière-plan, qui est souvent commun à plusieurs pages voire toutes ?

Dans les deux cas on utilise les propriétés du service com.sun.star.drawing.Background, soit sur la page, soit sur son arrière-plan (MasterPage).

Mais sur une page Draw, ce service n'est pas disponible d'origine. Pour Java, lire la petite documentation IDL du service. Il faut ensuite remplir les propriétés adéquates du service com.sun.star.drawing.FillProperties et affecter cet objet à la page.

Avec Basic (et Xray pour les recherches) c'est quand même plus facile:

dim maPage as object, bgd as object maPage = thisComponent.CurrentController.CurrentPage bgd = thisComponent.createInstance("com.sun.star.drawing.Background") bgd.FillColor = RGB(255,255,200) bgd.FillStyle = com.sun.star.drawing.FillStyle.SOLID maPage.Background = bgd

Pour modifier l'arrière-plan, le service Background est déjà disponible, il suffit de modifier les propriétés.

Avec OpenOffice.org versions 2.x le volet Page de Draw n'est pas repeint automatiquement.

______ Bernard