如何隐藏TCPDF生成PDF后浏览器中显示的版本信息?
隐藏TCPDF生成PDF中的版本信息解决方案
我帮你搞定这个问题!在TCPDF 6.4版本里,其实有两个核心方法可以轻松隐藏或替换默认的TCPDF版本信息,不用修改包源码就能实现:
关键方法说明
- 使用
setProducer():这个方法用于设置PDF元数据中的Producer字段,默认会显示TCPDF 6.4.0 (https://tcpdf.org)这类版本信息,我们可以把它替换为空字符串或自定义内容。 - 使用
setCreator():如果需要,也可以通过这个方法清空或替换Creator字段的默认值(默认也是TCPDF相关标识)。
修改后的代码示例
把这两个方法添加到你初始化TCPDF的代码后面即可,修改后的完整代码片段如下:
$pdf = new \TCPDF('L', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); // 隐藏/替换版本信息的关键代码 $pdf->setProducer(''); // 清空Producer字段,不会显示TCPDF版本 $pdf->setCreator(''); // 可选:清空Creator字段 $pdf->setPrintHeader(false); $pdf->setPrintFooter(false); $pdfParams = $this->handlePageParamsByCoverSize($coverSize); $fontSize = $this->calculateFontSizeByCoverSize($coverSize); $scissorsIconPath = $this->fileLocator->locate('scissors.png'); $pdf->SetFont( 'helvetica', '', $fontSize ); $pdf->AddPage('L', $pdfParams['format'], true, true); $pdf->Image( $coverPath, $pdfParams['cover']['x'], $pdfParams['cover']['y'], $pdfParams['cover']['w'], $pdfParams['cover']['h'], '', '', '', false, 300, '', false, false, 0 ); $pdf->Image( $scissorsIconPath, $pdfParams['scissorsIcon']['x'], $pdfParams['scissorsIcon']['y'], $pdfParams['scissorsIcon']['w'], $pdfParams['scissorsIcon']['h'], '', '', '', false, 300, '', false, false, 0 ); $filePath = '/covers/' .$coverName . '.pdf'; $absFileName = $rootPath . $filePath; try { $pdf->Output($absFileName, 'F'); } catch (\Exception $e) { //Move on } if (file_exists($absFileName)) { $result = [ 'absPath' => $absFileName, 'path' => $filePath, ]; } else { $result = ['path' => 'error']; } return $result;
补充说明
如果你不想完全清空,也可以设置自定义的标识,比如:
$pdf->setProducer('Your App Name');
这样PDF的元数据里就会显示你自定义的内容,而不是TCPDF的版本信息了。
内容的提问来源于stack exchange,提问作者learningsymfony
相关产品推荐
相关产品推荐

