Ouvrir un document Openoffice avec VB

fdumee Messages postés 1 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 7 août 2003 - 7 août 2003 à 09:50
bbword Messages postés 6 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 19 juillet 2005 - 19 juil. 2005 à 19:55
Bonjour,

je cherche l'option qui permet d'ouvrir un document Openoffice à partir de VB sans avoir la première page d'Oo (sans nom1).

2 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
7 août 2003 à 14:05
Un petit shell(.....) ou plus complexe
un createprocess (....)

http://faq.vb.free.fr/index.php?question=7

Pour la deuxieme partie regarde l'aide de Open Office dans command line tu as toute les option qu'il faut.

-writer ---> openwriter
-nologo ---> nocomment
-o fichier --> ouvre un fichier
-view fichier --> ouvre un fichier en lecteure seule
-minimize --> noslaphscreen
.....

a toi de voir la suite.
0
bbword Messages postés 6 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 19 juillet 2005
19 juil. 2005 à 19:55
Salut

Je suis en train de travailler sur l'export vers Ooo,

voici un code pour ouvrir un document

FichierOOo est le nom du fichier à ouvrir

si tu veux un nouveau document alors tu lui passes "private:factory/swriter"



'root object from OOo API

Public oSM As Object '---ServiceManager

Public ODesk As Object '---Desktop (Bureau)

Public oDoc As Object '---Document ouvert



'*****************************************************************************************

Public Function ouvre_ObjetOOo()

'*****************************************************************************************

'Instanciate OOo : la première ligne est toujours exigée dans Visual Basic pour OOo

Set oSM = CreateObject("com.sun.star.ServiceManager")

Set ODesk = oSM.createInstance("com.sun.star.frame.Desktop")

End Function



'*****************************************************************************************************

Private Sub CommandOuvreDoc_Click()

'*****************************************************************************************************

Dim CheminOOo As String, FichierOOo As String

CheminOOo = ""

FichierOOo = "private:factory/swriter"

ouvre_ObjetOOo

ouvre_Document CheminOOo, FichierOOo, ""

End Sub


'*****************************************************************************************************

Public Function ouvre_Document(CheminOOo As String, FichierOOo As String, MDPOOo As String) As Boolean

'*****************************************************************************************************

' ouverture de document avec paramètres

Dim OpenPar(2) As Object

Dim FichierCompletOOo As String

'----------------------------------------------------------------------------

'Nous appelons la fonction de setOOoProp, pour accéder à la structure

Set OpenPar(0) = setOOoProp("ReadOnly", False)

Set OpenPar(1) = setOOoProp("Password", MDPOOo)

Set OpenPar(2) = setOOoProp("Hidden", False)

If CheminOOo = "" Then

FichierCompletOOo = FichierOOo

Else

FichierCompletOOo = CheminOOo & "/" & FichierOOo

End If

'Maintenant nous pouvons appeler la méthode de loadComponentFromURL d'OOo,

'en lui donnant comme quatrième argument le résultat de notre appel précédent de setOOoProp

Set oDoc = ODesk.loadComponentFromURL(FichierCompletOOo, "_blank", 0, OpenPar)

End Function



'*****************************************************************************************

Public Function setOOoProp(cName As String, uValue) As Object

'*****************************************************************************************

'Quelques propriétés d'objet dans OOo api ont la structure de type.

'Les structures sont l'équivalent du type défini pour l'utilisateur (UDT) dans visual basic.

'En raison de l'exécution du pont d'UNO-Automation, il n'est pas possible de passer un UDT

'comme argument de méthode.

'(Cf http://api.openoffice.org/docs/DevelopersGuide/ProfUNO/ProfUNO.htm#1+4+4+5+3+Usage+of+Types).

'dans visual basic, on doit employer une méthode particulière d'OOo api (Bridge_GetStruct):

'il donne l'accès à une structure d'OOo dans visual basic.

'Après ce, on peut donner le résultat de l'appel de Bridge_GetStruct comme argument dans un appel de méthode.

'Vous pourriez par exemple employer une fonction d'aide comme ceci:

Dim oPropertyValue As Object

Set oPropertyValue = oSM.Bridge_GetStruct("com.sun.star.beans.PropertyValue")

oPropertyValue.Name = cName

oPropertyValue.Value = uValue

Set setOOoProp = oPropertyValue

End Function



j'espère que cela t'aidera
bbword
0
Rejoignez-nous