PdfIntegrationProviderLiteStorageProvider Property |
Namespace: RadPdf.Integration
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>