Skip to main content
All docs

SubDocument.GetDocmBytes(DocumentRange, DocmDocumentExporterOptions) Method

Exports the range content in DOCM (Microsoft Office Open XML Macro-Enabled Document) format and returns a byte array with this content.

Namespace: DevExpress.XtraRichEdit.API.Native

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

NuGet Packages: DevExpress.RichEdit.Core, DevExpress.Win.Navigation


byte[] GetDocmBytes(
    DocumentRange range,
    DocmDocumentExporterOptions options


Name Type Description
range DocumentRange

The range to convert.

options DocmDocumentExporterOptions

An object that contains export options.


Type Description

The range content in DOCM format.


If you work with a selection range, make sure that the GetDocmBytes method is enclosed with the DocumentRange.BeginUpdateDocument - DocumentRange.EndUpdateDocument method pair. Otherwise, an incorrect document model might be selected, and the “Error: specified document position or range belongs to other document or subdocument” exception is thrown.

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

using (RichEditDocumentServer wordProcessor = new RichEditDocumentServer())
    Document document = wordProcessor.Document;
    DocmDocumentExporterOptions exportOptions = wordProcessor.Options.Export.Docm;
    exportOptions.ExportedDocumentProperties = DocumentPropertyNames.None;
    byte[] bytes = document.GetDocmBytes(document.Range, exportOptions);
    File.WriteAllBytes(@"D:\testdoc.docm", bytes);
See Also