Pdf Viewer in MVC to show the pdf contents in View

35,517

Solution 1

This may not be exactly what you want but might meet your need. You can embed the PDF in a partial view then update the partial view via ajax with the PDF on the form submit button.

Example code: Partial view

    @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>    

Controller call:

    public ActionResult GeneratePDF(ViewModel model)
    {

        byte[] bytes = OpenPDFAndGetBytes("Thepdfname");
        return File(bytes, "application/pdf");
    }

    public ActionResult RenderPDF(LabelViewModel model)
    {
        return PartialView(model);
    }

main view:

@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>
}

(Edit: Changed "main view" to a title ish)

Solution 2

How a PDF file is displayed depends on the user's browser. I don't think that there is a real "solution" for your problem.

When I had this problem I rendered the PDF file to multiple PNG images on the server using the GhostScript library and then referenced the PNG files in my view.

Share:
35,517
user1400915
Author by

user1400915

Updated on August 02, 2020

Comments

  • user1400915
    user1400915 over 3 years

    I have a View called ShowDocument.cshtml.

    I want to show the pdf document in a view. First I am converting the html page to .pdf which contains the information as :

    The code in the controller is:

    Stream stream = HtmlToPdfBuilder.GetHtmlForm(model.Type, 16);
    

    If I give return File(stream, "application/pdf", "Authorization.pdf"), I will be getting as save, save as dialog box.

    I do not want this dialog box ,I want to show the pdf content inside the page only .

    So Is there any pdf viewer in MVC so that I can show the content in a View only using some control