RAD PDF - Interactive Demonstrations

In this example, we protect a PDF file from being downloaded or fully printed. While the user can still navigate, search, and select text in the document, the PDF itself can NOT be downloaded. (Text search and selection can optionally be turned off too using other PdfDocumentSettings.) For more advanced configurations, a PdfIntegrationProvider can instead be used to hook into each download or print event and optionally cancel each request based on custom logic. It's important to note that while RAD PDF can prevent access to the PDF itself, a user may still be able to use some content copying tools (e.g. resource inspection, screen capture) as browsers don't typically let a website disable them without requiring your users to install a plugin or other software. These limitations will be present in almost any web friendly solution similar to RAD PDF.

RAD PDF Sample Source Files

Default.aspx

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

<%@ Register Assembly="RadPdf" Namespace="RadPdf.Web.UI" TagPrefix="radPdf" %>

<!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>RAD PDF Sample</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <radPdf:PdfWebControlLite ID="PdfWebControl1" RunAt="server"
            Height="600px" 
            Width="100%" 
            HideBookmarks="True"
            HideEditMenu="True"
            HideFileMenu="True"
            HideThumbnails="True"
            ViewerPageLayoutDefault="SinglePageContinuous"
            />
    </div>
    </form>
</body>
</html>

Default.aspx.cs

using System;
using RadPdf.Data.Document;
using RadPdf.Lite;

partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack) 
        {
            // Get PDF as byte array from file (or database, browser upload, remote storage, etc)
            byte[] pdfData = System.IO.File.ReadAllBytes(@"C:\demo.pdf");
            
            // Set document settings, preventing PDF download and printing, but still allowing search, text selection, and viewing
            PdfLiteSettings settings = new PdfLiteSettings();
            settings.DocumentSettings = PdfDocumentSettings.IsReadOnly | PdfDocumentSettings.DisableDownload | PdfDocumentSettings.DisablePrint;

            // Load PDF byte array into RAD PDF, 
            this.PdfWebControl1.CreateDocument("Document Name", pdfData, settings);
        }
    }
}

Default.aspx

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

<%@ Register Assembly="RadPdf" Namespace="RadPdf.Web.UI" TagPrefix="radPdf" %>

<!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>RAD PDF Sample</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <radPdf:PdfWebControlLite ID="PdfWebControl1" RunAt="server"
            Height="600px" 
            Width="100%" 
            HideBookmarks="True"
            HideEditMenu="True"
            HideFileMenu="True"
            HideThumbnails="True"
            ViewerPageLayoutDefault="SinglePageContinuous"
            />
    </div>
    </form>
</body>
</html>

Default.aspx.vb

Option Explicit On
Option Strict On

Imports RadPdf.Data.Document
Imports RadPdf.Lite

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Not IsPostBack Then

            ' Get PDF as byte array from file (or database, browser upload, remote storage, etc)
            Dim pdfData As Byte() = System.IO.File.ReadAllBytes("C:\demo.pdf")

            ' Set document settings, preventing PDF download and printing, but still allowing search, text selection, and viewing
            Dim settings As PdfLiteSettings = New PdfLiteSettings()
            settings.DocumentSettings = PdfDocumentSettings.IsReadOnly Or PdfDocumentSettings.DisableDownload Or PdfDocumentSettings.DisablePrint

            ' Load PDF byte array into RAD PDF, 
            this.PdfWebControl1.CreateDocument("Document Name", pdfData, settings)
        End If
    End Sub
End Class
RAD PDF is a Red Software product - ©2007-2024 Red Software