查看PDF作为页面的一部分

时间:2011-06-22 12:15:36

标签: c# asp.net-mvc pdf partial

我正在尝试在我的MVC网页中查看PDF文档,但我无法让它工作。

我希望PDF显示为页面上其他内容的一部分(页眉,页脚等)。目前我有一个显示PDF的解决方案,但是在整个页面上。

是否有人这样做过,如果有,那怎么办?

1 个答案:

答案 0 :(得分:38)

为什么不尝试像这样使用iframe:

<iframe src="even file stream action url"></iframe>
  

如果可能的话,我建议使用对象标签,仅使用iframe进行测试。

如果您想像现在一样将PDF呈现为页面的一部分

  

src ='&lt;%Html.RenderAction(“GetPDF”); %GT;'

然后这是你的选择

如果您需要使用CSS或Google书籍等完全控制PDF内容,那么您需要的工具可以帮助您将每个请求的PDF页面转换为纯文本,HTML甚至图像。 像PDFsharp这样的工具。 Search Google For Tools

如果您希望将PDF显示为页面的一部分,那么这就是您必须要做的事情

ASPX: src="<%= Url.Action("GetPDF") %>"
Razor: src="@Url.Action("GetPDF")"

最终答案可能是

<object data="<%= Url.Action("GetPDF") %>" type="application/pdf" width="300" height="200">
    alt : <a href="data/test.pdf">test.pdf</a>
</object>

如果您想将PDF作为Stream返回,那么您需要

public FileStreamResult GetPDF()
{
    FileStream fs = new FileStream("c:\\PeterPDF2.pdf", FileMode.Open, FileAccess.Read);
    return File(fs, "application/pdf");
}