PHPめも

PhpSpreadsheetでExcelファイルをゴニョゴニョし、それをPDFファイルへ変換して出力したい。
ゴニョゴニョは PHPでExcelファイルを読み込む を参考。

フリーソフトのLibreOffice(リブレオフィス)を使用すると簡単に実現できそう。

LibreOfficeのインストール

大量に色々入ります。

# yum install libreoffice

フォントの設置

そのまま使用すると日本語が文字化けするのでIPAexフォントを利用させていただきます。
https://ipafont.ipa.go.jp/

IPAexfont00401.zip をダウンロードし、ipaexg.ttf, ipaexm.ttfの2ファイルを以下へ設置します。
/usr/share/fonts/japanese/TrueType/

変換

outdirで指定した場所へ Book1.pdfとして出力されます。

$ libreoffice --headless --nologo --nofirststartwizard --convert-to pdf --outdir ./ Book1.xlsx

PHPから実行する場合はHOMEディレクトリを指定してやります。

exec('export HOME=/tmp;libreoffice --headless --nologo --nofirststartwizard --convert-to pdf --outdir ./ Book1.xlsx');

1ページにうまく納まらない場合は、印刷の拡大縮小の設定を見直すと良いかも。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS