PHP で PHP ファイルを出力するために、PDFLib というライブラリが用意されている。 幸い、PHP 4.4 以降ではフリー版が組み込まれている。今回は、これを使うことにする。
サンプル・プログラム
サンプル・プログラムは、フォームから入力された1行のテキストを PDF に出力するという簡単なものである。
0001: <?php
0002: /** pdfsamp.php
0003: * PDFLibのサンプル
0004: *
0005: * @copyright (c)studio pahoo
0006: * @author パパぱふぅ
0007: * @version 1.0 2007/07/15
0008: */
0009: mb_internal_encoding("SJIS");
0010: mb_regex_encoding("SJIS");
0011: $myself = basename($_SERVER["SCRIPT_NAME"]);
0012:
0013: /**
0014: * PDF出力する
0015: * @param string $str 出力文字列
0016: * @return bool TRUE=成功/FALSE=失敗
0017: */
0018: function put_pdf($str) {
0019: //PDF出力準備
0020: $pdf = pdf_new();
0021: pdf_open_file($pdf);
0022: $font = pdf_findfont($pdf, 'HeiseiKakuGo-W5', '90ms-RKSJ-H', 0); //フォント指定
0023:
0024: //PDFページを作成する
0025: pdf_begin_page($pdf, 595, 842); //A4判縦
0026: pdf_setfont($pdf, $font, 14); //フォントサイズ 14pt
0027: pdf_set_text_pos($pdf, 40, 792); //描画開始位置指定
0028: pdf_continue_text($pdf, $str);
0029: pdf_end_page($pdf);
0030:
0031: //PDFファイルを閉じる
0032: if (pdf_close($pdf) == FALSE) return FALSE;
0033: $buf = pdf_get_buffer($pdf); //生成されたPDFデータを取得
0034:
0035: //PDF出力処理
0036: $pdf_length = strlen($buf);
0037: $pdf_name = "keisan.pdf";
0038: header("Content-type: application/pdf");
0039: header("Content-Length:" . $pdf_length);
0040: header("Content-Disposition: inline; filename=" . $pdf_name);
0041: echo $buf;
0042:
0043: pdf_delete($pdf);
0044:
0045: return TRUE;
0046: }
0047:
0048: // メイン・プログラム =======================================================
0049: if (isset($_GET["sour"])) {
0050: put_pdf($_GET["sour"]);
0051: } else {
0052:
0053: // 表示処理 =================================================================
0054: echo <<< EOF
0055: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
0056: "http://www.w3.org/TR/html4/loose.dtd">
0057: <html lang="ja">
0058: <head>
0059: <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
0060: <title>PDF出力サンプル</title>
0061: <meta name="ROBOTS" content="NOINDEX,NOFOLLOW" />
0062: </head>
0063: <body>
0064: <h1>■PDF出力サンプル</h1>
0065: <form name="myForm" method="get" enctype="multipart/form-data" action="$myself">
0066: 文字列
0067: <input type="text" name="sour" size="60" />
0068: <input type="submit"value="作成" />
0069: <input type="reset" value="リセット" />
0070: <hr />
0071: <b>【使い方】</b>
0072: <ol>
0073: <li>[文字列]に出力したいテキストを入力してください。</li>
0074: <li>[作成]ボタンを押してください。</li>
0075: <li>PDFファイルが出力されます。</li>
0076: <li>[リセット]ボタンを押すと、表示がクリアされます。</li>
0077: </ol>
0078: </form>
0079: </body>
0080: </html>
0081: EOF;
0082:
0083: }
0084: ?>
| 2007年07月15日更新 | ||
| <<前へ | <目次> | 次へ>> |
| 戻る | 【関連ページ】 | |