php到pdf使用dompdf

时间:2016-06-02 08:14:43

标签: php pdf html2pdf

我有以下代码开始。

<?
require('html2fpdf.php');
$pdf=new HTML2FPDF();
$pdf->AddPage();
$fp = fopen("en/print-job.php?ID=12","r");
$strContent = fread($fp, filesize("en/print-job.php?ID=12"));
fclose($fp);
$pdf->WriteHTML($strContent);
$pdf->Output("home.pdf");
echo "PDF file is generated successfully!";
?>

我有一个名为print-pdf.php的页面,它建立在bootstrap&amp;输出是这样的:

https://www.lotomanager.in/en/print-job.php?ID=12

那么如何将此页面转换为pdf?

我从上面的代码得到以下结果:

  

警告:fopen(en / print-job.php?ID = 12):无法打开流:没有这样的   第5行/home/loto/public_html/pdf.php中的文件或目录

     

警告:在第6行的/home/loto/public_html/pdf.php中,en / print-job.php中的文件大小():stat失败?ID = 12

     

警告:fread()期望参数1为资源,第6行的/home/loto/public_html/pdf.php中给出布尔值

     

警告:fclose()要求参数1为资源,在第7行的/home/loto/public_html/pdf.php中给出布尔值       PDF文件生成成功!

4 个答案:

答案 0 :(得分:1)

试试这个

<?php
require_once 'dompdf/autoload.inc.php';
?>
<?php

// reference the Dompdf namespace

use Dompdf\Dompdf;

// instantiate and use the dompdf class
$html = file_get_contents('http://www.lotomanager.in/en/print-job.php?ID=12');
$dompdf = new Dompdf();
$dompdf->loadHtml($html);

 // (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');

// Render the HTML as PDF
$dompdf->render();

// Output the generated PDF to Browser
$dompdf->stream();
?>

答案 1 :(得分:0)

不确定你的意思。如果您打算在文档中显示ID:

$dompdf->loadHtml('hello world ' . $_GET['ID'] );

答案 2 :(得分:0)

DOMPDF有一个0 -0.5 0.8 50 方法可以使用。为了安全起见,我还将load_html_file转换为整数。

$_GET

答案 3 :(得分:0)

你可以通过重构print-job.php来实现这一点,你可以通过某种方式生成HTML,它可以将HTML打印到用户或将其提供给PDF库。

最简单的方法可能是

ob_start();
include('print-job.php');
$html = ob_end_clean();

但是这会导致两个文件中的不同全局变量或某些内容出现问题,并且您必须小心将来对pront-job.php进行更改。所以说更好的清理那里的代码不要直接打印。

更好的方法是根本不使用dompdf + html,而是使用适当的布局专门创建PDF。这是更多的工作,但应该给出更清洁的结果。