如何在浏览器中设置pdf文件的标题?

How to set the title of a pdf file in browser?

我正在使用 nodejs 服务器来提供静态文件。提供 pdf 文件时,浏览器将标题显示为 pdf 路径的 URL。

127.0.0.1:8080/docs/sample

如何将其设置为自定义标题,比如 "Sample"

我尝试了以下操作但没有成功:

  1. res.setHeader('Content-Disposition', 'inline;filename="sample.pdf"');
  2. 将 pdf 文件的元标记设置为 "sample"

任何帮助将不胜感激。

如果您使用的是静态文件服务器,那么可以下载。现代浏览器通常包含 built-in PDF 查看插件,因此浏览器不会询问用户将文件保存在何处,而是直接在浏览器选项卡中显示 PDF。它仍然下载了它,只是在那种情况下将它保存到您机器上的某个临时缓存中。

我的意思是,在那种情况下您无法控制浏览器标题,因为它只是浏览器试图变得更好并为用户提供便利。 PDF 文件本身并不知道它是显示在浏览器的 built-in 查看器中还是显示在桌面上的 Adob​​e Reader 中。没有 HTTP headers 您可以向下发送来设置标题,因为浏览器希望页面标题从 HTML 或 JavaScript 运行 在实际网页上设置。

现在,如果您要使用某种 PDF 查看器将 PDF 文件嵌入到 HTML 页面中,那么您可以使用简单的 <title>some title</title> 标记或调用 [=11] 来控制页面标题=] 来自 JavaScript。这是可行的,因为浏览器正在呈现您控制的实际网页,而该页面恰好有一个嵌入式 PDF 查看器。

这是一个可嵌入的 PDF 查看器示例。 http://pdfobject.com/

//hack alert

您可以通过将 url 的最后一个片段设置为您喜欢的任何内容来欺骗浏览器。即,将示例中的 sample 更改为所需的标题。

(在 chrome 58.0.3029.110 中测试)

HTH