Click or drag to resize

PdfIntegrationProviderOnDocumentSaving Method

Called before a document is saved.

Namespace:  RadPdf.Integration
Assembly:  RadPdf (in RadPdf.dll) Version: 3.22.0.0 (3.22.0.0)
Syntax
public virtual void OnDocumentSaving(
	DocumentSavingEventArgs e
)

Parameters

e
Type: RadPdf.IntegrationDocumentSavingEventArgs
An object (defined by DocumentSavingEventArgs) that contains event data.
Remarks
Inheriting classes can override this method to perform other tasks, modify aspects of saving the document, or cancel the save all together. If this method is overridden in an inheriting class, you must call the base implementation.
Examples
The following example overrides the default PdfIntegrationProvider to create a custom Integration Provider for the web application.
C#
using System;
using System.Web;

using RadPdf.Data.Document.Objects;
using RadPdf.Data.Document.Objects.FormFields;
using RadPdf.Integration;

public class CustomPdfIntegrationProvider : PdfIntegrationProvider
{
    public override void OnDocumentSaving(DocumentSavingEventArgs e)
    {
        base.OnDocumentSaving(e);

        //Look for form field with the name "test" and see if it is null or has no value
        if( string.IsNullOrEmpty(((PdfTextField.)e.Document.Fields.Find("test")).Value) )
        {
            //Cancel save
            e.Cancel = true;
            e.CancelMessage = "The form field \"test\" is not completed.";
        }

        //Add rectangle to first page (saved to PDF, but not shown to viewer until document is re-loaded)
        PdfObject obj = e.Document.Pages[0].CreateObject(PdfObjectCreatable.ShapeRectangle);
        {
            obj.Left = 0;
            obj.Top = 0;
            obj.Width = 100;
            obj.Height = 100;
        }
    }
}
The following web.config file registers the above custom Integration Provider. This example assumes that CustomPdfIntegrationProvider is in the directory App_Code of your ASP.NET web application.
XML
<?xml version="1.0"?>
<configuration>
  <appSettings>
    <add key="RadPdfConnectionString" value="Server=.\SQLExpress;Database=RadPdf;Trusted_Connection=Yes;"/>
    <add key="RadPdfLicenseKey" value="DEMO"/>
    <add key="RadPdfIntegrationProvider" value="CustomPdfIntegrationProvider,App_Code"/>
  </appSettings>
  <system.web>
    <httpHandlers>
      <add path="RadPdf.axd" verb="GET,POST" type="RadPdf.Web.HttpHandler.PdfHttpHandler"/>
    </httpHandlers>
  </system.web>
  <!--
    The system.webServer element is for use with IIS 7 (and later) when Managed Pipeline Mode is set to "Integrated".
    It will be ignored in other versions of IIS.
    -->
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <handlers>
      <add path="RadPdf.axd" verb="GET,POST" name="PdfHttpHandler" preCondition="integratedMode" type="RadPdf.Web.HttpHandler.PdfHttpHandler"/>
    </handlers>
  </system.webServer>
</configuration>
See Also