PHPを使ったシステム上でエクセルをPDFへ変換する場合には、「LibreOffice」を利用するのが一番簡単です。
そこで、今回は、「LibreOffice」を使った変換方法についてまとめておきます。
コンテンツ
LibreOfficeを準備する
↓
これでエクセルをPDFへ変換する環境が整ったので、
実際にコマンドを実行して変換できるかテストしてみます。
例えば、
/var/www/excel/直下のexample.xlsx
を
PDFに変換して、
/var/www/pdf/配下に出力したい場合には、以下を実行します。
次は、PHP側の設定を説明します。
PHPのコード
PHPのスクリプ上でコマンドを実行させる場合には、exec()関数を使います。
例えば、以下のようなコードになります。
<?php
$command = "libreoffice --headless --nologo --nofirststartwizard --convert-to pdf --outdir /var/www/pdf /var/www/excel/example.xlsx";
exec($command, $out, $ret);
?>
ただ、これだと、PHP関数から実行した場合に「Warning: failed to read path from javaldx」というエラーが出る場合があります。
その場合には、
「export HOME=/tmp」のコマンドも追加します。
PHPコードは以下になります。
<?php
$command = "export HOME=/tmp && libreoffice --headless --nologo --nofirststartwizard --convert-to pdf --outdir /var/www/pdf /var/www/excel/example.xlsx";
exec($command, $out, $ret);
?>
基本的なコードはこれだけです。
エクセルをPDFへ変換する方法は他にもありますが、LibreOfficeを使った方法が一番簡単だと思います。
あと、変換後に作成されるPDFも綺麗です!
この記事へのコメントはありません。