AODL example 17
From Apache OpenOffice Wiki
Create a new TextDocument and use the OpenOfficeLib to do a print out
This example NUnit test will show how to create a new OpenDocument text document by using AODL and send it to a printer by using the new OpenOfficeLib.
Remarks: The OpenOfficeLib is an add on library for AODL. It's a simple wrapper for the CLI UNO assemblies which are part of OpenOffice.org since vers. 1.9.x. In contrast to the AODL library the OpenOfficeLib will need an existing Apache OpenOffice installation in order to work!
using System; using NUnit.Framework; using System.Xml; using AODL.Document.Content.Tables; using AODL.Document.TextDocuments; using AODL.Document.Styles; using AODL.Document.Content.Text; using OpenOfficeLib.Connection; using OpenOfficeLib.Document; using OpenOfficeLib.Printer; 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 AODLTest { /// <summary> /// OpenOfficeLibTests /// </summary> [TestFixture] public class OpenOfficeLibTests { /// <summary> /// Creates the new document and print it out. /// </summary> [Test (Description="Simple print test. Apache OpenOffice installation and printer must exist."), Explicit] public void CreateNewDocumentAndDoAPrintOut() { string fileToPrint = "fileToPrint.odt"; //Create a new text document TextDocument document = new TextDocument(); document.New(); //Create a standard paragraph using the ParagraphBuilder Paragraph paragraph = ParagraphBuilder.CreateStandardTextParagraph(document); //Add some simple text paragraph.TextContent.Add(new SimpleText(document, "Some simple text!")); //Add the paragraph to the document document.Content.Add(paragraph); //Save empty document.SaveTo(fileToPrint); //Now print the new document via the OpenOfficeLib //Get the Component Context XComponentContext xComponentContext = Connector.GetComponentContext(); //Get a MultiServiceFactory XMultiServiceFactory xMultiServiceFactory = Connector.GetMultiServiceFactory(xComponentContext); //Get a Dektop instance XDesktop xDesktop = Connector.GetDesktop(xMultiServiceFactory); //Convert a windows path to an OpenOffice one fileToPrint = Component.PathConverter(fileToPrint); //Load the document you want to print XComponent xComponent = Component.LoadDocument( (XComponentLoader)xDesktop, fileToPrint, "_blank"); //Print the XComponent Printer.Print(xComponent); } } }
Back to the AODL examples overview.