[Résolu][Impress] Erreur supportsService sur GraphicObjectShape

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
ludovic77
NOOuvel adepte
NOOuvel adepte
Messages : 13
Inscription : 31 juil. 2018 16:26

[Résolu][Impress] Erreur supportsService sur GraphicObjectShape

Message par ludovic77 »


La modération vous a écrit: Titre modifié : oShape.supportsService error
Veillez à utiliser des termes en français afin que la recherche soit efficace.

Bonsoir,

voici la macro :

Code : Tout sélectionner

Sub RedimensionnerImagesSurPage
    Dim oDoc As Object
    Dim oSlides As Object
    Dim oSlide As Object
    Dim oShape As Object
    Dim nouvelleLargeur As Long
    nouvelleLargeur = 5510  ’ Largeur définie à 5.51 cm (en 1/100 mm)

    oDoc = ThisComponent
    oSlides = oDoc.getDrawPages()

    pageIndex = 0 ’ Remplacez par l’index de la page souhaitée (première page = 0, deuxième page = 1, etc.)
    oSlide = oSlides.getByIndex(pageIndex)

    For j = 0 To oSlide.getCount() - 1
        oShape = oSlide.getByIndex(j)
        If oShape.supportsService(“com.sun.star.drawing.GraphicObjectShape”) Then
            ratio = CDbl(nouvelleLargeur) / oShape.Size.Width
            oShape.Size = CreateUnoStruct(“com.sun.star.awt.Size”, nouvelleLargeur, CLng(oShape.Size.Height * ratio))
        End If
    Next j

    MsgBox “Les images de la page sélectionnée ont été redimensionnées.”
End Sub
la macro fonctionnait avant (je ne me souviens plus de la version de LO), mais maintenant elle ne fonctionne plus.

J'ai une erreur au niveau du : If oShape.supportsService(“com.sun.star.drawing.GraphicObjectShape”)

Merci pour votre aide
Dernière modification par ludovic77 le 08 janv. 2024 13:02, modifié 4 fois.
Version: 7.6.4.1 (X86_64) / LibreOffice Community
Build ID: e19e193f88cd6c0525a17fb7a176ed8e6a3e2aa1
CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3
Locale: fr-FR (fr_FR.UTF-8); UI: fr-FR
Calc: threaded
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25970
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Impress] oShape.supportsService error

Message par Dude »

Salut,
ludovic77 a écrit : 03 janv. 2024 17:22 J'ai une erreur au niveau du : If oShape.supportsService(“com.sun.star.drawing.GraphicObjectShape”)
Et donc, as-tu inspecté l'objet oShape avec XRay pour voir quels sont les services supportées ?

Comme d'habitude, fournir du code mais ne pas joindre de document visant à reproduire le problème n'aide pas.
ludovic77
NOOuvel adepte
NOOuvel adepte
Messages : 13
Inscription : 31 juil. 2018 16:26

Re: [Impress] Erreur supportsService sur GraphicObjectShape

Message par ludovic77 »

Bonsoir,
Voici en piece jointe un exemple avec 2 images recupérés sur internet.
J'ai suivi le tuto pour Xray, il ne fonctionne pas.

Merci
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Version: 7.6.4.1 (X86_64) / LibreOffice Community
Build ID: e19e193f88cd6c0525a17fb7a176ed8e6a3e2aa1
CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3
Locale: fr-FR (fr_FR.UTF-8); UI: fr-FR
Calc: threaded
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 639
Inscription : 09 août 2017 22:15

Re: [Impress] Erreur supportsService sur GraphicObjectShape

Message par Jurassic Pork »

Hello,
1 - il n' y a pas de macro dans ton document
2 - si on copie colle le code du premier message dans un nouveau module, il y a des erreurs car les apostrophes et les guillemets ne sont pas bons.
3 - pour changer la taille d'un objet "Shape" il faut utiliser setSize
4 - je n'ai pas d'erreur sur la fonction supportsService avec ton document ( avec LibreOffice 7.6.2.1) avec ce code :

Code : Tout sélectionner

Sub RedimensionnerImagesSurPage
    Dim oDoc As Object, oSlides As Object, oSlide As Object, oShape As Object
    Dim pageIndex As Integer, j as Integer
    Dim nouvelleLargeur As Long, ratio As Double, NewSize As Object
    
    nouvelleLargeur = 5510  ' Largeur définie à 5.51 cm (en 1/100 mm)
    oDoc = ThisComponent
    oSlides = oDoc.getDrawPages()

    pageIndex = 0   'Remplacez par l’index de la page souhaitée (première page = 0, deuxième page = 1, etc.)
    oSlide = oSlides.getByIndex(pageIndex)

    For j = 0 To oSlide.getCount() - 1
        oShape = oSlide.getByIndex(j)
        If oShape.supportsService("com.sun.star.drawing.GraphicObjectShape") Then
            ratio = CDbl(nouvelleLargeur) / oShape.Size.Width
            NewSize =  CreateUnoStruct("com.sun.star.awt.Size")
            NewSize.Width =  nouvelleLargeur
            NewSize.Height =   CLng(oShape.Size.Height * ratio)
            oShape.SetSize(NewSize)
        End If
    Next j

    MsgBox "Les images de la page sélectionnée ont été redimensionnées."
End Sub
Ami calmant, J.P
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
ludovic77
NOOuvel adepte
NOOuvel adepte
Messages : 13
Inscription : 31 juil. 2018 16:26

Re: [Impress] Erreur supportsService sur GraphicObjectShape

Message par ludovic77 »

Je croyais que j'avais integré la macro: c'est chose faite.

J'ai modifier ' par rem , et je me retrouve avec la meme erreur .je suis sous libreOffice 7.6.4.1.

Merci pour votre aide
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Version: 7.6.4.1 (X86_64) / LibreOffice Community
Build ID: e19e193f88cd6c0525a17fb7a176ed8e6a3e2aa1
CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3
Locale: fr-FR (fr_FR.UTF-8); UI: fr-FR
Calc: threaded
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25970
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Impress] Erreur supportsService sur GraphicObjectShape

Message par Dude »

Relis ce que te dit Jurassic Pork
Jurassic Pork a écrit : 05 janv. 2024 06:41 il y a des erreurs car les apostrophes et les guillemets ne sont pas bons
Tu vois bien dans l'EDI que les chaînes ne sont pas colorisées comme elles devraient l'être.
Le 2e document que tu fournis a les mêmes erreurs. :roll:
ludovic77 a écrit : 04 janv. 2024 19:58 J'ai suivi le tuto pour Xray, il ne fonctionne pas.
Etonnant, merci de détailler ce que tu as fait car "ne fonctionne pas" n'aide en rien à comprendre.
Le fait que tu n'arrives pas à lancer XRay démontre qu'il y a sans doute un dysfonctionnement de ta configuration.
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17187
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Impress] Erreur supportsService sur GraphicObjectShape

Message par jeanmimi »

Bonjour,
Peux-tu tester ce fichier avec ta version de LibO ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 25.2.0.3 (x64)(20 février 2025)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
ludovic77
NOOuvel adepte
NOOuvel adepte
Messages : 13
Inscription : 31 juil. 2018 16:26

Re: [Impress] Erreur supportsService sur GraphicObjectShape

Message par ludovic77 »

Bonjour,
La macro fonctionne.

Merci
Version: 7.6.4.1 (X86_64) / LibreOffice Community
Build ID: e19e193f88cd6c0525a17fb7a176ed8e6a3e2aa1
CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3
Locale: fr-FR (fr_FR.UTF-8); UI: fr-FR
Calc: threaded