I am trying to program a simple "Hello World" window on WinXP MSVC 2008.NET using OpenOffice 3.0 API and SDK.
The article is big for beginners... http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.xhtml#1_1_OpenOffice.org_Application_Environment
What would the code for "Hello World" look like?
Setup your solution: http://blog.nkadesign.com/2008/net-working-with-openoffice-3/
Then simple example: (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;
}
}
}
}
来源:https://stackoverflow.com/questions/2054328/hello-world-using-openoffice-3-sample-code