LibreOffice 이용하여 pdf, ppt to image Converter 만들기

munilive
munilive

PDF, PPT 파일을 PNG나 JPEG 파일로 얻기 위하여 컨버팅 프로그램을 찾는 도중 unoconv를 통하여 뽑아낼 수 있는 것을 알아내고 Github에 나와 있는 문서를 제대로 읽지도 않고 바로 삽질을 한 결과 겨우 성공하여 세팅 방법을 정리해본다.

OS는 CentOS 7 버전을 이용하였다.

먼저 unoconv를 사용하기 위해서는 LibreOffice 나 OpenOffice 가 필요하다. 4.1 이상 버전을 사용하여야 x server 없이 콘솔에서만 컨버팅이 가능하게 할 수 있다.

  1. LibreOffice 를 yum 으로 설치

    yum install libreoffice
  2. unoconv 를 yum 으로 설치

    yum install unconv
  3. libreoffice-headless를 yum 으로 설치

    yum install libreoffice-headless
    • 이놈 설치가 중요하다 LibreOffice 패키지 설치하면서 같이 설치된 줄 알고 무시했다가 엄한대서 삽질하고 있었다.
      참고로 설치하지 않고 실행하면 아래와 같은 에러를 볼 수 있다.
    /usr/lib64/libreoffice/program/soffice.bin X11 error: Can't open display:
    Set DISPLAY environment variable, use -display option
    or check permissions of your X-Server
    (See "man X" resp. "man xhost" for details)

여기 까지 하면 콘솔창에서 바로 컨버팅이 가능하다.

unoconv –listener &
unoconv -f png test1.pptx

이렇게 입력 하면 결과물이 나온다.

추가 적으로 서버가 실행되면 바로 unoconv –listener & 를 실행해서 바로 사용가능 하도록 하기 위한 스크립트를 추가 한다.

/etc/init.d/ 폴더에 unoconvd 파일을 생성하고 아래 코드를 입력한다.

### BEGIN INIT INFO
# Provides: unoconvd
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 5
# Default-Stop:
# Description: unoconvd – Converting documents to PDF by unoconv
### END INIT INFO
MYPID=$(pidof /usr/lib64/libreoffice/program/soffice.bin)
case "$1" in
status)
if [ `ps ax | grep "/usr/lib64/libreoffice/program/soffice.bin" | grep "port=2002" | wc -l` -gt 0 ]; then
echo "Unoconv listener active. pid=$MYPID"
else
echo "Unoconv listener inactive"
fi
;;
start)
if [ `ps ax | grep "/usr/lib64/libreoffice/program/soffice.bin" | grep "port=2002" | wc -l` -gt 0 ]; then
echo "Unoconv listener already started."
else
/usr/bin/unoconv --listener &
echo "Unoconv listener started. pid=$MYPID"
fi
;;
stop)
killall soffice.bin
;;
restart)
killall soffice.bin
sleep 1
/usr/bin/unoconv --listener &
sleep 1
MYPID=$(pidof /usr/lib64/libreoffice/program/soffice.bin)
echo "Unoconv listener re-started. pid=$MYPID"
;;
esac

생성된 파일의 실행 권한 및 소유주를 변경한다. (만들때 root 로 만들었으면 chown 은 안해도됨)

chmod 755 /etc/init.d/unoconvd
chown root.root /etc/init.d/unoconvd

서비스로 등록은 아래 실행

chkconfig –add /etc/init.d/unoconvd

한글 pdf 파일의 경우 한글이 깨져서 저장되는 경우가 있다 이럴 경우에는 한글 폰트를 추가 해주면 된다.

yum install baekmuk-ttf-*
roboot

한글 폰트 설치후 반드시 reboot 하여서 폰트를 적용시켜야 한다.


위 내용을 정리 하기 위하여 무수히 많은 사이트를 검색해서 확인 하였지만 그중에 결정적 도움이 되었던 사이트만 아래 링크 한다.

munilive

munilive

Backend Application Developer

Share

Comments

Related Posts

ubuntu에서 cron이 정상 작동하지 않을 경우

ubuntu에서 cron이 정상 작동하지 않을 경우

우분투에서 crontab 으로 shell script 를 등록하였는데 정상작동 하지 않아 그 원인을 찾기 위해 알아본 방법을 정리 한다. 우분투에서는 폴더에 cron 로그가 생기…

munilive munilive ·
내가 사용하고 있는 Gnome Shell extensions

내가 사용하고 있는 Gnome Shell extensions

현재 내가 사용하고 있는 Gnome Shell Extensions 이다. Ubuntu 14.04 Gnome LTS 사용중이고 기본 Extensions 과 내가 추가로 설치해서…

munilive munilive ·
Gnome Shell extensions – Touchpad Indicator

Gnome Shell extensions – Touchpad Indicator

그놈쉘의 확장 기능 중 하나인 Touchpad Indicator! 이게 무엇이냐 하면 상단 바에 터치패드가 켜져 있는지 꺼져 있는지 아이콘으로 알려주는 기능이다. 해당 아이콘을…

munilive munilive ·