Visualizador de Pdf em MVC para mostrar o conteúdo de pdf em vista
quero mostrar o documento pdf em uma vista. Primeiro estou convertendo a página html para .pdf que contém a informação como:
o código no controlador é:
Stream stream = HtmlToPdfBuilder.GetHtmlForm(model.Type, 16);
Se eu devolver {[[1]}, vou receber como gravar, gravar como caixa de diálogo.
não quero esta caixa de diálogo, quero mostrar apenas o conteúdo em pdf dentro da página .
Existe algum visualizador de pdf no MVC para que eu possa mostrar o conteúdo em uma vista apenas usando algum controlo
2 answers
Código de exemplo: Vista parcial
@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>
Chamada do controlador:
public ActionResult GeneratePDF(ViewModel model)
{
byte[] bytes = OpenPDFAndGetBytes("Thepdfname");
return File(bytes, "application/pdf");
}
public ActionResult RenderPDF(LabelViewModel model)
{
return PartialView(model);
}
Vista principal:
@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>
}
(editar: mudou a "vista principal" para uma ish do título)
A forma como um ficheiro PDF é apresentado depende do navegador do utilizador. Não acho que haja uma verdadeira "solução" para o teu problema.
Quando tive este problema, passei o ficheiro PDF para várias imagens PNG no servidor, usando a biblioteca GhostScript e depois referenciei os ficheiros PNG na minha vista.