Java JODConvert 3.0最佳实践

来源:互联网 发布:sqlserver评估期已过 编辑:程序博客网 时间:2024/06/09 18:45

Java: JODConverter 3.x Getting Started

April 9th, 2009 by jeremychone

Requirements:

  • OpenOffice installed and OpenOffice started (e.g., OpenOffice in the system tray on Windows)
  • Java

Quick steps to test:

  1. Download the latest JODConverter 3.x from google code.
  2. Unzip the jar file
  3. Do a quick test:
    java -jar lib/jodconverter-${version}.jar test.odt test.pdf
  4. you should see something like
    C:\apps\jodconverter-3.0-beta-1>java -jar lib/jodconverter-3.0-beta-1.jar test.odt test.pdfApr 9, 2009 12:56:42 PM net.sf.jodconverter.office.OfficeProcess startINFO: starting process with acceptString 'socket,host=127.0.0.1,port=8100' andprofileDir 'C:\Users\JEREMY~1\AppData\Local\Temp\.jodconverter_socket_host-127.0.0.1_port-8100'Apr 9, 2009 12:56:42 PM net.sf.jodconverter.office.OfficeProcess startINFO: started process; pid -1Apr 9, 2009 12:56:47 PM net.sf.jodconverter.office.OfficeConnection connectINFO: connected: 'socket,host=127.0.0.1,port=8100'Apr 9, 2009 12:56:52 PM net.sf.jodconverter.office.OfficeConnection$1 disposingINFO: disconnected: 'socket,host=127.0.0.1,port=8100'Apr 9, 2009 12:56:53 PM net.sf.jodconverter.office.ManagedOfficeProcess doEnsureProcessExitedINFO: process exited with code 0

Note: As you can see it works because it assumes that OpenOffice listen to the port 8100, which happen to be the case (how lucky!).

In a Java (Server) App:

  1. Copy the following .jar files in your webapp lib directory
    lib/jodconverter-3.0-beta-1.jar
    lib/juh-3.0.0.jar
    lib/jurt-3.0.0.jar
    lib/ridl-3.0.0.jar
    lib/unoil-3.0.0.jar
  2. Use the following code snippet:
    OfficeManager officeManager = new ManagedProcessOfficeManager();officeManager.start();OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);converter.convert(sourceFile,targetFile);officeManager.stop();

Best Practice (from JODConverter group)

  1. OfficeManager instance can and should be shared across all
    threads
    . It should typically be started when your webapp starts, and
    stopped when the webapp stops. It can be e.g. a singleton, or a Spring
    bean, or other equivalent approach of your choice.
  2. The OfficeDocumentConverter instance can also be shared, or you can
    create a different instance per thread. It doesn’t really matter,
    since all conversions will be delegated to the OfficeManager anyway.
0 0
原创粉丝点击