繁体   English   中英

如何清除tcpdf中的另存为对话框和黄色框

[英]How to rid of Save As dialog and yellow box in tcpdf

当我使用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上进行了测试。

好的,找到对这两个问题的一些解释。

1.第一个问题:另存为对话框的问题

出于某种原因,tcpdf库在pdf的末尾附加了我的网站html。 我通过使用文本编辑器以纯文本格式查看pdf来发现这一点。

在output()之后立即使用一个现存函数将对其进行修复。

$pdf->Output('example.pdf', 'D');
exit();

2.第二个问题:Chrome中黄色链接框的问题

目前,这是chrome中尚未解决的有效问题。 检查此链接 ,例如在mPdf论坛上。

您可以通过完全删除注释来解决第二个问题。

  • 创建自己的类MyTCPDF扩展\\ TCPDF。
  • 从tcpdf.php复制到创建的类“受保护的函数_putannotsobjs()”。 您将覆盖它。
  • 以方法形式更改此字符串
    `$annots .= ' /Contents ' . $this->_textstring($pl['txt'], $annot_obj_id);`
    在此处输入代码
    `$annots .= ' /Contents ()';`
  • 使用您的班级生成pdf文件。
  • 您可以在此方法中放置任何逻辑,以禁用常量或其他注释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM