open office (java)

代码
import java.net.MalformedURLException;
import java.net.URISyntaxException;

import com.sun.star.beans.*;
import com.sun.star.comp.helper.*;
import com.sun.star.frame.*;
import com.sun.star.lang.*;
import com.sun.star.text.*;
import com.sun.star.uno.*;
import com.sun.star.uno.Exception;
import com.sun.star.util.*;
import ooo.connector.BootstrapSocketConnector;

public class Entry {
    
public static void main(String[] args) throws Exception, BootstrapException, URISyntaxException,
        MalformedURLException {
    
// connect to open office
    String oooExeFolder = "C:/Program Files/OpenOffice.org 3/program";
    XComponentContext xContext 
= BootstrapSocketConnector.bootstrap(oooExeFolder);
    com.sun.star.lang.XMultiComponentFactory xMCF 
= xContext.getServiceManager();
    Object oDesktop 
= xMCF.createInstanceWithContext("com.sun.star.frame.Desktop", xContext);
    XComponentLoader xCLoader 
= (com.sun.star.frame.XComponentLoader) UnoRuntime.queryInterface(
        com.sun.star.frame.XComponentLoader.
class, oDesktop);
    
// create document
    XComponent document = xCLoader.loadComponentFromURL("private:factory/swriter""_blank"0,
        
new PropertyValue[0]);
    XTextDocument xTextDocument 
= (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class,
        document);
    XText xText 
= xTextDocument.getText();
    
// create a paragraph cursor
    XParagraphCursor xParagraphCursor = (XParagraphCursor) UnoRuntime.queryInterface(
        XParagraphCursor.
class, xText.createTextCursor());
    
// add some text
    xText.insertString(xText.getEnd(), "My First OpenOffice Document"false);
    
// style the paragraph
    XPropertySet xPropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,
        xParagraphCursor);
    xPropertySet.setPropertyValue(
"ParaStyleName""Heading 1");
    
// add some text
    xText.insertString(xText.getEnd(), "rThis is the first line in my paragraph. "
        
+ "Some more text, just to add some text to this document. "false);
    xPropertySet.setPropertyValue(
"ParaStyleName""Text body");
    
// Add another heading paragraph
    xText.insertString(xText.getEnd(), "rSecond heading"false);
    xPropertySet.setPropertyValue(
"ParaStyleName""Heading 2");
    
// And another text body paragraph
    xText.insertString(xText.getEnd(), "rThis is the second normal paragraph."false);
    xPropertySet.setPropertyValue(
"ParaStyleName""Text body");
    
// save document
    XStorable xStorable = (XStorable) UnoRuntime.queryInterface(XStorable.class, document);
    PropertyValue[] storeProps 
= new PropertyValue[0];
    xStorable.storeAsURL(
"file:///C:/Documents and Settings/Ren/Desktop/wori.odt", storeProps);
    
// export document to pdf
    storeProps = new PropertyValue[1];
    storeProps[
0= new PropertyValue();
    storeProps[
0].Name = "FilterName";
    storeProps[
0].Value = "writer_pdf_Export";
    xStorable.storeToURL(
"file:///C:/Documents and Settings/Ren/Desktop/wori.pdf", storeProps);
    
// close document
    XCloseable xcloseable = (XCloseable) UnoRuntime.queryInterface(XCloseable.class, document);
    xcloseable.close(
false);
    }
}


posted @ 2009-12-03 00:37  N/A2011  阅读(555)  评论(0编辑  收藏  举报