0

zend_pdfを使用してmagento 1.7でpdfを生成していますが、次のようなことを試しました

public function getpdf()
 {
 $pdf = new Zend_Pdf(); 
 $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);
 $page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
 $page->setFont($font, 24) ->drawText('Hello World', 72, 720);
 $pdf->pages[] = $page;
 $pdfString = $pdf->render();
header("Content-Disposition: attachment; filename=helloworld.pdf");
header("Content-type: application/x-pdf");
echo $pdfString;
 }

問題は、Windows 7 で Pdf が生成されたときに開かず、「サポートされているファイル タイプではないか、ファイルが破損しているため、Adobe Reader で helloworld.pdf を開けませんでした」というエラー メッセージが表示されることです。このエラーは、pdf ドキュメントに html コンテンツが存在するために発生することに気付きました。リンクhttps://dl.dropbox.com/u/45895040/helloworld.pdfとして PDF ドキュメントをお送りします。

PDF が Mac OS X で生成された場合、そこで正常に開きます

理解を深めるために、Zend_pdf document throws error in magento due to present of html contents に記載されている手順に従ってください。

オペレーティング システムに関係なく、生成された pdf を任意のブラウザで開くことができるように、ヘッダーを適切に設定する方法を教えてもらえますか。

4

1 に答える 1

0

echo ステートメントの直前に次のコード行を追加します。

        ob_end_clean();

これでうまくいくはずです。

于 2012-09-07T02:29:01.763 に答える