我有一个名为ShowDocument.cshtml查看。
我要显示在浏览PDF文档。 首先我在HTML页面转换成其包含的信息为.PDF:
在控制器中的代码是:
Stream stream = HtmlToPdfBuilder.GetHtmlForm(model.Type, 16);
如果我给回File(stream, "application/pdf", "Authorization.pdf")
我会得到尽可能保存,另存为对话框。
我不想要这个对话框,我想只显示在页面内的PDF内容。
那么,有没有在任何MVC PDF阅读器,这样我只能用一些控制显示在查看内容
这可能不是正是你想要的,但可能满足您的需要。 您可以嵌入PDF中的局部视图然后更新通过AJAX与窗体上的PDF的局部视图提交按钮。
示例代码:局部视图
@model Test.Models.ViewModel
<style type="text/css">
#pdfbox
{
width:600px;
height:400px;
border: 5px solid #ccc;
}
</style>
<object id='pdfbox' type="application/pdf" data="@Url.Action("GeneratePDF", "Home", Model)">
Click @Html.ActionLink("here", "GeneratePDF", "Home") to view the file.
</object>
控制器电话:
public ActionResult GeneratePDF(ViewModel model)
{
byte[] bytes = OpenPDFAndGetBytes("Thepdfname");
return File(bytes, "application/pdf");
}
public ActionResult RenderPDF(LabelViewModel model)
{
return PartialView(model);
}
主要观点:
@using (Ajax.BeginForm("RenderPDF", "Home", new AjaxOptions { UpdateTargetId = "pdf" }))
{
<table>
<tr>
<td>
<fieldset>
<legend>Fill the form:</legend>
Some form junk can go here
<br />
<input type="submit" value="Display PDF" />
</fieldset>
</td>
<td>
<div id='pdf'>
@{
Html.RenderPartial("RenderPDF", Model);
}
</div>
</td>
</tr>
</table>
}
(编辑:改变“主视图”发送给标题ISH)
如何显示PDF文件取决于用户的浏览器。 我不认为有一个真正的“解决方案”为你的问题。
当我有这个问题我提供的PDF文件到多个PNG图像使用GhostScript的库在服务器上,然后在我的观点中引用的PNG文件。