PdfLiteStorageProvider Class |
Namespace: RadPdf.Lite
The PdfLiteStorageProvider type exposes the following members.
Name | Description | |
---|---|---|
PdfLiteStorageProvider |
Creates a new instance of the PdfLiteStorageProvider class.
|
Name | Description | |
---|---|---|
DeleteData |
Deletes all data from the PdfLiteStorageProvider for the given session.
| |
Equals | (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetData |
Gets data from the PdfLiteStorageProvider for the given session and subtype.
| |
GetDataStream |
Gets data, as a Stream from the PdfLiteStorageProvider for the given session.
| |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
SetData |
Sets data from the PdfLiteStorageProvider for the given session.
| |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
The PdfLiteStorageProvider is responsible for storing information associated with a given Lite Document session.
By default, RAD PDF uses the DefaultPdfLiteStorageProvider which uses the RAD PDF System Service and its storage.
using System; using System.IO; using System.Web; using RadPdf.Integration; public class CustomPdfIntegrationProvider : PdfIntegrationProvider { public CustomPdfIntegrationProvider() : base() { this.LiteStorageProvider = new CustomPdfLiteStorageProvider(@"C:\RadPdfStorage\"); } }
using System; using System.IO; using System.Web; using RadPdf.Lite; public class CustomPdfLiteStorageProvider : PdfLiteStorageProvider { private readonly DirectoryInfo _dir; public CustomPdfLiteStorageProvider(string path) : base() { _dir = new DirectoryInfo(path); if (!_dir.Exists) { _dir.Create(); } } private string GetPath(PdfLiteSession session, int subtype) { return Path.Combine(_dir.FullName, session.ID.ToString("N") + "-" + subtype.ToString() + ".dat"); } public override void DeleteData(PdfLiteSession session) { FileInfo[] files = _dir.GetFiles(session.ID.ToString("N") + "*"); foreach (FileInfo file in files) { lock (string.Intern(file.FullName)) { file.Delete(); } } } public override byte[] GetData(PdfLiteSession session, int subtype) { string path = GetPath(session, subtype); lock (string.Intern(path)) { if (!File.Exists(path)) { return null; } return File.ReadAllBytes(path); } } public override void SetData(PdfLiteSession session, int subtype, byte[] value) { string path = GetPath(session, subtype); lock (string.Intern(path)) { File.WriteAllBytes(path, value); } } }
<?xml version="1.0"?> <configuration> <appSettings> <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>