[PHP-users 4098] pdflib 3.03The function pdf_put_image() and pdf_execute_image() are not available

朝倉 誠 php-users@php.gr.jp
Mon, 03 Dec 2001 20:24:43 +0900


朝倉です。

PHPINFO()に以下のように表示されてしまいます。
---------------------------------------------------
pdflib 3.03The function pdf_put_image() and pdf_execute_image() are not available
---------------------------------------------------

過去ログの中でもこの状況が解決できていない方がいらっしゃいました。

つまりはパッチを当てても
pdf_open_image_file()
が使用できないのです。

以下のPHPソースを実行し
---------------------------------------------------
<?php
// PDFlib sample 
// for PHP-3.0.18-i18n-ja + pdf patch + pdflib-3.03
// Rui Hirokawa <louis@cityfujisawa.ne.jp>
//
$fname = "./save/test1.pdf"; // 出力ファイル(書き込み可とすること)

if(!($fp = fopen($fname,"w"))){ // ファイルをオープン
  die("ファイル $fname をオープンできませんでした。");
}

$pdf = pdf_open($fp);  // PDF ページオープン

// 文書情報を設定
pdf_set_info_author($pdf, "Rui Hirokawa");
pdf_set_info_title($pdf, "Test for PHP wrapper of PDFlib-3");
pdf_set_info_creator($pdf, "See Author");
pdf_set_info_subject($pdf, "Testing");


$a4height=842; $a4width=595;
pdf_begin_page($pdf, $a4width, $a4height); // A4 size

// 栞を付ける
$root = pdf_add_outline($pdf, "Root Bookmark", 0, 0);
pdf_add_outline($pdf, "Childlen Bookmark", $root, 1);

// png イメージを読み込む
$im = pdf_open_image_file($pdf,"png","php4logo.png");
//$im = pdf_open_png($pdf,"php4logo.png");
pdf_place_image($pdf,$im,100,$a4height-100,1);
pdf_close_image($pdf,$im);

pdf_set_text_rendering($pdf, 2);

pdf_set_font($pdf, "HeiseiMin-W3", 20, "EUC-H");
pdf_show_xy($pdf, "日本語" , 200, $a4height-200);

pdf_end_page($pdf);
pdf_close($pdf);
fclose($fp);

Header("Content-type: application/pdf"); // MIMEヘッダ送信
readfile($fname); // ファイルを読み込んで表示
?>
---------------------------------------------------
以下のエラーが表示されます。
---------------------------------------------------
Warning: Could not open image in /usr/local/apache/htdocs/test/pdf1.php3 on line 29

Warning: Unable to find file identifier 0 in /usr/local/apache/htdocs/test/pdf1.php3 on line 31

Warning: Unable to find file identifier 0 in /usr/local/apache/htdocs/test/pdf1.php3 on line 32

Warning: Cannot add more header information - the header was already sent (header information may be added only before any output is generated from the script - check for text or whitespace outside PHP tags, or calls to functions that output text) in /usr/local/apache/htdocs/test/pdf1.php3 on line 43
%PDF-1.3 %蒹マメ 5 0 obj <> stream x徭・R)簫w3P02PI・T0BC マ@チフ(厖挺瞑8vgto4Cイク\Cクqヨ>endstream endobj 6 0 obj 59 endobj 4 0 obj <> endobj 11 0 obj <> >> endobj 3 0 obj <> endobj 10 0 obj <> endobj 12 0 obj <> >> endobj 13 0 obj <> endobj 1 0 obj <> endobj 2 0 obj <> endobj 7 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj xref 0 14 0000000000 65535 f 0000001000 00000 n 0000001055 00000 n 0000000329 00000 n 0000000163 00000 n 0000000015 00000 n 0000000145 00000 n 0000001140 00000 n 0000001194 00000 n 0000001314 00000 n 0000000535 00000 n 0000000267 00000 n 0000000652 00000 n 0000000817 00000 n trailer <> startxref 1403 %%EOF 
---------------------------------------------------

以下のスクリプトでは問題ありませんでした。
---------------------------------------------------
<HTML>
<HEAD><TITLE>PDF Sample</TITLE></HEAD>
<BODY>
<?php
/*  
 このサンプルは pdf を動的に作成して、ファイルに保存する、というものです。
*/ 

  // test.pdf ファイルをオープン  
 $fp = fopen( "test.pdf",  "w");

 $pdf = PDF_open($fp);

  // ファイル情報 
 pdf_set_info_author($pdf,  "Uwe Steinmann");
 PDF_set_info_title($pdf,  "Test for PHP wrapper of PDFlib 2.0");
 PDF_set_info_author($pdf,  "Name of Author");
 pdf_set_info_creator($pdf,  "See Author");
 pdf_set_info_subject($pdf,  "Testing");

 PDF_begin_page($pdf, 595, 842);
 PDF_add_outline($pdf,  "Page 1");

  // 四角の表示 
 pdf_rect($pdf,50,650,250,150);
 pdf_stroke($pdf);

  // ストロークとフィルを指定 
 pdf_set_text_rendering($pdf, 2);

  // フォントを指定して日本語の表示 
 pdf_set_font($pdf,  "HeiseiMin-W3", 30,  "EUC-H");
 PDF_show_xy($pdf,  "日本語表示のテスト。", 50,600);

 pdf_set_font($pdf,  "HeiseiKakuGo-W5", 30,  "EUC-H");
 PDF_show_xy($pdf,  "違うフォントでのテスト", 50, 500);

  // 線を引く 
 pdf_moveto($pdf, 100, 400);
 pdf_lineto($pdf, 500, 400);
 pdf_stroke($pdf);

 PDF_end_page($pdf);
 PDF_close($pdf);
 fclose($fp);
 echo  "test.pdf が出力されました。";

?>
</BODY>
</HTML>
---------------------------------------------------

どなたかアドバイスお願いいたします。