WebDocumentViewerOperationLogger Class
A service that allows you to handle and log report processing and document generation events in the Web Document Viewer control.
Namespace: DevExpress.XtraReports.Web.WebDocumentViewer
Assembly: DevExpress.XtraReports.v24.2.Web.dll
NuGet Package: DevExpress.Web.Reporting.Common
Declaration
Remarks
You can use a WebDocumentViewerOperationLogger class descendant to perform necessary actions at all stages of the Document Viewer lifecycle. You can modify the report and document settings, and execute custom code before a document is built, exported, or printed.
For this, create the WebDocumentViewerOperationLogger class descendant, override appropriate methods related to your task, and register the class as a service in your application.
Example: Log the Print Action
using DevExpress.XtraReports.Web.WebDocumentViewer;
using DevExpress.XtraPrinting;
using System;
// ...
public class MyOperationLogger : WebDocumentViewerOperationLogger {
public override void ExportDocument(string documentId, string format, DevExpress.XtraPrinting.ExportOptions options, PrintingSystemBase printingSystem) {
if (format == "printpdf") {
// A customer clicked the "Print" or "Print Page" button
}
base.ExportDocument(documentId, format, options, printingSystem);
}
}
Example: Prohibit Export to Any Format Except PDF
The following example restricts report export to any format except PDF. It demonstrates a server-side method that is preferable to a method that uses a client-side API in certain scenarios.
Override the ExportDocument method in the WebDocumentViewerOperationLogger descendant:
using DevExpress.XtraReports.Web.WebDocumentViewer;
using DevExpress.XtraPrinting;
using System;
// ...
public class MyOperationLogger : WebDocumentViewerOperationLogger {
public override void ExportDocument(string documentId, string format, ExportOptions options, PrintingSystemBase printingSystem) {
if (format != "pdf") {
throw new NotSupportedException(String.Format("Export to {0} format is not allowed!", format.ToUpper()));
}
// Specify the default PDF export options.
options.Pdf.Assign(new PdfExportOptions());
base.ExportDocument(documentId, format, options, printingSystem);
}
}
If you need to build report documents synchronously, override the BuildStarting method instead. This may be necessary when you need to access HttpContext in the report control’s BeforePrint event handler.
Register the Service
Register the MyOperationLogger service at application startup:
using DevExpress.XtraReports.Web.WebDocumentViewer;
// ...
protected void Application_Start(object sender, System.EventArgs e) {
// ...
DefaultWebDocumentViewerContainer.RegisterSingleton<WebDocumentViewerOperationLogger, MyOperationLogger>();
}