制作 小林

ブラウザ上でPDFを作成する方法【第02回】


ko36_main

梅雨に入り雨だったり晴れだったりころころ天気の変わる季節ですね、洗濯物が生乾きしないよう機能はコインランドリーで乾燥機かけたりしていました。

普段の生活には不便な雨ですが、今年は東京でも水不足が懸念されていますからもうちょっと頑張って振ってもらいたいところですね。

さて今回は、だいぶ間が空いてしまいましたが前回に引き続きフォームで入力した項目をPDFに反映させる方法を試してみたいと思います。

前の記事はこちらブラウザ上でPDFを作成する方法【第01回】

フォームの設定

「index.php」を用意し下記のようにフォームを作成

[html]
<form method="POST" action="check.php">
<p>名前:<input type="text" name="name" size="30"></p>
<p><input type="submit" name="submit" value="確認画面"></p>
</form>
[/html]

1行目 「action="check.php"」で情報を渡す場所を指定
2行目 作成したいフォームを設置
3行目 チェックフォームのボタン設置

次に確認画面を表示させたいので「check.php」を用意し下記のように記述

[php]
<?php $name = $_POST["name"]; ?>
<form method="POST" action="create_pdf.php">
<p>名前:< ?php echo $name; ?></p>
<p><input type="submit" name="submit" value="PDF出力" formtarget="_blank"></p>
<input type="hidden" name="name" value="< ?php echo $name; ?>">
</form>
[/php]

1行目 PHPで前のページの情報を取得
2行目 「action="create_pdf.php"」で情報を渡す場所を指定
3行目 取得した情報を表示
4行目 PDF出力ボタン
5行目 「type="hidden"」で非表示にし、次に渡す情報を生成

PDFを出力させる

「create_pdf.php」を作成し下記のように記述

[php]
<?php

date_default_timezone_set(‘Asia/Tokyo’);

require_once(‘./tcpdf/tcpdf.php’);
require_once(‘./fpdi/fpdi.php’);

$name = $_POST["name"];

$pdf =& new FPDI();
//ページの追加
$pdf->AddPage();
//テンプレートの読み込み
$pdf->setSourceFile(‘template.pdf’);
//テンプレートのページ指定
$tplIdx = $pdf->importPage(1);
$pdf->useTemplate($tplIdx);
//フォントの設定
$pdf->SetFont(‘kozgopromedium’, ”, 12);
//出力するデータ
$pdf->MultiCell(0, 0, "$name", 0, ‘J’, 0, 1, 140, 72.5);
//アウトプット時のファイル名
$pdf->Output(‘new.pdf’, ‘I’);
?>
[/php]

前回とほぼ同じ内容ですが、「$name = $_POST[“name”];」で確認画面で「hidden」にしていた情報を取得、「//出力するデータ」に「$name」と指定し表示させる

あとXAMPPでは問題なかったのですがサーバにあげたらtimezoneエラーが出たので「date_default_timezone_set(‘Asia/Tokyo’);」を追加

デモページ

※フォームに入力した内容がPDFの「担当者」部分に反映されます。

PHPで演算を使えばフォームで入力した数値同士で計算して消費税計算、なんてこともできるので使い方次第でいろいろできそうですね。

この記事についてまた別の使い方を思いついたら書くかも知れませんが一先ずここまで、おつかれさまでした。


PAGE TOP

CONTACT

サービスについてのご相談やご質問など、
お気軽にお問い合わせ下さい。