[英]How can I change a PDF's meta title that appears in the browser tab in PHP?
如果您在文本编辑器中打开 PDF,您会注意到元标题在第一部分中定义,由<<
和>>
分隔。 它看起来像下面这样:
/Title (My Document Title)
或者:
/Title (��)
如您所见,该模式非常简单。 您所要做的就是使用相同的模式替换该行,除了括号之间的标题。
尽管这很可能不是最干净或最有效的解决方案,但简单的preg_replace
可以很好地解决此类问题。
以下是使用现有 PDF 的示例:
$filename = '/my/path/to/file.pdf';
$content = file_get_contents($filename);
$title = str_replace(['(', ')'], '', $title);
$title = utf8_decode($title); # Deals with accented characters and such
$updatedContent = preg_replace('/\/Title \(.*\)/', '/Title (' . $title . ')', $content);
如果文件中缺少元标题,您可以简单地将它插入到它本来的位置。
之后,您可以对更新的数据执行任何您喜欢的操作。 您可以将其保存回文件以更新现有的 PDF:
file_put_contents($filename, updatedContent);
或者,您可以向用户显示 PDF:
header('Content-type: application/pdf');
header('Content-disposition: inline; filename="my-updated-file.pdf"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
echo $updatedContent;
die();
可能性是无止境! (嗯,不是真的,但你明白了)
希望这是有帮助的!
wkhtmltopdf 有命令行参数来设置文档的各个方面,包括标题。
--title
设置文档标题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.