ColdFusion 9 - PPT파일변환기
Category : ColdFusion Comments : 댓글쓰기 Posted by 장창학 at 2:15 AM
Bookmark and Share

PPT문서(PowerPoint문서)를 웹에서 동적으로 작성하기 위한 글은 예전에 제 블로그에서 소개한바 있습니다. 간단하게 HTML로 작성되어 POST로 넘어오는 컨텐츠를 ColdFusion을 이용해서 PPT파일로 만들어 보는 예제였습니다. (미리보기는 제 개인 PC에서 테스트해 볼 수 있지만 링크가 추후 연결되지 않을 수 있습니다.)

오늘은 미리 사용자에 의해 작성된 PPT문서를 웹상에서 업로드만 해주면 ColdFusion을 이용해서 PPT문서, PDF문서, Acrobat Connect(Adobe Presenter와 비슷한 플래시기반의 프리젠테이션기능 - 관련내용은 예전글 참조), HTML미리보기(이미지변환)으로 총 4가지 서비스를 동적으로 만들어 보는 예제를 작성해 보고자 합니다. 이 예제는 원래 Josh Adams의 블로그에 있는 Presentastic: Working with PowerPoint Files in ColdFusion 9를 기본 소스로 하고 있는데, 일부 Uninx(Linux)시스템에서 해당 소스가 오류가 나는 것을 변경한 것 입니다.(미리보기)

Source Code : ColdFusion9PPT.zip

ColdFusion에서 Office 파일의 변환 예를 들어, TXT나 HTML문서를 PDF로 변환하는 기능은 아주 오래전 부터 지원하던 기능중에 하나였습니다. HTML양식 그대로 PDF로 만들어 주기 때문에 다른 언어에서 제작하는 것 보다 쉽게 만들 수 있었습니다. 관련내용은 아래 글 참조.

그런데 이번 ColdFusion 9부터는 서버상의 OpenOffice를 이용하여(반드시 서버상에 OpenOffice의 각 OS버전별 설치 라이브러리가 미리 설치되어 있어야 합니다.) 쉽게 PPT, DOC, XSL 등의 읽기, 작성, 상호변환이 가능하게 되었습니다. 상호변환 및 읽기 등의 가능여부는 상호변환표를 참조하세요.

사실 Railo나 OpenBD에서는 다소 부러운 기능중의 하나이지만 Railo나 OpenBD 또는 ColdFusion MX 7이하버전에서도 PPT에 관련된 기능은 RAIForge의 PPTUtils를 이용해서 PPT문서내의 Text와 이미지를 추출해 내어 HTML문서로 만들 수 있습니다. 이 공개소스를 작성한 Todd Sharp가 이 프로젝트로 만든 웹사이트가 바로 SlideSix라는 것으로서 PPT파일을 업로드하면 자동으로 Flex기반의 웹프리젠테이션을 만들어 주는 서비스입니다.(무료로 이용가능하지만 소스코드는 공개되어 있지 않습니다.) 대부분 이러한 기능은 Apache의 POI프로젝트의 결과물들인데 ColdFusion으로는 보다 쉽게 만들 수 있다는 장점이 있습니다.

물론 Microsoft의 powerPoint, Word, Excel 모두 MS의 Office제품들이기 때문에 ActiveX를 이용한 Office Library기반의 ASP.NET으로 개발된 제품보다는 세세한 면에서 뒤쳐질지 모르겠습니다만, 특정 서버플랫폼에 구애받지 않고, 또 표준 Office문서를 OpenOffice를 이용하여 다루기 때문에 라이센스비용이 전혀 없다는 점은 매우 뛰어난 매력이 아닐까 생각합니다.

"ColdFusion 9 - PPT파일변환기"라고 임시로 이름지은 이 소스는 Josh Adams의 소스코드이며, Unix(Linux)에 맞게 변경되고 디버깅되었습니다. 임시 제 PC에서 테스트해 볼 수 있습니다만, 링크가 깨지면 소스코드를 다운로드 받아 ColdFusion 9 Developer버전이 깔려있는 본인의 PC에서 테스트해보시길 바랍니다. (이 기능은 Adobe ColdFusion 9 Enterprise 버전에서만 지원됩니다. Developer버전은 Enterprise와 동일한 기능을 제공합니다.)

추가적으로 Raymond Camden의 Reading Office documents with ColdFusion도 참조해 보시길 바랍니다.

Comments


Write your comment



(it will not be displayed - 실제로 댓글 목록에서는 출력되지 않습니다)



Leave this field empty:




About me

Categories

Monthly Archives

Links

Recent Posts

Recent Comments