ASP.NET& PDF文件

时间:2011-05-04 15:47:14

标签: asp.net pdf iframe

我正在尝试获取一个pdf文件,在我的aspx页面中显示一个带有iframe的pdf文档。我正在使用以下代码:

<iframe runat="server" id="testpdf" src="http://localhost:1114/pdfs/3211LD.pdf">
</iframe>

当我运行项目时,我只是得到一个空框架。但是,当我将src(http:// localhost:1114 / pdfs / 3211LD.pdf)粘贴到浏览器的地址栏中时,它会要求我运行/保存文件。所以我知道我的虚拟目录设置正确。

那为什么不在iframe中显示呢?我的代码有问题吗?

谢谢, 杰森

4 个答案:

答案 0 :(得分:0)

当网络浏览器显示PDF文件时,它实际上是使用Adobe Reader插件来呈现内容。我从未见过从iframe内部运行的Adobe Reader插件。我不相信它是那样的。

答案 1 :(得分:0)

你最好用aspx页面二进制文件编写pdf ...

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Set the appropriate ContentType.
        Response.ContentType = "Application/pdf"
        'Get the physical path to the file.
        Dim FilePath As String = MapPath("acrobat.pdf")
        'Write the file directly to the HTTP output stream.
        Response.WriteFile(FilePath)
        Response.End()
End Sub

答案 2 :(得分:0)

您无法完全控制浏览器的功能,但如果您自己发送PDF,则可以将Content-disposition标头更改为内联。关注@ BobTodd的代码,但添加

 Response.AddHeader("Content-disposition", "inline");

请求在页面中显示PDF。

另一种方法是将PDF页面光栅化为png并在常规网页中使用<img>标签。你可以用GhostScript做到这一点。

免责声明:我在Atalasoft工作。我们制作了一个ASP.NET image viewer web control和一个PDF Reader add-on,可以自动在服务器上转换PDF,并在不需要Acrobat的情况下将其显示在网页中。

答案 3 :(得分:0)

您需要使用标记在页面中显示PDF(和/或可能是嵌入标记)

这是一个有助于各种方式的问题:Recommended way to embed PDF in HTML?