gpt4 book ai didi

php - 如何更改 PHP 浏览器选项卡中显示的 PDF 元标题?

转载 作者:行者123 更新时间:2023-12-03 08:53:45 28 4
gpt4 key购买 nike

我有一个使用 wkhtmltopdf 生成的 PDF,但它没有标题。因此,浏览器使用 URL 的最后部分作为选项卡标题和 PDF 预览标题。我想更改这些地方出现的标题。

我知道这是由 PDF 文档的元标题定义的,但我如何在 PHP 中更改它?

Example of a PDF with no meta title

最佳答案

如果您在文本编辑器中打开 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();

可能性是无限的! (嗯,不是真的,但你明白了)

希望这对您有帮助!

关于php - 如何更改 PHP 浏览器选项卡中显示的 PDF 元标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57192980/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com