在HTML中嵌入PDF的推荐方法是什么?

iFrame吗? 对象? 嵌入?

Adobe是怎么说的呢?

在我的例子中,PDF是动态生成的,因此不能在刷新之前将其上传到第三方解决方案。


当前回答

要将文件流式传输到浏览器,请参阅Stack Overflow问题如何使用。net 2.0将PDF文件流式传输为二进制文件到浏览器-请注意,有一些小的变化,无论您是从文件系统提供文件还是动态生成文件,这都可以工作。

尽管如此,所引用的MSDN文章对世界的看法相当简单,因此您可能希望阅读通过HTTPS成功地将PDF传输到浏览器以及您可能需要提供的一些标题。

使用这种方法,iframe可能是最好的方法。有一个流文件的webform,然后将iframe放在另一个页面上,并将其src属性设置为第一个表单。

其他回答

这是快速、简单、直截了当的,不需要任何第三方脚本:

<embed src="http://example.com/the.pdf" width="500" height="375" 
 type="application/pdf">

更新(2/3/2021)

Adobe现在提供了自己的PDF嵌入API。

https://www.adobe.io/apis/documentcloud/dcsdk/pdf-embed.html

更新(1/2018):

Android上的Chrome浏览器不再支持PDF嵌入。你可以通过使用谷歌Drive PDF查看器来解决这个问题

<embed src="https://drive.google.com/viewerng/
viewer?embedded=true&url=http://example.com/the.pdf" width="500" height="375">

在我得到嵌入base64编码PDF的问题之前,因为URI限制,所以任何超过2MB的文件都不会在Chrome上正确呈现。

我的解决方案是:

转换uri编码为Blob: 基于Blob生成临时DOM字符串。 const blob = dataURItoBlob(this.dataUrl); var temp_url = window.URL.createObjectURL(blob); 决定你想把iframe附加到DOM的位置: const target = document.querySelector(targetID); 目标。innerHTML =' <iframe src='${temp_url}' type="application/pdf"></iframe> .

值得注意的PDF是您应该考虑的选项之一 它有一个免费的计划,除非你打算在pdf文件上进行实时在线协作

将以下iframe嵌入到任何html并享受结果:

<iframe width='1000' height='800' src='http://bit.ly/1JxrtjR' frameborder='0' allowfullscreen></iframe>

PdfToImageServlet使用ImageMagick的convert命令。

使用的例子: < img src = " / webAppDirectory / PdfToImageServlet ? pdfFile = / usr /共享/杯/数据/ default-testpage.pdf ' >

如果你不想自己托管PDF.JS,你可以试试DocDroid。它类似于谷歌Drive PDF查看器,但允许自定义品牌。