php 使用 dompdf 转为 pdf
php to pdf using dompdf
我有以下启动代码。
<?
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 上,输出是这样的:
https://www.lotomanager.in/en/print-job.php?ID=12
那么如何将此页面原样转换为 pdf?
我从上面的代码得到以下结果:
Warning: fopen(en/print-job.php?ID=12): failed to open stream: No such
file or directory in /home/loto/public_html/pdf.php on line 5
Warning: filesize(): stat failed for en/print-job.php?ID=12 in /home/loto/public_html/pdf.php on line 6
Warning: fread() expects parameter 1 to be resource, boolean given in /home/loto/public_html/pdf.php on line 6
Warning: fclose() expects parameter 1 to be resource, boolean given in /home/loto/public_html/pdf.php on line 7
PDF file is generated successfully!
不太清楚你的意思。如果您打算在文档中显示 ID:
$dompdf->loadHtml('hello world ' . $_GET['ID'] );
试试这个
<?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();
?>
DOMPDF 有一个 load_html_file
方法供您使用。为了安全起见,我还将 $_GET
转换为整数。
<?php
require_once 'dompdf/autoload.inc.php';
?>
<?php
// reference the Dompdf namespace
use Dompdf\Dompdf;
// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->load_html_file('https://www.lotomanager.in/en/print-job.php?ID='.(int)$_GET['ID']);
// (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();
?>
你通过重构 print-job.php 来做到这一点,你可以得到一些生成 HTML 的函数,它可以将 HTML 打印给用户或将它提供给PDF 库。
最简单的方法可能是
ob_start();
include('print-job.php');
$html = ob_end_clean();
但这可能会导致两个文件中的不同全局变量或其他内容出现问题,您必须小心将来对 pront-job.php 的更改。所以如前所述最好清理那里的代码不要直接打印。
更好的方法是根本不使用 dompdf + html,而是专门创建具有适当布局的 PDF。这是更多的工作,但应该提供更清晰的结果。
我有以下启动代码。
<?
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 上,输出是这样的:
https://www.lotomanager.in/en/print-job.php?ID=12
那么如何将此页面原样转换为 pdf?
我从上面的代码得到以下结果:
Warning: fopen(en/print-job.php?ID=12): failed to open stream: No such file or directory in /home/loto/public_html/pdf.php on line 5
Warning: filesize(): stat failed for en/print-job.php?ID=12 in /home/loto/public_html/pdf.php on line 6
Warning: fread() expects parameter 1 to be resource, boolean given in /home/loto/public_html/pdf.php on line 6
Warning: fclose() expects parameter 1 to be resource, boolean given in /home/loto/public_html/pdf.php on line 7 PDF file is generated successfully!
不太清楚你的意思。如果您打算在文档中显示 ID:
$dompdf->loadHtml('hello world ' . $_GET['ID'] );
试试这个
<?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();
?>
DOMPDF 有一个 load_html_file
方法供您使用。为了安全起见,我还将 $_GET
转换为整数。
<?php
require_once 'dompdf/autoload.inc.php';
?>
<?php
// reference the Dompdf namespace
use Dompdf\Dompdf;
// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->load_html_file('https://www.lotomanager.in/en/print-job.php?ID='.(int)$_GET['ID']);
// (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();
?>
你通过重构 print-job.php 来做到这一点,你可以得到一些生成 HTML 的函数,它可以将 HTML 打印给用户或将它提供给PDF 库。
最简单的方法可能是
ob_start();
include('print-job.php');
$html = ob_end_clean();
但这可能会导致两个文件中的不同全局变量或其他内容出现问题,您必须小心将来对 pront-job.php 的更改。所以如前所述最好清理那里的代码不要直接打印。
更好的方法是根本不使用 dompdf + html,而是专门创建具有适当布局的 PDF。这是更多的工作,但应该提供更清晰的结果。