| 
 从Loader对象可以加载一篇文档: 
 private static Object loadDocument(XComponentLoader loader, String inputFilePath) throws Exception {     // Preparing properties for loading the document     PropertyValue[] propertyValues = new PropertyValue[1];     propertyValues[0] = new PropertyValue();     propertyValues[0].Name = "Hidden";     propertyValues[0].Value = new Boolean(true);     // Composing the URL by replacing all backslashs     File inputFile = new File(inputFilePath);     String inputUrl = "file:///" + inputFile.getAbsolutePath().replace('\\', '/');     return loader.loadComponentFromURL(inputUrl, "_blank", 0, propertyValues); } 
 
 接着自然就是文档转换了: 
private static void convertDocument(Object doc, String outputFilePath, String convertType) throws Exception {     // Preparing properties for converting the document     PropertyValue[] propertyValues = new PropertyValue[2];     // Setting the flag for overwriting     propertyValues[0] = new PropertyValue();     propertyValues[0].Name = "Overwrite";     propertyValues[0].Value = new Boolean(true);     // Setting the filter name     propertyValues[1] = new PropertyValue();     propertyValues[1].Name = "FilterName";     propertyValues[1].Value = convertType;     // Composing the URL by replacing all backslashs     File outputFile = new File(outputFilePath);     String outputUrl = "file:///" + outputFile.getAbsolutePath().replace('\\', '/');     // Getting an object that will offer a simple way to store     // a document to a URL.     XStorable storable = UnoRuntime.queryInterface(XStorable.class, doc);     // Storing and converting the document     storable.storeAsURL(outputUrl, propertyValues); } 
最后还要关闭文档:  
private static void closeDocument(Object doc) throws Exception {     // Closing the converted document. Use XCloseable.clsoe if the     // interface is supported, otherwise use XComponent.dispose     XCloseable closeable = UnoRuntime.queryInterface(XCloseable.class, doc);     if (closeable != null) {      closeable.close(false);     } else {         XComponent component = UnoRuntime.queryInterface(XComponent.class, doc);         component.dispose();     } } 
 
最后便是将上面四个步骤串联起来:  
 
public static void main(String args[]) {     String inputFilePath = "D:\\convert\\input.txt";     String outputFilePath = "D:\\convert\\output.doc";     // the given type to convert to     String convertType = "swriter: MS Word 97";     try {         XComponentContext context = createContext();         System.out.println("connected to a running office ...");         XComponentLoader compLoader = createLoader(context);         System.out.println("loader created ...");         Object doc = loadDocument(compLoader, inputFilePath);         System.out.println("document loaded ...");         convertDocument(doc, outputFilePath, convertType);         System.out.println("document converted ...");         closeDocument(doc);         System.out.println("document closed ...");         System.exit(0);     } catch (Exception e) {         e.printStackTrace(System.err);         System.exit(1);     } } 
 出处:老赵点滴
 
责任编辑:bluehearts 
上一页 使用OpenOffice.org将各类文档转为PDF [1] 下一页 使用OpenOffice.org将各类文档转为PDF [3] 
◎进入论坛网络编程版块参加讨论
	       |