<< 실용주의 프로그래머의 70가지 조언 | Home | HTML5 기반의 Flowplayer(오픈소스 비디오 플레이어) 사용법 >>

JODConverter(Java OpenDocument Converter) 소개

JODConverter는 Open Office를 활용하여 오피스 문서를 PDF나 HTML등으로 변환해주는 오픈소스 라이브러리입니다. 주로 웹이서 변환이나 뷰잉용으로 활용을 하는데, 설치 및 사용 관련해서 사용법을 공유해 봅니다.

1. 사전 준비사항
 - Java 1.5 or later
 - OpenOffice.org 3.0.0 or later
 - JODConverter 3.0 beta(http://code.google.com/p/jodconverter)
 - JODConverter 2.2.2 버전(http://sourceforge.net/projects/jodconverter/files/JODConverter/)


2. JODConverter 버전 설명
 - JODConverter 2.2.2 일 경우 Open Office가 구동되어 있어야 함.(jodconverter에서 연결만 해서 컨버팅함)
  . 윈도우는 C:\Program Files\OpenOffice.org 3\program\soffice.exe -headless -accept=socket,port=8100;urp; 실행함
  . 리눅스는 /opt/openoffice.org3/program/soffice.bin -headless -accept=socket,port=8100;urp;
 - 3.0 beta는 Open Office를 자동 구동해서 컨버팅하고 Open Office를 중지하는 형태로 프로세스가 구동되어 변환 시간이 2.2.보다 더 걸리는 단점이 있음.
 - 3.0beta 일 경우 Open Office의 처리 사항
  . 윈도우 일경우는 아래 4를 서비스 등록 가정이 필요함.
  . 리눅스일 경우 Open Office 설치만 해주면 끝.


3. 변환 가능한 포멧
 - 여기 참조


4. 윈도우에서 OpenOffice 설치
 - 다운 받아서 설치하면 됨 - ftp://ftp.kaist.ac.kr/openoffice/stable/3.2.1/OOo_3.2.1_Win_x86_install_en-US.exe
 - 윈도우에서 변환시에는 OpenOffice 서비스 등록 필요
  . Window Server 2003 Resource Kit Tools 다운
    : http://www.microsoft.com/downloads/details.aspx?FamilyID=9D467A69-57FF-4AE7-96EE-B18C4790CFFD&displaylang=en
  . Path 등록 : C:\Program Files\Windows Resource Kits\Tools
  . C:\>instsrv OpenOfficeUnoServer C:\Program Files\Windows Resource Kits\Tools\srvany.exe
  . regedit를 실행하여 찾음(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OpenOfficeUnoServer)
  . Parameters라는 이름으로 키 추가
  . Parameters에 문자열 추가 Application, AppParameters
  . Application : C:\Program Files\OpenOffice.org 3\program\soffice.exe
  . AppParameters : -headless -accept=socket,host=0.0.0.0,port=8100;urp;
5. 리눅스에서 OpenOffice 설치
 wget ftp://ftp.kaist.ac.kr/openoffice/stable/3.2.1/OOo_3.2.1_Linux_x86_install-rpm_en-US.tar.gz
 gunzip -c OOo_3.2.1_Linux_x86_install-rpm_en-US.tar.gz |tar xvf -
 cd OOO320_m18_native_packed-1_en-US.9502/RPMS
 rpm -i *.rpm
 cd desktop-integration/
 rpm -i openoffice.org3.2-redhat-menus-3.2-9502.noarch.rpm


6. 샘플 소스(2.2.2 버전 기준)
String orgFilePath = null;
String path = null, convertPath = null, fileName = null;
OpenOfficeConnection oconn = null;
DocumentConverter converter = null;
File inFile = null, outFile = null;
try {
 //변환할 디렉토리
 orgFilePath = path + ServiceConstants.ZNODE_PATH_SEPARATOR;
 fileName = "a.ppt";
 if (LOG.isDebugEnabled()) {
  LOG.debug("orgFilePath=" + orgFilePath);
 }
 
 // 변환될 디렉토리
 convertPath = /target/convert" + "/";
 if (LOG.isDebugEnabled()) {
  LOG.debug("convertPath=" + convertPath);
 }

 inFile = new File(orgFilePath, fileName);
 oconn = new SocketOpenOfficeConnection("localhost", 8100);
 oconn.connect();
 outFile = new File(convertPath +"a/a.html");
 converter = new OpenOfficeDocumentConverter(oconn);
 converter.convert(inFile, outFile);
 
 result = outFile.getAbsolutePath();
} catch (Exception e) {
 e.printStackTrace();
 LOG.error(e);
 throw new SysException(e.getCause());
} finally {
 if (oconn != null)
  oconn.disconnect();
}


7. 데모 사이트
 - http://www.mimul.com/jod/




Add a comment Send a TrackBack