PHP+LibreOfficeでEXCELファイルをPDFファイルを作成する

CUI環境でLibreOfficeを利用して、EXCELファイルをPDFファイルを作成する

PHPを利用している環境でEXCELファイルをPDFファイルに変換する必要な開発案件がありました。
GUI環境をEXCELからPDFファイルを変換するならOffice系ソフトを利用すれば簡単にできますが、PHPを利用してCUI環境でしようするので、「LibreOffice」を利用してコマンドラインで変換します

【環境】

  • CentOS 7.7
  • LibreOffice 6.4.4

LibreOfficeをインストール

CUI環境でPDF変換するのでGUI環境のX-Windowは不要です。ファイルのダウンロードのURLはダウンロードされる時期によってバージョンが異なりますので使用環境で変更して下さい

シンボリックリンク作成

実行ファイルは、「/opt/libreoffice6.4/program/soffice」にインストールされます。このままだとバージョンが異なるごとにパスが変わるので「/usr/bin/soffice」にシンボリックリンク作成します

日本語フォントをインストール

PDF変換時に日本語の文字化けを防ぐ為、日本語フォントをインストールします

PHPでEXCELファイルからPDF変換

EXCELファイルをPDF変換するには、以下のようなPHPで変換できます

LibreOfficeはPDF変換時には、実行ユーザのホームディレクトリにテンポラリファイルを作成します。WEB環境でPHPを使用する場合は、利用者はapacheやnginxのホームディレクトリが無いユーザーで実行されるので、環境変数でHOME設定をおこない「/tmp」等の指定する必要があります

 

 

スポンサーリンク