如何在HTML页面中嵌入PDF文件?

13
我们希望在通过Servlet的doGet方法从数据库中检索PDF文档后,在HTML页面中展示它。有人能分享一些代码片段来实现这个功能吗?

如何“展示”?使用安装在用户系统上的浏览器插件吗? - Pekka
1
你只需要在响应头中返回适当的MIME类型。 - symcbean
你需要使用对象、嵌入或 iframe 标签来进行单独的 HTTP 请求以获取内容。 - mplungjan
@mplungjan - 如何检索 iframe 标签中的内容? - user339108
@symcbean - 作为 HTTP 响应的一部分,我正在返回此文档的适当 MIME 类型。 - user339108
3个回答

22

非图片的非HTML内容需要使用对象,嵌入或iframe标签检索

  1. iframe: <iframe src="somepage.pdf"></iframe>
  2. object/embed: <object src="somepage.pdf"><embed src="somepage.pdf"></embed></object>

使用 somepage.pdf 可以是 somepage.jsp?filename=somepage&mimetype=application/pdf

这里有一个有趣的链接如何在网页中嵌入Microsoft Office或PDF文档

这里还有一个stackoverflow搜索


1
我需要在子文档中使用父文档的内联样式元素。Iframe 不允许这样做。这个问题可以通过使用 embed 或 object 标签解决吗? - user2284570
不太可能。如果跨域的话也行不通。如果不是跨域的话,那么iframe应该可以工作。请提出一个单独的问题。 - mplungjan
同一域名。但问题已经被问过了,它的答案只提供了使用外部样式表的响应。 - user2284570
那么为什么不能使用iFrame呢?在加载时,您可以将父级的样式表复制并插入到iframe中。 - mplungjan
2
当我尝试这些操作时,它开始下载docx文件,这是因为我不在服务器上(离线),还是我漏掉了什么? - Mousa Alfhaily
显示剩余3条评论

10

谷歌文档查看器可以处理这个。

尝试一下

<html>
    <head>
        <style>
            *{margin:0;padding:0}
            html, body {height:100%;width:100%;overflow:hidden}
        </style>
        <meta charset="utf-8">
            <?php
                 $url = $_GET['url'];
             ?>
        <title><?php echo $url; ?></title>
    </head>
    <body>
        <iframe src="http://docs.google.com/viewer?url=<?=urlencode($url)?>&embedded=true"  style="position: absolute;width:100%; height: 100%;border: none;"></iframe>
    </body>
</html>

谢谢,这是我找到的唯一可行的方法。 - Mousa Alfhaily

0

如果您正在寻找纯HTML版本的文档(以实现快速呈现和跨浏览器支持),您可以通过Docspad查看。 Docspad可帮助将所有不同的流行文档格式嵌入到您的Web应用程序中。http://docspad.com


6
Docspad已经关闭:“我们将于2014年10月19日起停止支持Docspad服务。” - Jeromy French

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接