我正在尝试使用OpenOffice 3.0 API和SDK 在WinXP MSVC 2008.NET上编写一个简单的"Hello World"窗口.
这篇文章对初学者来说很重要... http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.xhtml#1_1_OpenOffice.org_Application_Environment
"Hello World"的代码是什么样的?
设置您的解决方案:http://blog.nkadesign.com/2008/net-working-with-openoffice-3/
然后是简单的例子:(http://opendocument4all.com/content/view/68/47/)
using System; // Add all needed CLI namespaces to the current class. using unoidl.com.sun.star.lang; using unoidl.com.sun.star.uno; using unoidl.com.sun.star.bridge; using unoidl.com.sun.star.frame; namespace OOTutorial { class OpenOfficeApp { //Define a file name. Change this to an existing path! private static string FileName = @"F:\odtfiles est.odt"; [STAThread] static void Main( string [] args) { //Call the bootstrap method to get a new ComponentContext //object. If OpenOffice isn't already started this will //start it and then return the ComponentContext. unoidl.com.sun.star.uno.XComponentContext localContext = uno.util.Bootstrap.bootstrap(); //Get a new service manager of the MultiServiceFactory type //we need this to get a desktop object and create new CLI //objects. unoidl.com.sun.star.lang.XMultiServiceFactory multiServiceFactory = (unoidl.com.sun.star.lang.XMultiServiceFactory) localContext.getServiceManager(); //Create a new Desktop instance using our service manager //Notice: We cast our desktop object to XComponent loader //so that we could load or create new documents. XComponentLoader componentLoader = (XComponentLoader) multiServiceFactory.createInstance( "com.sun.star.frame.Desktop" ); //Create a new blank writer document using our component //loader object. XComponent xComponent = componentLoader.loadComponentFromURL( "private:factory/swriter", //a blank writer document "_blank", 0, //into a blank frame use no searchflag //use no additional arguments. new unoidl.com.sun.star.beans.PropertyValue[0]); //Cast our component to a the XText interface //and write some simple text into document. ((unoidl.com.sun.star.text.XTextDocument)xComponent). getText().setString("Hello I'm the first text!"); //After we insert our text, we cast our component to XStorable //to save it onto the harddisk ((XStorable)xComponent).storeToURL( //Convert the file path into a OpenOffice path PathConverter(FileName), //no additional arguments new unoidl.com.sun.star.beans.PropertyValue[0]); Console.WriteLine("Your first OpenOffice document is saved!"); Console.ReadLine(); } /// /// Convert into OO file format /// private static string PathConverter( string file) { try { file = file.Replace(@"\", "/"); return "file:///"+file; } catch (System.Exception ex) { throw ex; } } } }