如何强制PDF在浏览器中打开/查看,而不是下载PDF?

每当我上传一个 PDF 文件时,它会在主题中显示如下:

image

我在桌面版中使用 Inline PDF 来显示它。但在移动设备上,Inline PDF 无法正常工作。此外,Google 或其他搜索引擎会自动检测到 PDF 文件,但当用户点击这些搜索结果时,会弹出 PDF 下载对话框,而不是在新标签页中打开。这不太友好,大多数用户更希望在线查看 PDF,而不是先下载到本地再打开。

有什么解决方案吗?

注意:我曾看到过这个主题 https://meta.discourse.org/t/pdf-preview-instead-of-download-on-uploaded-files/151995,但该主题最终并未解决原始问题。因此,我创建了新的主题。

感谢您提出这个问题。我也很想知道答案!

嵌入存储在 Google 云端硬盘中的 PDF

PDF 可在移动设备和桌面设备上显示。

(我偏爱的方法,以便 iFrame 中的 PDF 在任何设备上都能以响应式方式显示)

  1. 共享
  2. 复制共享链接
  3. 在新标签页中打开共享链接
  4. 点击右上角的三个垂直点
  5. 选择“嵌入项目”
  6. 复制显示的 iFrame 代码
  7. 将其粘贴到 Discourse 的撰写器/编辑器中

桌面示例…

移动设备示例…

内联 PDF 在桌面端对我来说也不起作用。

我部分成功地在添加 PDF 到 FileHelper.inline_images 时内联显示它们

但随后需要一个参数“inline=1”:

这可以在某个主题组件中添加(https://meta.discourse.org/t/inline-pdf-previews/157649)。

我想学习一种干净的方法,使用插件或配置选项将 Discourse 切换为使用 content-disposition: inline 来提供 PDF。

我写了一个小程序来实现这个目的: