HTML TO PDF

시작하면서

Excel을 PDF로 저장하기.

저를 하루 종일 괴롭힌 그것 "Excel을 PDF로 바꿔서 블록체인에 저장"이 목표였습니다.
구글검색 결과 바로 바꾸는건 쉽지 않다고 생각하고 HTML을 바꾼뒤에 다시 PDF로 써야겠다는 생각을 하게 됩니다. 그러나 많은 사람들이 겪은 문제를 우리도 겪게되죠.
  • 한글은 변환이 안됨(폰트때문인듯)
  • html을 xhtml로 전환이 잘 안됨
  • 글자는 되는데 라인은 변환이 안됨

Phantomjs

앗~ 이거 node js네.. 아 귀찮아 서버에 node깔고 어쩌고 저꺼고 또 통신할려면 rest api 사용해야 하고 .....

하지만 그 후로도 마땅한 방법을 찾지 못해 구글 신에게 다시 물어물어 Phantomjs를 홈페이지 를 갑니다. 

어~ download 이런 이미 OS별로 실행파일이 다 만들어져있었습니다.

자 그럼 아주 간단한 사용법만 알아보겠습니다.

PDF 2 HTML Sample


구글 검색 결과 아주 간단히 변경이 가능합니다.
검색 결과 페이지 : https://coderwall.com/p/5vmo1g/use-phantomjs-to-create-pdfs-from-html
요렇게만 하면 끝이라네요

phantomjs rasterize.js 'http://en.wikipedia.org/w/index.php?title=Jakarta&printable=yes' jakarta.pdf

그래서 테스트

phantomjs rasterize.js "http://en.wikipedia.org/w/index.php?title=Jakarta&printable=yes" jakarta.pdf
Can't open 'rasterize.js'
Can't open 'rasterize.js'
실패



rasterize.js 파일은 받은 파일에 examples 폴더에 있습니다.

이제 다시 아래와 같이 우리가 만든 HTML 파일 변경을 시도합니다.

phantomjs ..\examples\rasterize.js W:\sample.html W:\sample5.pdf
Unable to load the address!
Unable to load the address!
실패
아주 잠시 고민 브라우저 창의 파일 주소를 생각해냈어요

phantomjs ..\examples\rasterize.js file:///W:/sample.html W:\sample5.pdf
넘나 중요한거 "file:///" 여기보면 "/" 가 3개라는거 꼭 기억하세요




성공

이제 코드에 적용해 보면 되겠네요~~




추가


리눅스에서 사용 방법 입니다.

우선적으로 설치후에 사용하려 하면 폰트관련 에러가 발생합니다.
( phantomjs: error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such file or directory )

아래에서 2~3번을 실행하면 관련 에러는 발생하지 않지만 한글이 깨지는 이슈가 있습니다.

한글 폰트깨짐을 해결하기 위해 4~10번의 과정을 해주면 한글도 잘 나오는걸 확인할 수 있습니다.
  1. tar -xvf phantomjs-2.1.1-linux-x86_64.tar.bz2
  2. yum install libfontconfig.so.1
  3. yum install fontconfig
  4. yum install fonts-korean
  5. yum install cjkuni-fonts-common cjkuni-ukai-fonts cjkuni-uming-fonts
  6. yum install libXext libXrender xorg-x11-fonts-Type1 xorg-x11-fonts-75dpi
  7. fc-cache -f -v
  8. wget http://cdn.naver.com/naver/NanumFont/fontfiles/NanumFont_TTF_ALL.zip
  9. mkdir /usr/share/fonts/nanumfont
  10. unzip NanumFont_TTF_ALL.zip -d /usr/share/fonts/nanumfont
  11. rm -f /usr/share/fonts/nanumfont/NanumFont_TTF_ALL.zip
  12. rm -f /usr/share/fonts/nanumfont/NanumBrush.ttf
  13. rm -f /usr/share/fonts/nanumfont/NanumPen.ttf


블로그 이미지

B급 감성

,