Comment insérer une image dans un fichier openoffice writer a partir de VB6 ?

grand_dragon_rouge54 Messages postés 23 Date d'inscription dimanche 30 avril 2006 Statut Membre Dernière intervention 14 octobre 2006 - 14 oct. 2006 à 06:50
michelxld Messages postés 402 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 octobre 2008 - 14 oct. 2006 à 16:48
Bonjour à tous.

J'ai développé une ppalication vb6 qui va collecter des données dans une base de données access et qui les redistribue dans un fihcier openoffice writer. Ca, ça fonctionne bien.

Aujourd'hui, en plus, je souhaiterai récupérer une image présente sur mon disque dur et l'insérer dans le document openoffice writer à partir de mon application VB6.

Quelqu'un saurait il comment faire ? Je pense qu'il me manque selaument un nom de fonction mais je ne suis pas sur. Si quelqu'un à une méthode complété, je suis aussi preneur....

Je vous joints ci-dessous une partie de mon code :

VARIABLES
Dim serviceManager As Object, oText As Object, oCursor As Object
Dim Desktop As Object, Document As Object
Dim Fichier As String
Dim args()
Dim T As Date

    
CONNECTION A LA BASE DE DONNEES
'Déclaration de la variable de connection                                       
 Dim con As New ADODB.Connection                                                 
 Set con = New ADODB.Connection                                                  
 'Connection a la base de données                                                
 con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MaBase.mdb"
 'Declaration de la variable de recorset                                         
 Dim res As New ADODB.Recordset                                                  
 Set res = New ADODB.Recordset                                                   
  'Ouverture de la connection                                                     
  con.Open                          

REQUETE DANS LA BASE
res.Open "select * from MaTable", con, adOpenDynamic, adLockOptimistic

REMPLISAGE DU FICHIER AVEC LES DONNEES DE LA BASE
'Attention à bien spécifier le format URL
 Fichier = "[file:///C:/MonFichierFinal.sxw file:///C:/MonFichierFinal.sxw]"

'Création d'une instance Open Office
 Set serviceManager = CreateObject("com.sun.star.serviceManager")
 Set Desktop = serviceManager.createInstance("com.sun.star.frame.Desktop")

'Ouverture du fichier
Set Document = Desktop.loadComponentFromURL(Fichier, "_blank", 0, args)
Set oText = Document.GetText()

'Création du curseur d'écriture
Set oCursor = oText.createTextCursor

'On boucle le remplissage tant qu'on est pas arrivé à la fin des enregistrements de la requête
Do Until res.EOF
              
             'Définition de la mise en forme du texte par le curseur
             oCursor.CharFontName = "arial"
             oCursor.CharWeight = 150 'Gras
             oCursor.CharHeight = 10    ' Taille des caractères

             'A l'emplacement du curseur, inscription du texte contenu dans le champ MonChamp par exemple, le contenu de celui-
             ci ayant été récupéré dans la requête
             oText.Insertstring oCursor, "Le contenu de mon champ est : " & res!MonChamp, False

             'Retour à la ligne
              oText.Insertstring oCursor, vbLf, False

              'on passe a l enregistrement suivant
              res.MoveNext

Loop

Voila en gros mon code... Merci à MICHELXLD pour son aide précieuse.

1 réponse

michelxld Messages postés 402 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 octobre 2008 32
14 oct. 2006 à 16:48
bonjour à toi ...;o)

tu peux tester cette macro pour insérer une image dans le document

Private Sub Command1_Click()
    Dim serviceManager As Object, oText As Object, oCursor As Object
    Dim Desktop As Object, Document As Object, oImage As Object
    Dim Fichier As String
    Dim args()
    Dim T As Date
   
    'Attention à bien spécifier le format URL
    Fichier = "[file:///C:/monFichier.sxw file:///C:/monFichier.sxw]"


    'Création d'une instance Open Office
    Set serviceManager = CreateObject("com.sun.star.serviceManager")
    Set Desktop = serviceManager.createInstance("com.sun.star.frame.Desktop")


   'Ouverture du fichier
    Set Document = Desktop.loadComponentFromURL(Fichier, "_blank", 0, args)
    Set oText = Document.GetText()
   
    'Création du curseur d'écriture
    Set oCursor = oText.createTextCursor
   
    'Déplace le curseur a la fin
    oCursor.goToEnd (False)
   
    oCursor.CharWeight = 150 'Gras(100 pour normal)
    oCursor.CharPosture = 2 '(italique)  spécifier 0 pour normal
   
    'insère du texte et un saut de ligne a l'emplacement du curseur
    oText.insertString oCursor, "Les nouvelles informations" & vbLf, False
   
   
    '--- insertion Image ---
    Set oImage = Document.createInstance("com.sun.star.text.GraphicObject")


    With oImage
       .GraphicURL = "[file:///C:/Documents file:///C:/Documents] and Settings/mimi/fourmiz.JPG"
       .AnchorType = 1
       .Width = 6000
       .Height = 6000
    End With
   
    oCursor.goToEnd True
    oText.insertTextContent oCursor, oImage, False
    '----------------------
   
   
    'Enregistre les modifications
    Document.Store
    DoEvents
   
    '--------
    'ajoute une temporisation de 2 secondes pour empécher que le fichier
    'ne se ferme avant la fin de la création
    T = Timer + 2: Do Until Timer > T: DoEvents: Loop
    '--------


    'Fermeture du fichier
    'L'argument True indique que les modifications vont être sauvegardées à la fermeture
    Document.Close (True)
   
End Sub

bon week end
michel
0
Rejoignez-nous