PHPでも生成される画像を使用してPDFを生成しようとしています。十分に単純に聞こえますが、ヘッダーを台無しにしているだけだと確信していますが、ここで解決策を見つけることができないようです。
まず、PDF を生成します。
define('FPDF_FONTPATH','fonts/');
require('scpt/fpdf.php');
class PDF extends FPDF {}
$pdf = new FPDF('P','in',array(8.5,11));
$pdf->SetAutoPageBreak(false,0);
$pdf->SetTextColor(0,0,0);
$pdf->SetDrawColor(0,0,0);
$pdf->SetFont('Helvetica','',12);
$pdf->Image('label.php?imgid=17',0,0,0,0,'PNG');
$pdf->Output('label.pdf','D');
次に、label.php で PNG を生成します。
if(isset($_GET["imgid"])) {
header("Content-Type: image/png");
$im = @imagecreate(110, 20)
or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
}
これは出力されます:FPDF error: Not a PNG file:....
ただし、ブラウザで label.php?imgid=17 を呼び出すと、問題なく画像が表示されます...
私は何が欠けていますか?
編集
ドキュメント内: 例
// Insert a logo in the top-left corner at 300 dpi
$pdf->Image('logo.png',10,10,-300);
// Insert a dynamic image from a URL
$pdf->Image('http://chart.googleapis.com/chart?cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World',60,30,90,0,'PNG');
最初に保存せずに動的に生成された画像を含めることが可能であるべきですか?!
編集#2
ライブラリmem_imageで動作させましたが、これがエラーIMOをスローしてはならないという問題が残っていますか?! したがって、この質問を開いたままにして、これがバグであることが判明したスクリプトに実際に何か問題があるかどうかを確認します。