MS 오피스 문서를 PDF로 변환
각종 문서(doc, docx, ppt, pptx, xls, xlsx, odt, odp, ods, txt, html 등) 를 PDF로 변환하는 컨버터 프로그램을 짜려고 합니다.
몇일에 걸쳐 이 분야에 관한 정보를 모아봤는데 아무리 보아도 궁금증이 해결되지 않는 부분이 좀 있고 해서 결국에는 글을 올립니다.
사용 언어 : 자바
OS : 리눅스
질문
1. Apache Tika란 toolkit으로 각종 문서를 파싱할 수 있다는걸 알게 되었는데..일단 Tika 공식 사이트나 Tika에 쓰이는 각종 파서들 (Apache Poi)의 공식 문서들을 보면 Text Extraction에 기능이 맞춰져 있다고 쓰여있습니다. 그런데 검색을 해보다 보면 Tika를 통해 오피스 문서를 html/xhtml로 그리고 궁극적으로 또다른 라이브러리를 통해서 html을 pdf로 변환이 가능하다고 하는데 맞는건가요?
Tika를 직접 사용해보고 관련 예제들도 봤지만 Text를 추출하는 것만 보입니다. 그리고 Html을 pdf로 바꾸는 라이브러리는 몇개 있지만 (예를 들어 itext) 정확한 샘플 코드는 제가 찾지를 못했습니다.
제가 생각한 로직 (오피스 문서 -> html/xhtml -> pdf) 이게 맞나요?
2. 1번 질문에 관련된 질문입니다. 오픈 오피스에서 Tika를 사용하는걸 알아냈습니다. (당연한건가요 -,.-;; apache 제품군이니) 그렇다면 오픈 오피스도 Tika를 이용해서 오피스 문서를 html/xhtml로 바꾼뒤에 다시 pdf로 변환을 하는걸까요?
3. 오픈 오피스에서 문서를 열어서 화면에 렌더링을 하는 클래스/라이브러리가 어떤건지 혹시 아시나요?
4. 오픈 오피스로 MS 오피스 파일을 열면 (예를 들어 doc 파일이나 docx 파일) 문서가 다르게 보입니다. 줄 사이 간격이 틀리다던가 글씨의 크기 또는 글자 사이의 공백이 틀리게 나옵니다. (오픈 오피스에서 MS 오피스 파일에 대한 호환성이 100%이지 않은건 알고 있습니다.) Open Office Uno bridging을 이용해 컨버팅을 해도 결과물 pdf 파일은 원본 MS 오피스 파일을 MS 오피스 프로그램으로 열었을때와 다르게 보입니다. 그렇다면...제가 Tika를 직접 쓰지 않고 오픈 오피스 Uno bridging을 통해서 컨버팅을 하려고 한다면, 혹시 코드상에서 문서 스타일링을 바꿀 수 있는 방법이 있나요? Open Office SDK내의 DocumentConvert 예제를 참고해서 컨버팅 하는 java 클래스를 하나 만들었는데 그 예제를 그냥 문서를 읽어와서 바로 로컬에 pdf로 쓰기만 하는 예제이더군요. 그 과정 중간에 문서 스타일링을 바꿀 수 있는 방법이 있다면 최종 결과물을 조금 더 원본에 근접하게 할 수 있을것 같습니다.
흠..그간에 모은 정보가 머리속에서 뱅뱅 돌고 있는데, 그걸 정리해서 질문 하려니 여러가지 주제가 막 섞여버린 질문을 한것 같습니다. 양해부탁드립니다;;
여튼...혹시 위의 질문들에 대해서 조금이라도 알고 있는 지식이 있으신분들 지식을 나눠주시면 감사하겠습니다.
댓글 달기