你如何使用这个PHP库?

时间:2011-01-24 14:37:00

标签: php wordpress pdf dompdf

我想从Wordpress帖子中的内容动态创建PDF(稍微简化如下),其中div称为“食谱”是我要发送给DOMPDF的内容(整个帖子):

<div class="post">
    <div>
        <!-- some stuff I don't want in the PDF -->
    </div>
    <div class="recipe">
        <?php more_fields('recipe-name'); ?>
        <?php more_fields('recipe-method'); ?>
        <a href="<?php /*something here that calls DOMPDF, 
                         delivers the contents of #recipe, and causes
                         render and stream of PDF to browser.*/ ?>"
    class="print-recipe">Get a PDF of this recipe.</a>
    </div>
</div>

之前从未使用过PHP库,我似乎不知道如何做到这一点。 Documentation here。提前感谢任何愿意帮忙的人。

3 个答案:

答案 0 :(得分:3)

您需要编写一个单独的脚本,在给定相应的配方ID时生成PDF,然后从当前的HTML页面链接到该脚本。看起来你正在努力,因为你试图在一个页面上完成这一切。

我对Wordpress并不是特别熟悉,所以我建议使用缓冲区输出HTML:(未经测试)

<强> recipe_pdf.php

<?
  /* wordpress initializers go here */
  require_once("dompdf_config.inc.php"); // or whatever your path is

  $id = $_GET['id']; //requested recipe ID
  /* fetch recipe data here */

  ob_start(); // begin buffering PDF content
?>


**output recipe HTML to be used for PDF generation here**


<?

  $html = ob_get_clean();  // grab buffered content and stop buffering

  //create and output the PDF as a stream (download dialog)
  $dompdf = new DOMPDF();
  $dompdf->load_html($html);
  $dompdf->render();
  $filename = "your-recipe-filename.pdf";
  $dompdf->stream($filename);

?>

配方HTML文件

...
<div class="recipe">
  <?php more_fields('recipe-name'); ?>
  <?php more_fields('recipe-method'); ?>
  <a href="recipe_pdf.php?id=<? // output recipe ID ?>">
    Get a PDF of this recipe.
  </a>
</div>
...

答案 1 :(得分:0)

在您正在查看的网站上,单击链接只需调用dompdf.php脚本,并将相关HTML文件的路径作为输入。链接的目标是iframe,称为“预览”。它实际上并没有在页面本身内进行任何转换,如果这就是你的想法。

答案 2 :(得分:0)

如果您使用的是jQuery,可以选择这样的配方html:

$('.recipe').html();

只需创建一个带有肌动蛋白链接到您的dompdf库页面的表单