Bonjour à tous et merci pour vos réponses qui m'ont permis d'avancer,
j'avais l'impression que l'enregistreur ne fonctionnait pas mais en fait il mettait en remarque certaines lignes.
J'ai finalement réussi à faire à peu près ce que je voulais. Seul problème c'est que pour compresser et aussi pour ajouter une légende, la macro ouvre la boîte de dialogue mais ne ne permet pas de valider avec les paramètres par défaut de la boîte de dialogue. Il faut cliquer soi-même valider.
D'après ce post, il n'y a pas de moyen de simple de contourner le problème :
https://ask.libreoffice.org/t/automatization-compress-image-in-libreoffice-writer-macro-or-any-method/19928/2
Si quelqu'un a malgré tout une solution pour automatiser complètement la compression d'image et l'ajout de légendes, je suis preneur !
Voici ma macro :
Code : Tout sélectionner
Sub photoGauche
call ChangeSize(8200)
call margegauche
call compresser
call legende
End Sub
Sub ChangeSize(largeur As Integer)
Dim g
g = ThisComponent.CurrentSelection()
if g.supportsService("com.sun.star.text.TextGraphicObject")=false then
msgbox "please select an image"
exit sub
else
TheBitmapSize=g.GetSize
imageWidth=TheBitmapSize.Width
imageHeight=TheBitmapSize.Height
g.Width = largeur
g.Height = largeur/imageWidth*imageHeight
end if
End Sub
sub margegauche
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ObjectAlignLeft", "", 0, Array())
end sub
sub compresser
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:CompressGraphic", "", 0, Array())
end sub
sub legende
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertCaptionDialog", "", 0, Array())
end sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.