PDFlib使用实例

サンプルライブラリ

<?php
/* $Id: hello.php,v 1.00 2009/07/24 tm Exp $
 *
 * PDFlibを使用して、PHPでEUC-JPのPDFファイルを生成する方法です。
 * このソースコードではEUC-JPのファイルを前提としています。
 *
 
*/

// CMap ファイルの配置ディレクトリを指定 
define('PATH_CMaps', 'c:/pdflib/resource/cmap');

$p = PDF_new();

/* 新しくPDFファイルをオープンします */
if (PDF_open_file($p, ""== 0) {
    
die("Error: " . PDF_get_errmsg($p));
}

pdf_set_parameter(
$p, "license", "WXXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX");

/* CMap を指定しない場合、日本語の文字列出力時にエラーもしくは文字が空白となります。 */
PDF_set_parameter(
$p, 'SearchPath', PATH_CMaps); 

PDF_set_info(
$p, "Creator", "hello.php");
PDF_set_info(
$p, "Author", "Rainer Schaaf");
PDF_set_info(
$p, "Title", "Hello world (PHP)!");

/* 新規ページを開始する */
PDF_begin_page_ext(
$p, 595, 842, "");

/* フォントを指定する */
$font = pdf_load_font($p, "HeiseiKakuGo-W5", "EUC-H", "");
$font_blod = pdf_load_font($p, "HeiseiKakuGo-W5", "EUC-H", "fontstyle= bold");

PDF_setfont(
$p, $font, 24.0);
PDF_set_text_pos(
$p, 50, 700);
PDF_show(
$p, "おはよう日本!");

/* 線を描く */
pdf_moveto(
$p, 50, 700); pdf_lineto($p, 450, 700);
pdf_stroke(
$p);

PDF_end_page_ext(
$p, ""); /* ページを終了する */

PDF_close(
$p); /* PDF文書を閉じる */

$buf = PDF_get_buffer($p);
$len = strlen($buf);

// ファイルで出力する
$filename=get_download_name("日本語ファイル.pdf");
header("Content-Disposition: attachment; filename=$filename");
header("Content-type: application/x-download; name=$filename");
header("Content-Type: application/pdf; charset=iso-2022-jp");
print $buf;

PDF_delete(
$p);
exit();

//// 出力はファイルでは無く、ブラウザに返すようにしています。
//header("Content-type: application/pdf");
//header("Content-Length: $len");
//header("Content-Disposition: inline; filename=hello.pdf");
//print $buf;
//
//PDF_delete($p);


function get_download_name($p_filename) {
    
// ユーザーエージェントによってファイル名を変換
    $t_filename = mb_convert_encoding( $p_filename, 'SJIS-win', 'EUC-JP');
    
return $t_filename;
}

?>