使用 TCPDF 库生成 PDF 的小问题
Small issue with PDF genaration, using TCPDF library
我想从通过 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 生成了一些垃圾。
它为什么这样做?这个问题有什么解决方法吗?
由于我的问题有任何答案,我决定使用 this 问题的答案来解决我的问题。
我只是用那个正则表达式从标记中删除了不必要的块,一切正常!
我想从通过 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 生成了一些垃圾。 它为什么这样做?这个问题有什么解决方法吗?
由于我的问题有任何答案,我决定使用 this 问题的答案来解决我的问题。
我只是用那个正则表达式从标记中删除了不必要的块,一切正常!