首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在PHP中将HTML页面保存为PDF

在PHP中将HTML页面保存为PDF
EN

Stack Overflow用户
提问于 2015-04-13 21:24:32
回答 3查看 978关注 0票数 1

我需要把url转换成pdf。

我尝试使用tcpdf,但得到的错误如下:注意:未定义的偏移量:4 in /opt/lampp/htdocs/IBI/ TCPDF /tcpdf.php第17218行TCPDF错误:某些数据已输出,无法发送PDF文件

我认为问题在于页面包含html、js和CSS。

这是尝试的代码和url:

代码语言:javascript
运行
复制
// Include the main TCPDF library (search for installation path).
require_once('tcpdf_include.php');

// 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('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 006');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 006', PDF_HEADER_STRING);

// 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('dejavusans', '', 10);

// add a page
$pdf->AddPage();
// test some inline CSS
$html = file_get_contents("http://dvns.me/mahmoud/IBI/");
$pdf->writeHTML($html, true, false, true, false, '');

//Close and output PDF document
$pdf->Output(time().'.pdf', 'I');

//============================================================+
// END OF FILE
//============================================================+
EN

回答 3

Stack Overflow用户

发布于 2015-04-13 21:48:19

尝试在require()之前插入ob_clean(),如

代码语言:javascript
运行
复制
ob_clean()
// set document information
$pdf->SetCreator(PDF_CREATOR);

请参阅reference hererelated issue here

票数 0
EN

Stack Overflow用户

发布于 2016-11-01 23:41:42

我使用下面的库jsPDF实现了类似的功能

在视图中,使用以下ID定义要打印的表:

代码语言:javascript
运行
复制
<table id="printTable" class='table table-striped' border="0">
票数 0
EN

Stack Overflow用户

发布于 2015-04-13 21:56:50

尝试使用以下代码隐藏通知消息:

代码语言:javascript
运行
复制
error_reporting(E_ERROR | E_WARNING | E_PARSE);

此代码将插入到脚本的开头

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29606452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档