我想用PHP的wkhtmltpdf将我的html页面的某些部分转换为pdf

时间:2013-11-25 13:00:34

标签: php wkhtmltopdf

实际上我已经使用url和静态html页面将html转换为pdf。 但现在从我的网址或HTML页面我不希望整个页面通过pdf转换。 我想只将我网页的几个内容传递给html到pdf转换。

假设下面是我的HTML,我想只传递2'd div为html到pdf转换而不是整个html。所以如何只传递html的某些部分进行转换。

    <!DOCTYPE html>
     <head>
      </head>
     <body>

      <div id="print-area">
        <div id="header">
           This is an example header.
        </div>
      <div id="content">
        <h1>Demo</h1>
        <p>This is example content</p>
      </div>
      <div id="footer">
       This is an example footer.
      </div>
   </div>

  </body>
  </html>

以下是我的PHP代码 - 实际上来自我的一个html页面,我发布了这个php页面的url,并且不希望整个网页转换为pdf .i只希望将一个div转换为pdf。< / p>

    <?php
    require_once('WkHtmlToPdf.php');

$url = trim($_POST['textLink']);
$urlLink = "'$url'";
$date = date("Y-m-d");
$pdfNm = 'testPDF' . $date . '.pdf';

// Create a new WKHtmlToPdf object with some global PDF options

$pdf = new WkHtmlToPdf(array(
    'use-xserver',
    'no-outline', // Make Chrome not complain
    'margin-top' => 0,
    'margin-right' => 0,
    'margin-bottom' => 0,
    'margin-left' => 0,
));


// Set default page options for all following pages
$pdf->setPageOptions(array(
    'disable-smart-shrinking',
    'user-style-sheet' => 'css/pdf.css',
));


$pdf->addPage($urlLink); //we can also pass html file for conversion
//$pdf->addPage('demo.html');
//$pdf->saveAs('/tmp/new.pdf');    //Save as rather than sending it to user to save

$pdf->send($pdfNm)

现在我不希望使用wkhtmltopdf进行html到pdf转换的网页的全部内容。 我只想要一个特定的DIV。

1 个答案:

答案 0 :(得分:0)

如何获取文件parsing it using some HTML parser,提取所需内容然后将其提供给$pdf?我不知道你使用的包装器,但我认为即使你不在这里使用流也是可能的。

如果没有,请将提取的部分保存为文件,并将该文件提供给$pdf

这里有一个很好的答案,就是在PHP中提取HTML部分:https://stackoverflow.com/a/3577654/694325