.NET Framework 4.5.2+
.NET Framework 4.5.2+
.NET Standard 2.0+

SubDocument.GetOpenXmlBytes(DocumentRange) Method

Exports the content of the specified document range as a document in Office Open XML (Docx) format and returns a byte array with this document.

Namespace: DevExpress.XtraRichEdit.API.Native

Assembly: DevExpress.RichEdit.v20.1.Core.dll

Declaration

byte[] GetOpenXmlBytes(
    DocumentRange range
)
Function GetOpenXmlBytes(
    range As DocumentRange
) As Byte()

Parameters

Name Type Description
range DocumentRange

A DocumentRange object representing the range to convert to OpenXML.

Returns

Type Description
Byte[]

An array of bytes representing the document content in OpenXML format.

Remarks

You can specify export options via the RichEditDocumentExportOptions.OpenXml property in the RichEditControl.BeforeExport event handler or use another GetOpenXmlBytes method overload.

If you operate with a selection range, the GetOpenXmlBytes method should be enclosed within a DocumentRange.BeginUpdateDocument - DocumentRange.EndUpdateDocument method pair. Otherwise, an incorrect document model might be selected, resulting in an exception "Error: specified document position or range belongs to other document or subdocument" being thrown.

To retrieve the section settings, make sure that the range contains the last section's paragraph. Otherwise, the section settings are reset to the default.

Examples

This code snippet illustrates how to export the selected range to the string in DOCX (OpenXML) format.

 if (this.richEditControl.Document.Selection.Length > 0) 
{
                    DevExpress.XtraRichEdit.API.Native.DocumentRange selection = richEditControl.Document.Selection;
                    DevExpress.XtraRichEdit.API.Native.SubDocument doc = selection.BeginUpdateDocument();
                    bytes = doc.GetOpenXmlBytes(selection);
                    selection.EndUpdateDocument(doc);
                }
                else 
{
                    bytes = richEditControl.Document.GetOpenXmlBytes(richEditControl.Document.Range);
                }
See Also