Visualizador de Pdf em MVC para mostrar o conteúdo de pdf em vista

Tenho uma vista chamada ShowDocument.cshtml.

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

Author: fero, 2012-12-05

2 answers

Isto pode não ser exactamente o que queres, mas pode satisfazer as tuas necessidades. Você pode incorporar o PDF em uma vista parcial, em seguida, atualizar a vista parcial através do ajax com o PDF no botão Enviar formulário.

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)

 8
Author: retslig, 2018-08-01 12:09:30

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.

 1
Author: fero, 2012-12-05 10:54:28