Java에서 Hwp를 Image로 변환하기 1부 (Java + Python)

주의

이 문건은 과거 Hexo 블로그 (2019-01-22) 에서 이동된 문서입니다.

시간이 지남에 따라 최신 기술과 다를 수 있으니 주의 바랍니다.



Hwp 파일을 이미지로 변환?

회사를 이직한 뒤에 언어가 Python-Django에서 다시 Java-Spring으로 변하였다.
사실 다시 Java측으로 와도 가끔 집에서 토이 프로젝트나 그런 것을 할 때 Python을 애용한다.

무튼 이번 회사에서는 기존의 레거시 프로젝트의 기능 중 일부를 신규 서버에서 구현하기로 하고, 신규 서버를 개발하게 되었다.
그 레거시의 기능 중 일부를 구현하게 되었는데, 제목에도 나와있는 것처럼 hwp(한글)이미지로 변환하는 기능이 있었다.

기존에는 윈도우 프로그램에서 변환 처리를 진행하였는데 이제 이 기능을 서버단에서 처리하게 되었다.
혹시 결론을 좀 급하게 원하는 분들도 있을 거 같아서 미리 요약을 드리자면..


Java에서 바로 Hwp to Image를 처리하는 것은 불가능

하지만 몇 가지 방법을 통해서 구현은 가능하다.

이제 요약을 좀 풀어서… 포스팅을 하기까지 삽질 및 도달 과정을 작성해보려 한다.
1부에서는 어떤 형식으로 진행했는지를 포스팅하고, 2부에서 실질적으로 코드 적용 부분을 설명할 것이다.


진행 흐름

아래부터는 시도를 하면서 진행한 내역을 흐름 순으로 정리하였다.

1. Hwp to Image (Java) (시도-실패)

  • 애석하게도 바로 변환을 해주는 라이브러리나 툴은 찾지 못하였다.
  • 그래서 HWP to PDF (Java) 를 찾아보았다.

2. Hwp to PDF (Java) (시도-실패)

3. HWP to XHTML (Python) (가능성 확보)

  • 결국 Python 라이브러리 중에 pyhwp 라는 것을 찾음
  • 이것으로 HWP -> XHTML로 변환에는 성공(HTML이 아니다.) (한글 안에 이미지와 한글 글자가 온전히 변함도 확인)
  • Pyhwp 문서

4. XHTML to Image (WKHtmlToPDF tool의 기능) (60% 성공)

  • WKHtmlToPdf tool 기능 중에 WKHtmlToImage를 이용하여 XHtml to Image 시도
  • 이미지로 변환은 잘 되지만 각 페이지 별로 처리는 안되었다. -> 이미지 한장으로 처리됨 (통으로 처리)
  • 그래서 결국 WKHtmlToPdf를 통해 PDF 변환 후 Image 처리를 진행하는 것을 목표로 진행

5. XHtml to Pdf (WKHtmlToPDF) (80% 성공)

  • WKHtmlToPdf를 통해서 쉽게 처리
  • 이거를 프로세스로 처리 가능하지만…자바에서도 사용이 가능한 버전을 찾음
  • 물론 현 시스템에 WKHtmlToPdf가 설치되어 있어야 한다.

6. PDF to Image (Java) (100% 성공)

  • 제일 쉬웠다.
  • 이 부분까지 진행하여 결국 Hwp to Image 기능을 완성하였다.
  • 방법은 인터넷에 많이 널려 있다.

그래서 정리하자면?

사실 깔끔하게 Java에서 바로 변환이 되면 좋겠지만…
시간이 그렇게 많지 않았고,
약간의 성능은 희생을 해도 기능 구현이 완전하게 되는 것을 목표로 하였기에 어찌보면 성공했다고 볼 수 있겠다. (몹시 주관적)

나머지는 2부 포스팅에서 다룰 예정이다.
또한 각 진행단계에 대한 과정은 아래의 포스팅 리스트를 참고하면 될 듯 하다.


Written by@MHLab
로또는 흑우집합소 🎲
와인관리, 시음노트, 셀러관리는 마와셀 🥂

🫥 My Service|  📜 Contact|  💻 GitHub