2016/05/23

phpexcelとlibreofficeのcuiを使ってPDFを作成する

かなりphpexcelの恩恵を受けているが、やはりpdfに加工したい事がある。
guiでせっせと作るのも良いのだが、
ボタン一つで作成させたい。

そこで、エクセルをpdfに変換するものをいろいろ探したところ、
libreofficeのCUIを使うのが一番崩れないようだ。

早速だが、CUIの環境を構築

#yum install libreoffice libreoffice-langpack-ja 

早速コマンドを投げてみる。

libreoffice --nologo --nofirststartwizard --convert-to pdf /var/www/html/pdf/000001.xlsx

エラーが返ってきた。

/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)


https://help.libreoffice.org/Common/Starting_the_Software_With_Parameters/ja
調べてみると、

オプションで  --headless を付けないと、ユーザーインタフェースが動いてしまい、NGらしい。

そこで、追加でオプションを実装。

#yum install libreoffice-headless 


libreoffice --headless --nologo --nofirststartwizard --convert-to pdf /var/www/html/excel/pdf/00001.xlsx
convert /var/www/html/excel/pdf/00001.xlsx -> /home/<>/00001.pdf using calc_pdf_Export


変換できた。

線種や文字化けはなさそう。

サイズが大きいと、ページを跨いでしまうようなので、余白の設定等で、そこをなんとかできれば、
十分使えそう。

0 件のコメント:

コメントを投稿