JODConverter - JAVA에서 OpenOffice로 엑셀(excel)을 PDF로 변환하기
JODConverter - JAVA에서 OpenOffice로 엑셀(excel)을 PDF로 변환하기
- 구성환경
-JAVA 1.8
-JODConverter 3.0 beta
-OpenOffice 3.3.0
-CentOS 6.7(64bit)
-
JODConverter 다운 사이트
-
OpenOffice 다운 사이트
http://www.openoffice.org/download/index.html
- 리눅스(CentOS)버전 다운로드 방법
버전은 3.4.1 밖에 없지만, 아카이브를 들어가기위해 선택해준다.
영어 버전으로 들어가고
3.3.0/ 들어가서
tar.gz파일을 받아준다.
- 리눅스(CentOS) OpenOffice 설치
※폴더구성
1. #tar -zxvf OOo_3.3.0_Linux_x86-64_install-rpm-wJRE_en-US.tar.gz
-압축을 풀어준다.
2. #cd RPMS
-압축푼 폴더에서 RPMS 폴더로 이동
3. #rpm -Uvh *.rpm
- rpm 설치
4. #cd desktop-integration
-압축푼 폴더에서 RPMS/desktop-integration 폴더로 이동
5. #rpm -Uvh openoffice.org3.3-redhat-menus-3.3-9556.noarch.rpm
-자신의 OS에 맞게 RPM을 설치 해준다.
(centOS -> redhat)
※리눅스(CentOS) 한글설정
#export LC_ALL="ko_KR.UTF-8"
또는
#export LANG="ko_KR.UTF-8"
두 명령어 입력 후 다음과 같이 나오면 설정 완료
#locale
LANG=ko_KR.UTF-8
LC_CTYPE="ko_KR.UTF-8"
LC_NUMERIC="ko_KR.UTF-8"
LC_TIME="ko_KR.UTF-8"
LC_COLLATE="ko_KR.UTF-8"
LC_MONETARY="ko_KR.UTF-8"
LC_MESSAGES="ko_KR.UTF-8"
LC_PAPER="ko_KR.UTF-8"
LC_NAME="ko_KR.UTF-8"
LC_ADDRESS="ko_KR.UTF-8"
LC_TELEPHONE="ko_KR.UTF-8"
LC_MEASUREMENT="ko_KR.UTF-8"
LC_IDENTIFICATION="ko_KR.UTF-8"
LC_ALL=ko_KR.UTF-8
#vi .bash_profile#export LC_ALL="ko_KR.UTF-8" 맨 끝줄에 넣어줌#:wq 저장
- OpenOffice 서비스 시작
//서비스 시작
#soffice -headless -accept="socket,host=localhost,port=8100;urp;" -nofirststartwizard&
//프로세스 확인
#ps -ef | grep openoffice
//실행중인 화면
※실행이 안된다면 RPMS/desktop-integration 폴더에서 rpm을 설치 했는지 다시 한번 확인
-2020.4.10 추가
설치된 경로를 참조하는지 굳이 서비스에 안올려도 동작이 된다.
-2020.4.13 추가
최근 새로 centos7 깔고 openoffice4.1.7 로 바꾸었더니 한글이 네모(깨지는) 증상이 나타났다.
-2020.4.24 추가
한글이 네모(깨지는) 증상이 나타난 이유를 알았다. 리눅스를 새로깔았더니 font(ttf파일)이 없었던것이다.(이런 실수를!!)
아래 폴더에 엑셀에서 사용한 폰트를 넣어주니 한글이 잘나왔다.
이쪽 경로로 넣어주면 된다 #cd /opt/openoffice4/share/fonts/truetype
-2020.06.17 추가
실치후 실행이 안된다면 아래의 3개의 라이브러리를 설치 해보면 실행이 된다.
(라이브러리 확인방법 #ldd /opt/openoffice4/program/soffice.bin)
yum install libXrender.x86_64
yum install libXext.x86_64
yum install libXt.x86_64
- 자바에서 테스트
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import java.io.File;
import org.artofsolving.jodconverter.OfficeDocumentConverter;
import org.artofsolving.jodconverter.document.DefaultDocumentFormatRegistry;
import org.artofsolving.jodconverter.document.DocumentFormatRegistry;
import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
import org.artofsolving.jodconverter.office.OfficeManager;
public class convert_test {
public static void main(String[] args) {
File inputFile = new File("/home/test/template.xlsx"); //실제 엑셀파일 위치
File outputFile = new File("/home/test/template.pdf"); //저장할 PDF파일 위치
DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();
configuration.setPortNumber(8100); //포트설정
configuration.setOfficeHome(new File("/opt/openoffice.org3")); //OpenOffice 설치된 경로
OfficeManager officeManager = configuration.buildOfficeManager();
officeManager.start();
DocumentFormatRegistry formatRegistry = new DefaultDocumentFormatRegistry();
OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager, formatRegistry);
try {
converter.convert(inputFile, outputFile);
} catch (Exception e){
e.printStackTrace();
} finally {
officeManager.stop();
}
}
}
|
cs |
※윈도우에서 사용할때는
1. OpenOffice Windows 버전 설치
2. 소스에서 파일 경로와 OpenOffice 설치경로만 바꿔주면 된다.
3. 단, 경로설정은 /(슬래시)로 구분해야 인식이 되었다.
4. 만약 안될시, 포트를 2002로 바꾸면 되는경우도 있었다.
자료가 생각보다 많이없어서 정리해둔다.
피드백은 언제든지 환영입니다~!