LAMPサーバで手っ取り早くPDFサーバ構築する方法 その2

先日のwkhtmltopdfを利用してPDFを作成する方法の続き

前回では、Webサーバに直接wkhtmltopdfを入れてPHPで動的に表示を行い、
ローカルのWebサイトをPHPのシステム関数を利用してPDF変換を行う方法を公開しました。

さっそくサーバに導入すると自分のマシンで変換したPDFとは異なるフォントでPDFが表示されるではありませんか。

これを修正して任意のフォントで出力する方法をまとめました。
サーバへフォントをインストールして、表示を行うHTMLの部分にフォントを指定したCSSを適応させる方法です。

詳しくは続きをどうぞ。

同じやり方なのにフォントが異なるそもそもの原因

原因:

  • wkhtmltopdfは実行したマシンからWebページをブラウザで見たのと同じ挙動

つまり、wkhtmltopdf自身がブラウザと同じ挙動をするので
フォントがインストールされていない場合デフォルトのフォントに置き換えてPDF出力しちゃう
という挙動をしているようです。

対処:

  • PDFを出力するサーバに利用したいフォントをインストールする
  • PDFに変換するviewの部分にフォントを指定したCSSを適応する

やり方:

システムでフォントを認識させる状態にする。OpenOfficeとかで利用できる状態にすればokだと思う。
最近のlinuxだと /usr/share/fonts に入れれば利用できるようになるらしい。
できない方は Linux フォント インストール とかで検索するといいです。

今回は無難にIPAフォントを導入します IPAフォント入手先

FedoraやらCentならyumとかで導入できるかも


$ yum -y install ipa-*font*

出力HTMLへCSS適応

# とりあえず全部に対してIPAゴシックフォントを適応
body {font-family: IPAPGothic!important;}
これでPDFを出力するスクリプトにアクセスすると任意のフォントで出力できるはず!!