PHPでPDF帳票を出力する方法
Illsutratorを使用してPDFのテンプレートを作成する
Illustratorを使用して帳票のテンプレートを作成する。
保存するときに保存のオプションで、「互換性のある形式」を「Acrobat 5(PDF1.4)」にして保存する。
tcpdf のインストール
https://github.com/tecnickcom/tcpdf
から zip をダウンロードするか clone して展開する。
フォントのインストール
http://coliss.com/articles/freebies/best-of-free-japanese-fonts-for-2016.html
好きなフォントをダウンロードしてきて、.tff のフォントファイルを、tcpdf を展開したところに出来る fonts フォルダにコピーする。
fonts フォルダにフォントキャッシュが書き込まれるので、ウェブサーバプログラムのアカウントで読み書きできるようにする。
FPDI のインストール
https://www.setasign.com/products/fpdi/downloads/
から FPDI のパッケージをダウンロードして、tcpdf とおなじところに展開しておく
#注意点
- tcpdf/fonts/フォルダにはPHP実行ユーザに書き込み権限が必要ですので、パーミッションを変更しておきましょう。
- 「ob_end_clean();」と言う一行を Output の直前に加える。
- 作成したPDFドキュメントをブラウザ経由でダウンロードさせる場合はOutputメソッドの2番目の引数に「D」を指定します。
#PDF出力方法
TCPDFには出力時のオプションがあり、Output()の第二引数に指定する値によって挙動が変わります。
I: ブラウザに出力する(既定)
D: ブラウザで(強制的に)ダウンロードする。
F: ローカルファイルとして保存する。
S: PDFドキュメントの内容を文字列として出力する。
#参考サイト
PHPでPDF帳票を出力する方法(TCPDF + FPDI) - Qiita
cron(クーロン)でphpを自動実行する
クーロンを編集する
crontabコマンドでクーロンを編集します。
# crontab -e
もしくは
# vi /etc/crontab
#書き方
毎日10時に「cron.php」を実行する場合、下記のように記載します。
0 10 * * * /usr/bin/php /var/www/html/cron/cron.php
実行する日時を指定して、実行するphpファイルのパスを絶対パスで指定します。
phpを実行するには「/usr/bin/php 」を書き、その後にファイル名を記載します。
サーバごとに書き方が違うかもしれないので、「/usr/bin/php」か「/usr/local/bin/php」で設定します。
#注意点
複数のphpファイルが、相対パスでincludeやrequire__onceとかされている場合、エラーで動かない。
#参考サイト
CAPTCHA(画像認証) の設置
CAPTCHA(画像認証) の設置方法
- securimageのサイトからダウンロードします。
- ダウンロードしたファイルを解凍し「securimage」フォルダを任意のディレクトリへ移動します。
- $_SESSION["securimage_code_disp"]["default"]が画像認証の正しい文字列
#参考サイト
PHPでフォーム送信時のCAPTCHA(画像認証) を簡単に設置できる「Securimage」の使い方とサンプル|MEMO|T-CREATOR とあるクリエイターのブログ