ASP.NET MVC - Export PDF to HTML in C# and .NET


Complete code

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SautinSoft;

public partial class _Default : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        uplPDF.Attributes["onchange"] = "UploadFile(this)";

        if (!this.IsPostBack)
        {
            Session["page"] = 1;
        }
    }

    protected void btnNext_Click(object sender, EventArgs e)
    {
        int page = (int)Session["page"];
        page++;
        if (IsPageInRange(page))
        {
            Session["page"] = page;
            ShowPdf();
        }
    }

    protected void btnPrev_Click(object sender, EventArgs e)
    {
        int page = (int)Session["page"];
        page--;
        if (IsPageInRange(page))
        {
            Session["page"] = page;
            ShowPdf();
        }
    }

    protected void Upload(object sender, EventArgs e)
    {        
        lblMessage.Visible = true;
        PdfFocus f = new PdfFocus();
        f.OpenPdf(uplPDF.FileBytes);
        Session["focus"] = f;
        ShowPdf();

    }
    protected bool IsPageInRange(int page)
    {
        if (Session["focus"] != null)
        {
            PdfFocus f = (PdfFocus)Session["focus"];

            if (page > 0 && page <= f.PageCount)
                return true;
        }
        return false;
    }

    private void ShowPdf()
    {
        if (Session["focus"] != null)
        {
            PdfFocus f = (PdfFocus)Session["focus"];
            
            if (f.PageCount > 0)
            {
                f.HtmlOptions.IncludeImageInHtml = true;
                f.EmbeddedImagesFormat = PdfFocus.eImageFormat.Png;

                int page = (int)Session["page"];

                string html = f.ToHtml(page, page);
                htmlLiteral.Text = html;
                txtPage.Text = String.Format("Page {0} of {1}", page, f.PageCount);
            }
        }
    }
}

Download


 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link rel="stylesheet" href="/lib/bootstrap/dist/css/bootstrap.css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script>
        $(document).ready(function () {

            var zoom = 1.0;
            var zoomStep = 0.05;
            var margin = 0;
            var marginStep = 30;

            $('#zoom-in').click(function () {
                margin += marginStep;
                $('#page-window').css({ transform: 'scale(' + (zoom += zoomStep) + ')' });
                var w = $('#page-window').css("width");

                $('#page-window').css({ "margin-left": (margin) });
                $('#page-window').css({ "margin-top": (margin) });
            })
            $('#zoom-out').click(function () {

                margin -= marginStep;

                $('#page-window').css({ transform: 'scale(' + (zoom -= zoomStep) + ')' });
                $('#page-window').css({ "margin-left": margin });
                $('#page-window').css({ "margin-top": margin });


            })
        });
    </script>

    <script type="text/javascript">
        function UploadFile(fileUpload) {
            if (fileUpload.value != '') {
                document.getElementById("<%=btnUpload.ClientID %>").click();
            }
        }
    </script>

</head>
<body>
    <form class="panel-body" id="form1" runat="server">
        <div class="panel">
            <asp:FileUpload ID="uplPDF" runat="server" ToolTip="Please select a PDF document." /><br />
            <asp:Label ID="lblMessage" runat="server" Text="File uploaded successfully." ForeColor="Green"
                Visible="false" />
            <asp:Button CssClass="btn btn-primary" ID="btnUpload" Text="Upload" runat="server" OnClick="Upload" Style="display: none" />
            <asp:Button CssClass="btn btn-primary" ID="btnPrev" runat="server" Text="Prev" OnClick="btnPrev_Click" /> 
        <asp:TextBox ID="txtPage" runat="server"></asp:TextBox> 
        <asp:Button CssClass="btn btn-primary" ID="btnNext" runat="server" Text="Next" OnClick="btnNext_Click" />
            <span class="text-center">
                <input class="btn btn-primary" type="button" value="+" id="zoom-in" /> 
        <input class="btn btn-primary" type="button" value="-" id="zoom-out" />
            </span>
        </div>
        <div id="page-window">
            <asp:Literal ID="htmlLiteral" runat="server" />
        </div>

    </form>

</body>
</html>

    

Download

Imports System
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Imports System.IO
Imports SautinSoft

Partial Public Class _Default
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        uplPDF.Attributes("onchange") = "UploadFile(this)"

        If Not Me.IsPostBack Then
            Session("page") = 1
        End If
    End Sub

    Protected Sub btnNext_Click(ByVal sender As Object, ByVal e As EventArgs)
        Dim page As Integer = CInt(Fix(Session("page")))
        page += 1
        If IsPageInRange(page) Then
            Session("page") = page
            ShowPdf()
        End If
    End Sub

    Protected Sub btnPrev_Click(ByVal sender As Object, ByVal e As EventArgs)
        Dim page As Integer = CInt(Fix(Session("page")))
        page -= 1
        If IsPageInRange(page) Then
            Session("page") = page
            ShowPdf()
        End If
    End Sub

    Protected Sub Upload(ByVal sender As Object, ByVal e As EventArgs)
        lblMessage.Visible = True
        Dim f As New PdfFocus()
        f.OpenPdf(uplPDF.FileBytes)
        Session("focus") = f
        ShowPdf()

    End Sub
    Protected Function IsPageInRange(ByVal page As Integer) As Boolean
        If Session("focus") IsNot Nothing Then
            Dim f As PdfFocus = CType(Session("focus"), PdfFocus)

            If page > 0 AndAlso page <= f.PageCount Then
                Return True
            End If
        End If
        Return False
    End Function

    Private Sub ShowPdf()
        If Session("focus") IsNot Nothing Then
            Dim f As PdfFocus = CType(Session("focus"), PdfFocus)

            If f.PageCount > 0 Then
                f.HtmlOptions.IncludeImageInHtml = True
                f.EmbeddedImagesFormat = PdfFocus.eImageFormat.Png

                Dim page As Integer = CInt(Fix(Session("page")))
                Dim html As String = f.ToHtml(page, page)
                htmlLiteral.Text = html
                txtPage.Text = String.Format("Page {0} of {1}", page, f.PageCount)
            End If
        End If
    End Sub
End Class

Download

<%@ Page Language="VB" AutoEventWireup="true"  CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link rel="stylesheet" href="/lib/bootstrap/dist/css/bootstrap.css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script>
        $(document).ready(function () {

            var zoom = 1.0;
            var zoomStep = 0.05;
            var margin = 0;
            var marginStep = 30;

            $('#zoom-in').click(function () {
                margin += marginStep;
                $('#page-window').css({ transform: 'scale(' + (zoom += zoomStep) + ')' });
                var w = $('#page-window').css("width");

                $('#page-window').css({ "margin-left": (margin) });
                $('#page-window').css({ "margin-top": (margin) });
            })
            $('#zoom-out').click(function () {

                margin -= marginStep;

                $('#page-window').css({ transform: 'scale(' + (zoom -= zoomStep) + ')' });
                $('#page-window').css({ "margin-left": margin });
                $('#page-window').css({ "margin-top": margin });


            })
        });
    </script>

    <script type="text/javascript">
        function UploadFile(fileUpload) {
            if (fileUpload.value != '') {
                document.getElementById("<%=btnUpload.ClientID %>").click();
            }
        }
    </script>

</head>
<body>
    <form class="panel-body" id="form1" runat="server">
        <div class="panel">
            <asp:FileUpload ID="uplPDF" runat="server" ToolTip="Please select a PDF document." /><br />
            <asp:Label ID="lblMessage" runat="server" Text="File uploaded successfully." ForeColor="Green"
                Visible="false" />
            <asp:Button CssClass="btn btn-primary" ID="btnUpload" Text="Upload" runat="server" OnClick="Upload" Style="display: none" />
            <asp:Button CssClass="btn btn-primary" ID="btnPrev" runat="server" Text="Prev" OnClick="btnPrev_Click" /> 
        <asp:TextBox ID="txtPage" runat="server"></asp:TextBox> 
        <asp:Button CssClass="btn btn-primary" ID="btnNext" runat="server" Text="Next" OnClick="btnNext_Click" />
            <span class="text-center">
                <input class="btn btn-primary" type="button" value="+" id="zoom-in" /> 
        <input class="btn btn-primary" type="button" value="-" id="zoom-out" />
            </span>
        </div>
        <div id="page-window">
            <asp:Literal ID="htmlLiteral" runat="server" />
        </div>

    </form>

</body>
</html>

    

Download


If you need a new code example or have a question: email us at support@sautinsoft.com or ask at Online Chat (right-bottom corner of this page) or use the Form below:



Questions and suggestions from you are always welcome!

We are developing .Net components since 2002. We know PDF, DOCX, RTF, HTML, XLSX and Images formats. If you need any assistance with creating, modifying or converting documents in various formats, we can help you. We will write any code example for you absolutely free.