0

magento1.7 では、app\code\core\Mage\Wishlist\Helper\Data.php (Data.php) ファイルに次の行を記述します。

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

この関数を呼び出します

  <?php  Mage::helper('wishlist')->getpdf();?>

app\design\frontend\base\default\template\wishlist\view.phtml (view.phtml) ファイルの行の直前<div class="my-wishlist">。ブラウザでmagentoを実行してログインします。次に、[マイ ウィッシュリスト] リンクをクリックすると、ダウンロード フォルダーに myfile.pdf が表示されます。開くとエラーメッセージが表示されます。これらの行を置き換えます

   $pdfString = $pdf->render();
   header("Content-Disposition: attachment; filename=myfile.pdf");
   header("Content-type: application/x-pdf");
   echo $pdfString;

   $pdf->save("mydoc.pdf");

次に、magento1.7 フォルダーにある mydoc.pdf を開きます。エラーなしで開かれ、PDF ドキュメントの各ページに「Hello World」が表示されます。これら 2 つのファイル "myfile.pdf" と "mydoc.pdf" をテキスト エディターで比較すると、"myfile.pdf" に html コンテンツが存在することがわかります。私の問題は、生成された PDF ドキュメントからこれらの html コンテンツを削除する方法が見つからないことです。誰でもこの問題を解決するのを手伝ってくれますか? 上記のコードは、私が行ったことの単なるデモンストレーションであることに注意してください。

4

3 に答える 3

1

猫の皮を剥ぐ方法は複数あります。ウィッシュリストの素敵な PDF が欲しいと思います。wkhtml2pdf を使用して作成することを検討してください。これには、ページの PRINT バージョンのスタイルアップが含まれます。wkhtml2pdf の場合のように、media=print の場合に追加される CSS があります。

wkhtml2pdf の結果は、Zend PDF で「手描き」されたものよりもはるかに優れています。

開始するには、wkhtml2pdf をインストールし、コマンド ラインで実行するだけで、適切な結果が得られるまでオプションを調整します。

wkhtml2pdf の唯一の欠点は、改ページを制御できないことです。

于 2012-08-31T12:36:35.867 に答える
0

Mage_Wishlist_IndexController::indexAction():の最後にこのコードを追加します

$sResponse = $this->getResponse()->getBody();
$sNewResponse = strstr($sResponse, '%PDF-1.4');
$this->getResponse()
    ->clearBody()
    ->appendBody($sNewResponse);

$this->renderLayout()通話のすぐ後ろ。

于 2012-08-31T15:00:22.613 に答える
0

Magento から PDF 文字列を送信し、ブラウザーでレンダリングするには、次の手順を実行する必要があります。

$pdfString = $pdf->render();
$this->getResponse()->setHeader('Content-Type', 'application/pdf');
$this->getResponse()->setBody($pdfString);
于 2012-12-05T10:14:38.300 に答える