在 IFrame(相同域)中嵌入 PDF 并控制高度(滚动条)

Posted

技术标签:

【中文标题】在 IFrame(相同域)中嵌入 PDF 并控制高度(滚动条)【英文标题】:Embed PDF in IFrame (same domain) and control height (scrollbars) 【发布时间】:2021-09-13 22:24:33 【问题描述】:

我想要达到的目标: 我有一个页面,其中包含一些页眉信息,然后是通过嵌入式 PDF 生成的文档,最后是一些页脚信息。理想情况下,这将显示为一个可以打印的连续文档。

我发现了什么: 我将 PDF 加载到页面上的 iframe 中。因为该文档不是公开的,所以它是通过服务器端操作请求的,该操作检查权限并将文档返回为 Content-Type: application/pdf;

这可以加载 PDF,但我无法关闭工具栏和其他嵌入式 PDF 查看器控件(小问题)

当我尝试在包含页面中使用 javascript 读取 iframe 文档高度以修改 iframe 高度并因此删除滚动条时,尽管从同一域、服务器等加载 PDF,但我遇到了跨域起源问题。

非常感谢任何帮助或指示。

【问题讨论】:

谢谢,但所有资源都在同一个域上。我想知道这是否是集成PDF查看器控件的问题(我正在使用Firefox进行测试) 【参考方案1】:

有一个独立的查看器,您可以使用它来显示 pdfs:

 <iframe src="https://docs.google.com/gview?url=http://infolab.stanford.edu/pub/papers/google.pdf&embedded=true" style="width:600px; height:500px;" frameborder="0"></iframe>

这不为你提供

工具栏和其他嵌入式 PDF 查看器控件

编辑:如果您不想使用上述选项,那么您也可以使用 PDF.js 一个打开的项目以 html 呈现 pdf。

<iframe id="pdf-js-viewer" src="/web/viewer.html?file=%2Fmy-pdf-file.pdf" title="webviewer" frameborder="0"  ></iframe>

【讨论】:

我已经用替代方法更新了我的答案 此 google 文档查看器不太可能工作,因为 PDF 文件仅对在服务器上具有登录会话的用户可用。 然后就可以使用pdf-js了

以上是关于在 IFrame(相同域)中嵌入 PDF 并控制高度(滚动条)的主要内容,如果未能解决你的问题,请参考以下文章

使用嵌入、对象或 iframe 方法更改 PDF 查看器中的背景颜色

在 Android 浏览器上嵌入谷歌文档查看器 iframe

在新标签页中从 iframe 中打开 PDF - Google Chrome

如何在没有 iframe 的页面中嵌入 PDF.JS 查看器

使用 iframe 时,嵌入式 base64 pdf 不会在 IE 中显示

仅在特定域上加载 iframe