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 버전 기준)
7. 데모 사이트
- http://www.mimul.com/jod/
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/









