当我使用TCPDF生成并保存带有链接的文档时。在关闭pdf阅读器之前,它始终显示另存为对话框。
"Do you want to save the changes to file.pdf before closing?"
当我将鼠标悬停在链接上时,Chrome浏览器中还有一个黄色的便条框...如下图所示。
我的问题代码是这样的。
$pdf->writeHTML('<a href="/wp-admin/admin.php?page=system_view_data&id=1">link</a>');
但是,如果我的html中的链接为空,则关闭pdf时没有问题,同时链接中也没有黄色框。例如,以下代码工作正常。
$pdf->writeHTML('<a href="">link</a>');
以下是重现问题的完整示例。
require_once __DIR__.'../../external_classes/TCPDF/tcpdf.php';
$pdf = new \TCPDF();
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('ABC');
$pdf->SetTitle('ABC');
$pdf->SetSubject('ABC');
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, "ABC", "ABC");
$pdf->setPrintFooter(false);
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
$pdf->SetMargins(PDF_MARGIN_LEFT, 10, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->SetFont('helvetica', '', 10);
$pdf->AddPage();
$pdf->writeHTML('<a href="/wp-admin/admin.php?page=system_view_data&id=1">link</a>');
ob_clean();
$pdf->Output('example.pdf', 'D');
以上示例将生成如下图所示的输出。哪个都有问题,我已经在tcpdf版本5.9.x和6.2.x上进行了测试。
答案 0 :(得分:1)
好的,找到了两个问题的解释。
<强> 1。第一个问题:“另存为对话框”
的问题由于某种原因,tcpdf库在pdf的末尾追加我的网站html。我通过使用文本编辑器以纯文本查看我的pdf来发现这一点。
在output()之后立即使用存在的函数来修复它。
$pdf->Output('example.pdf', 'D');
exit();
<强> 2。第二个问题:chrome中的黄色链接框问题
这是目前Chrome中未解决的活动问题。例如,在mPdf论坛上查看此link。
答案 1 :(得分:1)
您可以通过删除注释来解决第二个问题。
`$annots .= ' /Contents ' . $this->_textstring($pl['txt'], $annot_obj_id);`
`$annots .= ' /Contents ()';`