[PHP-users 1678] PDFが複数ページ出力できない

shinkai php-users@php.gr.jp
Fri, 31 Aug 2001 13:54:57 +0900


新開と申します。
PDFlibでPDF文書を複数ページ作成しようとしていますが、
1ページ(35.3 x 35.3mm)だけ出力され、描画もできません。
以下はソースです。
-- ここから --
// pdf初期設定
$pdf = pdf_new();
pdf_open_file($pdf);

$j = count($oid);
for ($i = 0; $i < $j; $i++) {
    pdf_begin_page($pdf, 595, 842); // A4縦
    pdf_end_page($pdf);
}

pdf_close($pdf);
$data = pdf_get_buffer($pdf);
header("Content-type: application/pdf");
header("Content-disposition: inline; filename=test.pdf");
header("Content-length: " . strlen($data));
echo $data;
-- ここまで --
環境
PHP4.0.6
PDFlib3.03
----
$oid は form からのチェックボックスの値が格納されています。
$oid の値は print_r($oid) で確認しています。
出力例:Array ( [547022] => on [547023] => on ) 
$j の値は echo "$j" で確認しています。

以下のようにテストした所、正常に出力できました。
1:$j = 2 のように決め打ちだとOK
しかし
$tmp = count($oid);
$j = $tmp; はNG。

2:配列を決め打ちだとOK
$oid = array("547022" => "on", "547023" => "on"); 
$j = count($oid)
しかし
foreach($oid as $key as $val) {
    $arr[$key] = $val;
}
$j = count($oid);
はNG

3:for でループしないとOK
当然1ページしか作成できません。
ちなみに
foreach($oid as $key => $val) {
    pdf_begin_page($pdf, 595, 842); // A4縦
    pdf_end_page($pdf);
}
の場合、IE5.5ダイアログボックスに
「ファイルの最初に%PDF- がありません。」
と表示されます。

このような現象が発生する原因がお分かりになられる
方がいらっしゃたら、ご教授願えますと幸いです。