midrange.com code scratchpad
Name:
Word to PDF with OpenOffice
Scriptlanguage:
C#
Tabwidth:
2
Date:
07/10/2008 10:49:10 pm
IP:
Logged
Description:
The user was to lazy to give a description
Code:
  1. string sourceURI = "file:///c:/temp/input.doc"; 
  2. string targetURI = "file:///c:/temp/output.pdf"; 
  3. //Duh, bootstrap.
  4. XComponentContext localContext = uno.util.Bootstrap.defaultBootstrap_InitialComponentContext();
  5.  
  6. //Get local service manager
  7. XMultiComponentFactory localSM = localContext.getServiceManager();
  8.  
  9. // get urlresolver service from local service manager 
  10. XUnoUrlResolver urlResolver = (XUnoUrlResolver)localSM.createInstanceWithContext(
  11.   "com.sun.star.bridge.UnoUrlResolver",
  12.   localContext);
  13.  
  14. //using urlresolver, get remote context (this is the remote version of localcontext) 
  15. XComponentContext remoteCCemoteCC = (XComponentContext)urlResolver.resolve(
  16.   "uno:socket,host=localhost,port=8100;urp;StarOffice.ComponentContext");
  17.  
  18. //get the remote service manager
  19. XMultiServiceFactory remoteSF = (XMultiServiceFactory)remoteCC.getServiceManager();
  20.  
  21. //get the desktop on the remote instance of openoffice 
  22. XComponentLoader desktop = (XComponentLoader)remoteSF.createInstance(
  23.   "com.sun.star.frame.Desktop");
  24.  
  25. PropertyValue[] loadProps = new PropertyValue[2]; 
  26. loadProps[0] = new PropertyValue(); 
  27. loadProps[0].Name = "Hidden"; 
  28. loadProps[0].Value = new uno.Any(true); 
  29. loadProps[1] = new PropertyValue(); 
  30. loadProps[1].Name = "ReadOnly"; 
  31. loadProps[1].Value = new uno.Any(true);
  32.  
  33. //load the document in a hidden, readonly manner 
  34. XComponent comp = desktop.loadComponentFromURL(sourceURI,
  35.   "_blank", //target frame
  36.   0, //flags
  37.   loadProps); //Properties
  38. XStorable str = (XStorable)comp;
  39.  
  40. //See http://wiki.services.openoffice.org/wiki/Framework/Article/Filter/FilterList_OOo_2_1
  41. string exportFilter = "writer_pdf_Export";
  42.  
  43. PropertyValue[] props = new PropertyValue[1]; 
  44. props[0] = new PropertyValue(); 
  45. props[0].Name = "FilterName"; 
  46. props[0].Value = new uno.Any(exportFilter);
  47.  
  48. //save the document as a pdf
  49. str.storeToURL(targetURI, props);
  50.  
  51. //close up shop.
  52. comp.dispose();
  53.  
© 2004-2019 by midrange.com generated in 0.012s valid xhtml & css