IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

Problème d'insertion d'image avec une macro dans Writer [LibreOffice][Texte]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Problème d'insertion d'image avec une macro dans Writer
    Bonjour à tous,

    J'ai un document Writer avec des macros.
    Dans ce document je souhaite insérer des photos dont je peux récupérer le chemin.
    J'ai trouvé plusieurs exemples de code qui m'ont permis de rédiger la macro AjouterImage.

    Or, à l'exécution de cette macro j'ai le message d'erreur suivant :
    Erreur d'exécution BASIC.
    Une exception s'est produite :
    Type: com.sun.star.lang.IllegalArgumentException
    Message: .

    Voici le code de la macro AjouterImage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    Sub AjouterImage(CheminImage as string)
      Dim monDocument As Object, monTexte As Object
      Dim monCurseur As Object, monImage As Object, gp As Object
      Dim positionImage As New com.sun.star.awt.Point
      Dim props(0) As New com.sun.star.beans.PropertyValue
     
      monDocument = ThisComponent
      monTexte = monDocument.Text
      monCurseur = monTexte.createTextCursor
      monCurseur.gotoNextParagraph(False) ' déplacer le curseur
     
      gp = createUnoservice("com.sun.star.graphic.GraphicProvider")
      props(0).Name = "URL"
      props(0).Value = CheminImage
      monImage= monDocument.createInstance("com.sun.star.drawing.GraphicObjectShape")
      monImage.Graphic = gp.queryGraphic( props() ) ' récupérer le fichier image
      monImage.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PARAGRAPH
      monTexte.insertTextContent(monCurseur, monImage, false)
      resizeImageByWidth(monImage, 5500) ' largeur en 1/100 de mm
      positionImage.x = 1500 ' 15 mm à droite du point d'ancrage
      positionImage.y = 1300 ' 13 mm en dessous du point d'ancrage
      monImage.Position = positionImage
      monImage.Surround = com.sun.star.text.WrapTextMode.RIGHT
     
    End Sub
    La variable CheminFichier est renseignée avec l'URL de la photo que je souhaite insérer.
    Pour précision, j'utilise un Mac avec OS X El Capitan (10.11.5) , et LibreOffice 5.1.5.2.
    Le document Writer possèdent d'autres Macros notamment pour insérer des diagrammes et modifier des champs d'utilisateur qui ne me posent aucun souci.

    Pouvez-vous m'aider ?

    Merci d'avance.

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Bonjour,

    Sur quelle ligne s'arrête t'il ?

    Cdlt.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par zoom61 Voir le message

    Sur quelle ligne s'arrête t'il ?

    Il s'arrête sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monTexte.insertTextContent(monCurseur, monImage, false)

    Merci.

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 036
    Points : 9 443
    Points
    9 443
    Par défaut
    hello,
    pourquoi n'utilises-tu pas un TextGraphicObject comme ceci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub InsererImage()
    oText = ThisComponent.Text
    Curs = oText.createTextCursor
    Curs.gotoStart(False)
    Curs.gotoNextParagraph(False)
    Curs.gotoEndofParagraph(False)
     
    FileName = "f:\temp\acs-1.png"
    FileURL = convertToURL(FileName)
     
    objTextGraphicObject = ThisComponent.createInstance("com.sun.star.text.TextGraphicObject")
    Dim objSize as New com.sun.star.awt.Size
    objSize.Width = 3530
    objSize.Height = 1550
    objTextGraphicObject.setSize(objSize)
    objTextGraphicObject.GraphicURL = FileURL
    oText.insertTextContent(Curs.Start, objTextGraphicObject, false)
    End sub
    et dans ton code ton chemin est-il en format URL ?

    Ami calmant, J.P

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Merci beaucoup pour cette solution.
    En effet en utilisant un TextGraphicObject je n'ai plus de problème.

    Encore merci pour votre aide.

    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probléme d'insertion en lot avec une seul requete
    Par No Name dans le forum ADO.NET
    Réponses: 3
    Dernier message: 12/03/2011, 18h24
  2. [XL-2003] Comment déplacer une image avec une macro
    Par soular12 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/01/2010, 18h34
  3. insertion image avec une macro pour word
    Par bricoleur76 dans le forum VBA Word
    Réponses: 3
    Dernier message: 12/03/2009, 22h14
  4. Pb d'insertion d'image avec une macro sur Excel 2007
    Par tigrou42 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/05/2007, 00h48
  5. Réponses: 2
    Dernier message: 14/05/2004, 14h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo