PHP で PDF ドキュメント ジェネレーターを作成する方法
PHP の最大の利点の 1 つは、新しいテクノロジーのサポートが非常に簡単であることです。この言語の拡張性により、開発者は新しいモジュールを簡単に追加でき、世界中の技術グループのサポートと多くの拡張モジュールのサポートによって PHP が実現されています。は、最も多機能な Web プログラミング言語の 1 つになりました。現在利用可能な拡張モジュールを使用すると、開発者は IMAP および POP3 操作の実行、画像と Shockwave Flash アニメーションの動的生成、クレジット カードの検証の実行、機密データの暗号化と復号化、および XML 形式でのデータの解析を行うことができます。しかし、それだけではありません。PHP にバインドできる新しいモジュール、つまり開発者が PDF (Adobe Portable Document Format) 形式でファイルを動的に生成できるようにするモジュールが追加されました。これを見てみましょう。まず、PHP でこのモジュールを使用する方法を参照してください。
PHP で PDF 形式のドキュメントを操作できるようにするには、まず PDFLib 拡張ライブラリをシステムにインストールする必要があります (Lunix システムを使用している場合は、http://www.pdflib.com/pdflib/index からダウンロードできます)。 Windows システムを使用している場合は、コンパイルされた PDFLib ライブラリをダウンロードし、PHP 設定ファイル内の対応する行のコメントを削除するだけで済みます。
拡張子=php_pdf.dll
動的読み込みの場合は、次のコマンドを参照することもできます。
dl("php_pdf.dll");
さらに、PDF 形式を表示するには Adobe Acrobat PDF Reader が必要です。お持ちでない場合は、http://www.adobe.com/ から無料でダウンロードできます。
事前準備が完了したら、PDF ファイルを作成できます。簡単な例を次に示します。
// 新しい PDF ドキュメント ハンドルを作成します
$pdf = PDF_new();
//ファイルを開く
PDF_open_file($pdf, "PDFTest.pdf");
// 新しいページを開始します (A4)
PDF_begin_page($pdf, 595, 842);
// フォントオブジェクトを取得して使用します
$arial = PDF_findfont($pdf, "Arial", "ホスト", 1);
PDF_setfont($pdf, $arial, 10);
//テキストを出力する
PDF_show_xy($pdf, "これは PDF ドキュメントの試験です。優れたライブラリです。",50, 750);
PDF_show_xy($pdf, "よかったらぜひ挑戦してみてください!", 50, 730);
//終了ページ
PDF_end_page($pdf);
// ファイルを閉じて保存します
PDF_close($pdf);
?>
次に、それを PHP ファイルとして保存し、ブラウザで参照します。PHP は上記のコードを実行し、新しい PDF ファイルを生成して、指定された場所に保存します。
次に、PHP を使用して PDF ファイルを作成するには、次の 4 つの手順を実行します。 1. ドキュメントのフォントと色を登録します。 3. PDFLib が提供する関数を使用して、テキストまたはテキストを書き込みます。ファイルハンドルに画像を描画します。 4. ドキュメントを保存します。
まず、次の構文を使用して PDF ドキュメント ハンドルを作成します。
$pdf = PDF_new();
このタスクは PDF_new() 関数によって完了します。この関数は、後続のすべての操作で使用される PDF ドキュメントへのハンドルを返します。
次のステップは、PDF ファイルに名前を付けることです。これは PDF_open_file() 関数によって行われます。これには、パラメーターとして、以前に作成したファイル ハンドルとカスタム ファイル名が必要です。
PDF_open_file($pdf, "PDFTest.pdf");
ドキュメントを作成したら、PDF_begin_page() 関数を使用してドキュメントに新しいページを挿入できます。
PDF_begin_page($pdf, 595, 842);
次に、PDF_end_page() でページを終了します。
ここで、PDF_begin_page() 関数には他に 2 つのパラメータがあることに注意してください。それらはそれぞれページ サイズの幅と高さを表します (ポイント、1 ポイントは 1/72 インチに等しい)。ここでの強みは、PHP では A4 などのほとんどの標準ページ サイズも提供していることです。上記の例では A4 サイズを使用しています。
PDF_begin_page() 関数の呼び出しと PDF_end_page() 関数の間のコードは、テキスト、画像、幾何学図形などのコンテンツを PDF ドキュメントに書き込みます。この例では、テキスト行を書き込むだけで、最初にフォントを取得してから、テキストをドキュメントに書き込みます。 PDF_findfont() 関数と PDF_setfont() 関数を使用してフォントを選択および登録すると、非常に便利です。PDF_findfont() 関数は、フォントの名前、使用されるエンコーディング、およびフォントの名前を準備します。フォントを PDF ファイルに埋め込むかどうか。 PDF_findfont() 関数は、PDF_setfont() 関数で使用されるフォント オブジェクトを返します。
$arial = PDF_findfont($pdf, "Arial", "ホスト", 1);
PDF_setfont($pdf,$arial, 10);
フォントを設定したら、PDF_show_xy() 関数を使用して、ページ上の指定した場所に文字列を書き込むことができます。
PDF_show_xy($pdf, "これは PDF ドキュメントの試験です。優れたライブラリです。",50, 750);
PDF_show_xy($pdf, "よかったらぜひ挑戦してみてください!", 50, 730);
PDF_show_xy() 関数は、ページにコンテンツを書き込むために使用されます。最後の 2 つのパラメーターは、書き込まれる文字列の座標位置です。座標の原点 (0, 0) はドキュメントの左下隅にあることに注意してください。 。テキストが終了したら、PDF_end_page() でページを閉じることができます。もちろん、さらにページを書くこともできます。すべてのページが書き込まれた後、PDF_close() 関数を使用してドキュメントを閉じます。このとき、ドキュメントは PDF_open_file() 関数の呼び出し時に指定されたファイル名とパスに保存され、ドキュメント ハンドルは破棄されます。
PDFLib ライブラリではそれ以外のこともできます。前のファイルを例として、テキストの下に画像ファイルを追加してみましょう。
$image = PDF_open_image_file($pdf, "jpeg", "PDFImageTest.jpg");
PDF_place_image($pdf, $image, 50, 650, 0.25);
シンプルではないでしょうか? PDF_open_image_file() 関数は、グラフィック ファイルを開きます。 許容される画像タイプは、GIF、JPEG、TIFF、および PNG です。 この関数は、前の画像ハンドルを使用して PDF ドキュメントの中央に画像を挿入します。 。ここでの座標位置は、画像の左下隅を指します。最後のパラメータは、画像が実際のサイズで表示されることを意味し、0.5 は元のサイズの半分で表示されることを意味します。 。
PDF ドキュメント内に既存の画像を描画することに加えて、PDF モジュールは幾何学的図形を描画できる多くの機能も提供します。例: 直線、円、長方形などの幾何学模様。直線の描き方は次のとおりです。
$pdf = PDF_new();
PDF_open_file($pdf, "LineExam.pdf");
PDF_begin_page($pdf, 595, 842);
$arial = PDF_findfont($pdf, "Arial", "ホスト", 1);
PDF_setfont($pdf, $arial, 12);
//直線の色を設定します
PDF_setcolor($pdf, "ストローク", "rgb", 0, 0, 0);
// ロゴを左上隅に配置します
$image = PDF_open_image_file($pdf, "jpeg", "logo.jpg");
PDF_place_image($pdf, $image, 50, 785, 0.5);
//ロゴの下に直線を描きます
PDF_moveto($pdf, 20, 780);
PDF_lineto($pdf, 575, 780);
PDF_ストローク($pdf);
// ページの下部に別の直線を描画します
PDF_moveto($pdf, 20,50);
PDF_lineto($pdf, 575, 50);
PDF_ストローク($pdf);
// テキストを出力します
PDF_show_xy($pdf, "Meng's Corporation", 200, 35);
PDF_end_page($pdf);
PDF_close($pdf);
?>
上の例からわかるように、直線を描画するには、PDF_moveto()、PDF_lineto()、および PDF_ストローク() の 3 つの関数のみが必要です。上記の例では、まず PDF_moveto($pdf, 20, 780) 関数を使用してカーソルを座標 (20, 780) に移動し、次に PDF_lineto($pdf, 575, 780) 関数を使用して座標を定義します。直線上の別の点 (575, 780)、最後に PDF_ストローク($pdf) を使用して線を描きます。カラーを設定する関数 PDF_setcolor($pdf, "ストローク", "rgb", 0, 0, 0) には、いくつかのパラメーターがあります。カラー塗りつぶしモードには、ストローク、塗りつぶし、およびその両方の 3 つのオプションがあります。 CMYK。配色の色の値。 PDF_setcolor() 関数で使用される値は色のパーセンテージ、つまり色の明るさであることに注意してください。たとえば、赤 (RGB: 255、0、 0) の場合は、次のように記述できます: PDF_setcolor ($pdf, "ストローク", "rgb", 1, 0, 0)。黄色に設定したい場合は、これを実行できます: PDF_setcolor($pdf, "ストローク", "rgb"、1、1、0)。
塗りつぶされた四角形と円を描画するには、次の方法を使用します。
//塗りつぶしの色を設定する
PDF_setcolor($pdf, "fill", "rgb", 1, 1, 0);
//枠線の色を設定します
PDF_setcolor($pdf, "ストローク", "rgb", 0, 0, 0);
// 長方形を描画します。次の 4 つのパラメータは、左下隅の座標 X、Y、幅、高さです。
PDF_rect($pdf, 50, 500, 200, 300);
PDF_fill_ストローク($pdf);
PDF_setcolor($pdf, "fill", "rgb", 0, 1, 0);
PDF_setcolor($pdf, "ストローク", "rgb", 0, 0, 1);
//円を描きます。パラメータは円の中心座標と半径です。
PDF_circle($pdf, 400, 600, 100)
さらに、PDFLib はドキュメントの概要情報を書き込むための関数も提供します。これらの関数は PDF_set_info_*() で始まり、この情報にはドキュメントの作成者、タイトル、内容、件名などが含まれます。よく使用される関数をいくつか示します。
PDF_set_info_author($pdf, "net_lover");
PDF_set_info_creator($pdf, "孟賢輝");
PDF_set_info_title($pdf, "PHP 試験");
PDF_set_info_subject($pdf, "PHP");
PDF_set_info_keyWords($pdf, "PHP PDF PDFLib");
このような文書をAcrobat Readerで開くと、メニューの「ファイル」→「文書のプロパティ」→「概要」に上に書かれた情報が表示されます。
ここまでは言っておきましたが、PDFLib を使用して PDF ドキュメントを作成する方法については、誰もが基本的に理解していると思います。以下では、実際の例を取り上げて、それが私たちの仕事にどのように役立つかを見ていきます。この例では、提供されたデータに基づいて円グラフを生成します。まず、データ入力フォームを作成し、円グラフの各部分のサイズを入力します。ファイルは次のとおりです。
<表のセルスペース="5" セルパディング="5">