ホームページ >バックエンド開発 >PHPチュートリアル >php を使用して PDF ドキュメントを生成する_PHP チュートリアル
PHP を使用して PDF ドキュメントを生成する
PDFLIB ライブラリにバンドルされている PHP は、最適な Web パブリッシング プラットフォームである可能性があります。典型的な使用例:
要件パンフレット
電子商取引請求書
このガイドを通じて、PHP チュートリアル 4 の PDF 拡張機能を使用して PDF ドキュメントを作成する方法を学ぶことができます。
mysql チュートリアル データを使用した PDF ドキュメントの作成にも重点を置いています。
内容の概要
PDF をサポートする PDFLib 3.0.1 および PHP4.01pl2 をインストールします (注釈: 最新の php4.03pl1 をインストールできます)
PDF ドキュメントを抽出します
(PHP の設定にある程度の経験があることを前提としています)
PDF をサポートする PDFLib と PHP をインストールします。
要件:
PHP 4.02+ http://php.net からダウンロード
PDFLib 3.0.1 http://www.pdflib.com からダウンロード
これは PDFLib3.0.1 と php4 の作成方法に関する小さなチュートリアルです一緒に働きましょう 秘密のレシピ: (外国人はとてもユーモラスです ^_^)
PDFLib v 3.0.1 をサポートするには、ext/pdf/pdf.c のパッチを http://www.php.net から直接ダウンロードします。
PDFLib3 をダウンロードします。 0.1 はここから http://www.pdflib.com
該当するパッチはここから見つけることができます http://www.pdflib.com/pdflib/patches.html
PDFLib を設定、作成、インストールします
#./configure --enabled -shared-pdflib
#make
#make install
PDFLib が /usr/local/lib にインストールされます
PHP を設定します
#./configure --with-apxs=/usr/bin/apxs
-- with -gd --with-pdflib=/usr/local --with-mysql=/usr/local
--with-config-file-path=/etc/httpd --with-zlib-dir=/usr
- - with-ttf=/usr/local/include
--with-jpeg-dir=/usr --with-tiff-dir=/usr
--with-system-regex=yes --enable-debug=no
#make
#make install
システム ライブラリを更新する
/usr/local/lib を /etc/ld.so.conf (ファイル) に挿入する
#/sbin/ldconfig
テストして検証する
今すぐApache を再起動する必要があります
#apachectl restart
pdf Clock.php を httpd ディレクトリ (つまり、Web ディレクトリ) にコピーします...テスト...すべてが正常です。
重要な情報
PHPLIb をフォントで動作させるには、PDFLib マニュアルの UPR セクションに注意する必要があります。
PDFLib でフォントを使用する最も簡単な方法は、PDFlib tar パッケージ内の標準 UPR 記述ファイル (fonts/pdflib.upr) を作業ディレクトリにコピーすることです。
PDF ドキュメントを抽出する
これで、Enclave のような PDF ドキュメントを生成するための条件が準備できました!
この小さな例では、FLYStore 会社の要件パンフレットを生成します。もちろん、カタログ データベース チュートリアルからデータを抽出します。
データベースを準備します
少なくともデータベースの経験があると思いますが、データベースの作成方法とそこにテーブルを挿入する方法を知っておいてほしいと思います。
テーブルカタログの作成:
create table category(
id smallint(8) unsigned DEFAULT '0' NOT NULL,
item varchar(100) DEFAULT '' NOT NULL,
description tinytext,
img_data longblob,
imgname varchar(60) ) ),
imgsize varchar(60),
imgtype varchar(60),
price smallint(8) unsigned DEFAULT '0' NOT NULL,
PRIMARY KEY (id),
KEY item (item(20))
);
MIME ヘッダー情報の送信
コンテンツが正しく表示されるようにするには、正しいヘッダー情報をユーザーのブラウザに送信する必要があります。
PHP では、header 関数を使用してこれを実現できます。以下のコードは、正しい MIME タイプをブラウザに送信します。
header( "Content-type: application/pdf" );
header( "Content-Disposition:attachment; filename=modulo.pdf" );
header( "Content-Description: PHP3 生成データ" );
重要な情報
知っておく必要があるのは、ヘッダー情報を送信する前は何も出力できないということです。よくある間違いは、ファイルの先頭にスペースがあることです。
mysql から数値を取得する
ここでは、簡単なコード スニペットを使用してディレクトリ データからデータを抽出します。
$link = mysql_connect ("127.0.0.1", "flyadm", "flystore")
or die ("接続できませんでした")
mysql_select_db ("flystore", $link);
$result = mysql_query ("SELECT * FROM カタログ", $link)
or die ("無効なクエリ");
....
....
mysql_close ( $link);
?>
PDF ファイルを生成する
PDF ドキュメントを生成するには、次の手順を実行する必要があります:
PDF ストリームを開き、ハンドルに関連付けます。 $pdf = PDF_open();
(オプション) 著者、タイトル、件名などのドキュメント情報を設定します
(オプション) 著者、タイトル、件名などのドキュメント情報を設定します
新しいページを開始します (PDF ファイルは異なるレイアウトにより、縦向き、前景などの異なるページが生成されます...):
PDF_begin_page($pdf, 595, 842)
(オプション) ハイパーリンクを設定します:
PDF_add_outline($pdf, "Item ".$data [1 ]);フォントの種類、サイズを選択します (pdf_set_font($pdf, "Helvetica-Bold" , 20, winansi);) プレゼンテーション モード
X.y 位置にテキストを挿入します:
PDF_show_xy($pdf, "Item : " .$data[1], 100, 700);
または X.Y 位置に画像を挿入します:
pdf_place_image($pdf, $im, 100, 300, 3);
テキスト バッファーを更新して PDF ストリームを閉じます。
PDF 座標系
PDF ページの一部で文字列や画像を見つけるために行う必要があること、
PDF ページの多くの場所で文字列や画像を見つけ、帝国単位を DTP ポイント値に変換する必要があります
。 PDFLIB マニュアルの 45 ページには次のように書かれています:
"... デフォルトの座標系の原点はページの左下隅にあり、単位として DTP ポイントを使用します:
1 pt = 1 インチ /72 = 25.4 mm /72 = 0.3528 mm
"
PDF ファイルを生成するコード スニペットは次のとおりです:
$pdf = PDF_open();
pdf_set_info_author($pdf, "Luca Perugini");
PDF_set_info_title($pdf, "FlyStore のパンフレット");
pdf_set_info_creator($pdf, "著者を見る");
PDF_begin_page($pdf, 595, 842); pdf, "アイテム ".$data [1]);
pdf_set_font($pdf, "Helvetica-Bold" , 20, winansi);
pdf_show_xy($pdf, "FlyStore カタログ 2000"); ,50,780);
PDF_show_xy( $pdf, "項目 : " .$data[1], 100, 700);
PDF_show_xy($pdf, "説明 : " .$data[2], 100, 620);
$im = PDF_open_jpeg($ pdf, "pass4_sml.jpg");
pdf_close_image ($im);
PDF_end_page ($pdf);
PDF_close($pdf)?>
http://www.bkjia.com/PHPjc/444931.html
www.bkjia.com