Upload and Show PDF in Website


Just follow these steps.

1) Create a Class Library project. I create a Visual C# Class Library project using Visual Studio and select C# as language and give it a name. I give my project name ShMyPdf.

I change the existing class. I change class name to DisplayPdf and it is inherited from WebControl class.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ShMyPdf
{
    public class DisplayPdf : WebControl
   
{
        private string _filepath;
        public string FilePath
        {
            get
           
{
                return _filepath;
            }
            set
           
{
                if (string.IsNullOrEmpty(value))
                {
                    _filepath = string.Empty;
                }
                else
               
{
                    int tild = -1;
                    //check ~ symbol including in pdf path then remove
                   
tild = value.IndexOf('~');
                    if (tild != -1)
                    {
                        _filepath = value.Substring((tild + 2)).Trim();
                    }
                    else
                   
{
                        _filepath = value;
                    }
                }
            }
        }  

        protected override void RenderContents(HtmlTextWriter writer)
        {
            try
            
{
                StringBuilder sb = new StringBuilder();
                sb.Append("<iframe src=" + Convert.ToString(FilePath) + " ");
                //fix height and width
               
sb.Append("width=800px height=500px");
                sb.Append("<View PDF: <a href=" + Convert.ToString(FilePath) + "</a></p> ");
                sb.Append("</iframe>");
                writer.RenderBeginTag(HtmlTextWriterTag.Div);
                writer.Write(Convert.ToString(sb));
                writer.RenderEndTag();
            }
            catch
           
{
                //If any problem in the PDF at that time display below information
               
writer.RenderBeginTag(HtmlTextWriterTag.Div);
                writer.Write("PDF Control...");
                writer.RenderEndTag();
            }
        }
    }
}  

  

2) Run the project. It will generate a dll called ShMyPdf.dll.


3) Create a new ASP.NET Web Application using Visual Studio. I give my application DemoPDFViewer. I select C# as language in Visual Studio.


In this application, user can upload a PDF file and view it.


a. Add a reference to ShMyPdf.dll

b. Make a PDF folder on the site and make sure you have write permissions set on this folder.

c. Add Upload PDF functionality 


This is how my page looks like.



ASPX Code :

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

<%
@ Register Assembly="ShMyPdf" Namespace="ShMyPdf" TagPrefix="PdfViewer" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head runat="server">
    <
title>PDF View Online</title>
</
head>
<
body>
    <
form id="form1" runat="server">
    <
div>
        <
center>
            <
table>
                <
tr>
                    <
td colspan="2" align="center" style="font-family: Verdana; font-size: larger">
                       
Online PDF Viewer
                    </td>
                </
tr>
                <
tr>
                    <
td>
                       
Upload PDF File
                    </td>
                    <
td>
                        <
asp:FileUpload ID="fup" runat="server" />
                    </
td>
                </
tr>
                <
tr>
                    <
td colspan="2">
                        <
asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="btnUpload_Click" />
                    </
td>
                </
tr>
                <
tr>
                    <
td>
                        <
asp:Label ID="lblMsg" runat="server" ViewStateMode="Disabled" Font-Bold="true" ForeColor="Red"></asp:Label>
                    </
td>
                </
tr>
                <
tr>
                    <
td colspan="2" align="center">
                        <
asp:Button ID="btnView" Text="View PDF" runat="server" Visible="false" OnClick="btnView_Click" />
                    </
td>
                </
tr>
                <
tr>
                    <
td colspan="2" id="pnlPDFViewer" visible="false" runat="server">
                        <
asp:HyperLink ID="HyperLink1" runat="server">Open PDF into New Page</asp:HyperLink>
                        <
br />
                        <
PdfViewer:DisplayPdf ID="displaypdf1" runat="server" BorderStyle="Inset" BorderWidth="2px"
                           
Style="height: 500px;" Width="800px" />
                    </
td>
                </
tr>
            </
table>
        </
center>
    </
div>
    </
form>
</
body>
</
html>


CS Code:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    public string Uploadedfilename { get { return Convert.ToString(ViewState["filename"]); } set { ViewState["filename"] = value; } }

    protected void btnUpload_Click(object sender, EventArgs e)
    {
        if (fup.HasFile)
        {
            string strFilePath = Server.MapPath("PDF") + "\\";
            Uploadedfilename = Convert.ToString(Guid.NewGuid()) + ".pdf";
            strFilePath = strFilePath + Uploadedfilename;
            fup.SaveAs(strFilePath);
            lblMsg.ForeColor = Color.Blue;
            lblMsg.Text = "PDF File Upload Successfully";
            btnView.Visible = true;
        }
        else
       
{
            lblMsg.Text = "Please Upload PDF File";
        }
    }
    protected void btnView_Click(object sender, EventArgs e)
    {
        pnlPDFViewer.Visible = true;
        displaypdf1.FilePath = @"~/pdf/" + Uploadedfilename;
        HyperLink1.NavigateUrl = @"~/pdf/" + Uploadedfilename;
    }
}


4) compile code and run application.

 

 


Similar Articles