【发布时间】:2016-10-06 22:31:01
【问题描述】:
我想通过 XSLT 2.0 转换的静态 HTML 生成 PDF 文档。
function ProducePDF($pdf_name, $html_page){
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT,PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Tony');
$pdf->SetTitle('A document');
$pdf->SetSubject('Information');
$pdf->SetKeywords('TCPDF, PDF');
// set default header data
$pdf->SetHeaderData('', PDF_HEADER_LOGO_WIDTH,'','');
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
if (file_exists(dirname(__FILE__).'/lang/eng.php')) {
require_once(dirname(__FILE__).'/lang/eng.php');
$pdf->setLanguageArray($l);}
// set font
$pdf->SetFont('helvetica', '', 14);
// add a page
$pdf->AddPage();
$html = file_get_contents($html_page);
// output the HTML content
$pdf->writeHTML($html, true, false, true, false, '');
// reset pointer to the last page
$pdf->lastPage();
//Close and output PDF document
$pdf->Output($pdf_name, 'FI');}
结果pdf文档为here
html源码document
如您所见,TCPDF 在生成的 PDF 的最后一页从源 html 文档的 JS 中生成了一些垃圾。 为什么这样做?这个问题有什么解决方法吗?
【问题讨论】:
-
我认为你需要使用 $pdf->IncludeJS($js);包括 js 见here
-
听起来很真实,但我猜引擎只需要一个“整页”,然后它会从源 html 中获取垃圾。无论如何,感谢您的回复。
标签: php html pdf tcpdf html2pdf