Back to Devexpress

RichEditControl.BeforeExport Event

windowsforms-devexpress-dot-xtrarichedit-dot-richeditcontrol-f27c41a3.md

latest8.4 KB
Original Source

RichEditControl.BeforeExport Event

Occurs before the document is saved (exported to a certain format).

Namespace : DevExpress.XtraRichEdit

Assembly : DevExpress.XtraRichEdit.v25.2.dll

NuGet Package : DevExpress.Win.RichEdit

Declaration

csharp
public event BeforeExportEventHandler BeforeExport
vb
Public Event BeforeExport As BeforeExportEventHandler

Event Data

The BeforeExport event's data class is BeforeExportEventArgs. The following properties provide information specific to this event:

PropertyDescription
CustomPropertiesProvides access to the document’s custom properties.
DocumentFormatGets the format of the document being exported or saved.
OptionsProvides access to the exporter options.

Remarks

The BeforeExport event enables you to adjust the exporter options as required.

The BeforeExport event occurs after the RichEditControl.SaveDocument or RichEditControl.SaveDocumentAs method call.

You can check the Document.RequiredExportCapabilities to be sure that the chosen export format supports them.

The code sample below shows how specify export options for different formats in the RichEditControl.BeforeExport event handler.

csharp
private void RichEditControl_BeforeExport(object sender, BeforeExportEventArgs e)
{
    if (e.DocumentFormat == DocumentFormat.PlainText)
    {
        //Include document fields in the exported plain text:
        PlainTextDocumentExporterOptions plainTextOptions = e.Options as PlainTextDocumentExporterOptions;
        plainTextOptions.ExportHiddenText = true;
        plainTextOptions.FieldCodeEndMarker = ">";
        plainTextOptions.FieldCodeStartMarker = "[<";
        plainTextOptions.FieldResultEndMarker = "]";
    }

    if (e.DocumentFormat == DocumentFormat.Docx)
    {
        //Specify what DOCX document properties to export:
        OpenXmlDocumentExporterOptions docxOptions = e.Options as OpenXmlDocumentExporterOptions;
        docxOptions.ExportedDocumentProperties = DocumentPropertyNames.Title | DocumentPropertyNames.LastModifiedBy | DocumentPropertyNames.Modified;
    }

    if (e.DocumentFormat == DocumentFormat.Html)
    {
        //Specify HTML export options:
        HtmlDocumentExporterOptions htmlOptions = e.Options as HtmlDocumentExporterOptions;
        htmlOptions.EmbedImages = true;
        htmlOptions.CssPropertiesExportType = CssPropertiesExportType.Style;
        htmlOptions.UseFontSubstitution = false;
    }
}
vb
Private Sub RichEditControl_BeforeExport(ByVal sender As Object, ByVal e As BeforeExportEventArgs)

    If e.DocumentFormat = DocumentFormat.PlainText Then
        'Include document fields in the exported plain text:
        Dim plainTextOptions As PlainTextDocumentExporterOptions = TryCast(e.Options, PlainTextDocumentExporterOptions)
        plainTextOptions.ExportHiddenText = True
        plainTextOptions.FieldCodeEndMarker = ">"
        plainTextOptions.FieldCodeStartMarker = "[<"
        plainTextOptions.FieldResultEndMarker = "]"
    End If

    If e.DocumentFormat = DocumentFormat.Docx Then
        'Specify what DOCX document properties to export:
        Dim docxOptions As OpenXmlDocumentExporterOptions = TryCast(e.Options, OpenXmlDocumentExporterOptions)
        docxOptions.ExportedDocumentProperties = DocumentPropertyNames.Title Or DocumentPropertyNames.LastModifiedBy Or DocumentPropertyNames.Modified
    End If

    If e.DocumentFormat = DocumentFormat.Html Then
        'Specify HTML export options:
        Dim htmlOptions As HtmlDocumentExporterOptions = TryCast(e.Options, HtmlDocumentExporterOptions)
        htmlOptions.EmbedImages = True
        htmlOptions.CssPropertiesExportType = CssPropertiesExportType.Style
        htmlOptions.UseFontSubstitution = False
    End If
End Sub

The following code snippets (auto-collected from DevExpress Examples) contain references to the BeforeExport event.

Note

The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.

winforms-richedit-build-a-mail-application/CS/RichEditSendMail/Form1.cs#L79

csharp
protected internal virtual AlternateView CreateHtmlView() {
    control.BeforeExport += OnBeforeExport;
    string htmlBody = control.Document.GetHtmlText(control.Document.Range, this);

winforms-richedit-export-the-document-into-an-outlook-mail-item/CS/Form1.cs#L62

csharp
control.BeforeExport += OnBeforeExport;
string htmlBody = control.Document.GetHtmlText(control.Document.Range, this);

how-to-customize-copy-and-paste-commands/CS/RichEditCustomCopyPaste/CustomCommands.cs#L19

csharp
RichEditControl richEditControl = (RichEditControl)Control;
richEditControl.BeforeExport += OnBeforeExport;
string htmlForClipboard = String.Empty;

winforms-richedit-build-a-mail-application/VB/RichEditSendMail/Form1.vb#L73

vb
Protected Friend Overridable Function CreateHtmlView() As AlternateView
    AddHandler control.BeforeExport, AddressOf OnBeforeExport
    Dim htmlBody As String = control.Document.GetHtmlText(control.Document.Range, Me)

winforms-richedit-export-the-document-into-an-outlook-mail-item/VB/Form1.vb#L62

vb
If Not Directory.Exists(tempFiles) Then Directory.CreateDirectory(tempFiles)
AddHandler control.BeforeExport, AddressOf OnBeforeExport
Dim htmlBody As String = control.Document.GetHtmlText(control.Document.Range, Me)

how-to-customize-copy-and-paste-commands/VB/CustomCommands.vb#L21

vb
Dim richEditControl As RichEditControl = DirectCast(Control, RichEditControl)
AddHandler richEditControl.BeforeExport, AddressOf OnBeforeExport
Dim htmlForClipboard As String = String.Empty

See Also

RequiredExportCapabilities

DocumentSaveOptions

SaveDocument

SaveDocumentAs

RichEditControl Class

RichEditControl Members

DevExpress.XtraRichEdit Namespace