2009. 9. 16. 12:05
Programing/Java
팀내에서 진행하는 프로젝트에 ppt 파일에 포함된 슬라이드를 개별 이미지로 변환해 주는 기능이 필요하여 무료로 제공되는 Apache POI 를 사용해보고 이에 대해 간단히 정리해봅니다.
Apache POI
Apache POI 프로젝트는 Microsoft Format 의 파일들을 엑세스를 지원하는 Java API 라이브러리 입니다. 2009년 9월 16일 현재 3.2 Final 버전과 3.5 beta 6 버전 까지 릴리즈 되었습니다.POI Components
POI는 MS 오피스의 각 문서 포멧에 대응하는 다양한 컴포넌트를 지원하고 있습니다.
저는 이 중에서 ppt를 위한 컴포넌트인 HSLF를 사용하여 슬라이드를 이미지로 변환하였습니다.
사용법은 무척 간단하고 쉽습니다.
우선 POI 라이브러리를 다운로드 하고 압축을 풀면 3개의 jar 파일을 볼 수 있습니다.(3.2 Final 버전 기준)
HSLF 컴포넌트를 사용하기 위해서는 poi-3.2-FINAL-20081019.jar 와 poi-scratchpad-3.2-FINAL-20081019.jar 파일을 import 해야 합니다.
FileInputStream is = new FileInputStream("slideshow.ppt"); SlideShow ppt = new SlideShow(is); is.close(); Dimension pgsize = ppt.getPageSize(); Slide[] slide = ppt.getSlides();
for (int i = 0; i < slide.length; i++) { BufferedImage img
= new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
//clear the drawing area graphics.setPaint(Color.white); graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height)); //render slide[i].draw(graphics); //save the output FileOutputStream out = new FileOutputStream("slide-" + (i+1) + ".png"); javax.imageio.ImageIO.write(img, "png", out); out.close(); }
아래 이미지는 실제 제가 저 코드를 사용하여 클래스를 작성하고 테스트 해본 결과입니다.
3장짜리 ppt 를 변환하니 3장의 png 파일이 만들어졌습니다.
변환된 이미지를 확인해 보니 텍스트가 약간 뭉개지긴 하지만 썩 괜찮은 결과물이었습니다.
마치며
3.2 Final 버전에서는 아직까지 MS Office 2007의 pptx 포멧을 지원하지 않고 있습니다. 다행이도 현재 pptx 지원을 위해 개발 중이라고 하니 다음 릴리즈에서는 pptx 도 문제없이 변환될 것 같습니다.
아주 간단한 코드만으로 ppt 파일을 이미지 파일로 손쉽게 변환 가능하 POI-HSLF 컴포넌트.
만약 PPT파일 변환 기능때문에 고민중이시라면 저는 주저없이 Apache POI 를 권하고 싶습니다.
'Programing > Java' 카테고리의 다른 글
2007 JavaOne Warp-Up 세미나 후기 (0) | 2007.09.08 |
---|---|
JavaOne2007 Wrap-up 세미나 (0) | 2007.09.03 |
제8회 한국 자바 개발자 컨퍼런스 (0) | 2007.02.24 |
윈도우 Java환경 설정 (0) | 2006.12.23 |
에디트플러스 자바 컴파일/실행 설정 (0) | 2006.10.16 |