Comment insérer une image dans un fichier openoffice writer a partir de VB6 ?
grand_dragon_rouge54
Messages postés23Date d'inscriptiondimanche 30 avril 2006StatutMembreDernière intervention14 octobre 2006
-
14 oct. 2006 à 06:50
michelxld
Messages postés402Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention12 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.
A voir également:
Comment insérer une image dans un fichier openoffice writer a partir de VB6 ?
michelxld
Messages postés402Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention12 octobre 200832 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
'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)