API Reference

Class

OdfDocument

Namespace OfficeIMO.OpenDocument
Assembly OfficeIMO.OpenDocument
Modifiers abstract

Common package lifecycle for ODT, ODS, and ODP documents.

Inheritance

  • Object
  • OdfDocument

Usage

This type appears in these public API surfaces even when no hand-authored example is attached directly to the page.

Methods

public Byte[] GetPackageEntryBytes(String path) #
Returns: Byte[]

Returns a defensive copy of one already-loaded package entry without resolving external links.

Parameters

path System.String requiredposition: 0
InspectContentSafety 2 overloads
public static OfficeContentSafetyReport InspectContentSafety(Byte[] documentBytes, OfficeContentSafetyOptions options = null, OdfLoadOptions loadOptions = null) #
Returns: OfficeContentSafetyReport

Inspects ODT, ODS, or ODP native visibility, geometry, contrast, notes, comments, and Unicode evidence.

Parameters

arg1 System.Byte[] requiredposition: 0
arg2 OfficeIMO.ContentSafety.OfficeContentSafetyOptions = null optionalposition: 1
arg3 OfficeIMO.OpenDocument.OdfLoadOptions = null optionalposition: 2
public static OfficeContentSafetyReport InspectContentSafety(String filePath, OfficeContentSafetyOptions options = null, OdfLoadOptions loadOptions = null) #
Returns: OfficeContentSafetyReport

Inspects an OpenDocument package without treating concealment as evidence of AI authorship.

Parameters

arg1 System.String requiredposition: 0
arg2 OfficeIMO.ContentSafety.OfficeContentSafetyOptions = null optionalposition: 1
arg3 OfficeIMO.OpenDocument.OdfLoadOptions = null optionalposition: 2
public OdfFeatureReport InspectFeatures() #
Returns: OdfFeatureReport

Inspects supported, preserved, and unsupported document features.

public static OfficeProvenanceReport InspectProvenance(String filePath, OfficeProvenanceOptions options = null) #
Returns: OfficeProvenanceReport

Inspects C2PA and IPTC provenance in an ODF package and its supported embedded images.

Parameters

filePath System.String requiredposition: 0
options OfficeIMO.Provenance.OfficeProvenanceOptions = null optionalposition: 1
Load 2 overloads
public static OdfDocument Load(String path, OdfLoadOptions options = null) #
Returns: OdfDocument

Loads an ODT, ODS, or ODP package and returns its native document type.

Parameters

path System.String requiredposition: 0
options OfficeIMO.OpenDocument.OdfLoadOptions = null optionalposition: 1
public static OdfDocument Load(Stream stream, OdfLoadOptions options = null) #
Returns: OdfDocument

Loads an ODT, ODS, or ODP stream and returns its native document type.

Parameters

stream System.IO.Stream requiredposition: 0
options OfficeIMO.OpenDocument.OdfLoadOptions = null optionalposition: 1
LoadAsync 2 overloads
public static async Task<OdfDocument> LoadAsync(String path, OdfLoadOptions options = null, CancellationToken cancellationToken = null) #
Returns: Task<OdfDocument>

Asynchronously loads an ODT, ODS, or ODP package from a path.

Parameters

path System.String requiredposition: 0
options OfficeIMO.OpenDocument.OdfLoadOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public static async Task<OdfDocument> LoadAsync(Stream stream, OdfLoadOptions options = null, CancellationToken cancellationToken = null) #
Returns: Task<OdfDocument>

Asynchronously loads an ODT, ODS, or ODP package from a caller-owned stream.

Parameters

stream System.IO.Stream requiredposition: 0
options OfficeIMO.OpenDocument.OdfLoadOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
LoadFlatXml 2 overloads
public static OdfDocument LoadFlatXml(Stream stream, OdfLoadOptions options = null) #
Returns: OdfDocument

Loads a flat ODT, ODS, or ODP XML document.

Parameters

stream System.IO.Stream requiredposition: 0
options OfficeIMO.OpenDocument.OdfLoadOptions = null optionalposition: 1
public static OdfDocument LoadFlatXml(String path, OdfLoadOptions options = null) #
Returns: OdfDocument

Loads a flat ODT, ODS, or ODP XML document from a path.

Parameters

path System.String requiredposition: 0
options OfficeIMO.OpenDocument.OdfLoadOptions = null optionalposition: 1
RemoveProvenance 2 overloads
public static OfficeProvenanceRemovalResult RemoveProvenance(String inputPath, String outputPath, OfficeProvenanceRemovalOptions options = null) #
Returns: OfficeProvenanceRemovalResult

Removes selected provenance and atomically writes an ODF package.

Parameters

arg1 System.String requiredposition: 0
arg2 System.String requiredposition: 1
arg3 OfficeIMO.Provenance.OfficeProvenanceRemovalOptions = null optionalposition: 2
public static OfficeProvenanceRemovalResult RemoveProvenance(Byte[] packageBytes, String fileName = "document.odt", OfficeProvenanceRemovalOptions options = null) #
Returns: OfficeProvenanceRemovalResult

Removes selected provenance from encoded ODF package bytes.

Parameters

arg1 System.Byte[] requiredposition: 0
arg2 System.String = "document.odt" optionalposition: 1
arg3 OfficeIMO.Provenance.OfficeProvenanceRemovalOptions = null optionalposition: 2
RemoveSelectedContent 2 overloads
public static OfficeContentCleanupResult RemoveSelectedContent(Byte[] documentBytes, OfficeContentCleanupSelection selection, OfficeContentCleanupOptions options = null, OdfLoadOptions loadOptions = null) #
Returns: OfficeContentCleanupResult

Removes exact selected OpenDocument text nodes and verifies the preservation-aware rewritten package.

Parameters

documentBytes System.Byte[] requiredposition: 0
selection OfficeIMO.ContentSafety.OfficeContentCleanupSelection requiredposition: 1
options OfficeIMO.ContentSafety.OfficeContentCleanupOptions = null optionalposition: 2
loadOptions OfficeIMO.OpenDocument.OdfLoadOptions = null optionalposition: 3
public static OfficeContentCleanupResult RemoveSelectedContent(String inputPath, String outputPath, OfficeContentCleanupSelection selection, OfficeContentCleanupOptions options = null, OdfLoadOptions loadOptions = null) #
Returns: OfficeContentCleanupResult

Atomically writes an explicitly cleaned OpenDocument artifact.

Parameters

inputPath System.String requiredposition: 0
outputPath System.String requiredposition: 1
selection OfficeIMO.ContentSafety.OfficeContentCleanupSelection requiredposition: 2
options OfficeIMO.ContentSafety.OfficeContentCleanupOptions = null optionalposition: 3
loadOptions OfficeIMO.OpenDocument.OdfLoadOptions = null optionalposition: 4
Save 3 overloads
public OdfSaveResult Save(OdfSaveOptions options = null) #
Returns: OdfSaveResult

Saves to the current path and returns the serialized bytes with entry-level diagnostics.

Parameters

options OfficeIMO.OpenDocument.OdfSaveOptions = null optionalposition: 0
public OdfSaveResult Save(String path, OdfSaveOptions options = null) #
Returns: OdfSaveResult

Saves to a path and returns the serialized bytes with entry-level diagnostics.

Parameters

path System.String requiredposition: 0
options OfficeIMO.OpenDocument.OdfSaveOptions = null optionalposition: 1
public OdfSaveResult Save(Stream destination, OdfSaveOptions options = null) #
Returns: OdfSaveResult

Writes to a stream and returns the serialized bytes with entry-level diagnostics.

Parameters

destination System.IO.Stream requiredposition: 0
options OfficeIMO.OpenDocument.OdfSaveOptions = null optionalposition: 1
SaveAsync 4 overloads
public Task<OdfSaveResult> SaveAsync(CancellationToken cancellationToken = null) #
Returns: Task<OdfSaveResult>

Asynchronously saves to the original path used to load or first save the document.

Parameters

cancellationToken System.Threading.CancellationToken = null optionalposition: 0
public Task<OdfSaveResult> SaveAsync(OdfSaveOptions options, CancellationToken cancellationToken = null) #
Returns: Task<OdfSaveResult>

Asynchronously saves to the original path with optional save settings.

Parameters

options OfficeIMO.OpenDocument.OdfSaveOptions requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task<OdfSaveResult> SaveAsync(String path, OdfSaveOptions options = null, CancellationToken cancellationToken = null) #
Returns: Task<OdfSaveResult>

Asynchronously saves to a path and returns the serialized bytes with entry-level diagnostics.

Parameters

path System.String requiredposition: 0
options OfficeIMO.OpenDocument.OdfSaveOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public async Task<OdfSaveResult> SaveAsync(Stream destination, OdfSaveOptions options = null, CancellationToken cancellationToken = null) #
Returns: Task<OdfSaveResult>

Asynchronously writes to a stream and returns the serialized bytes with entry-level diagnostics.

Parameters

destination System.IO.Stream requiredposition: 0
options OfficeIMO.OpenDocument.OdfSaveOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public OdfSaveResult SaveCopy(String path, OdfSaveOptions options = null) #
Returns: OdfSaveResult

Saves an independent copy and returns entry-level diagnostics without changing the associated path.

Parameters

path System.String requiredposition: 0
options OfficeIMO.OpenDocument.OdfSaveOptions = null optionalposition: 1
public async Task<OdfSaveResult> SaveCopyAsync(String path, OdfSaveOptions options = null, CancellationToken cancellationToken = null) #
Returns: Task<OdfSaveResult>

Asynchronously saves an independent copy and returns entry-level diagnostics without changing the associated path.

Parameters

path System.String requiredposition: 0
options OfficeIMO.OpenDocument.OdfSaveOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
SaveFlatXml 2 overloads
public OdfSaveResult SaveFlatXml(Stream destination) #
Returns: OdfSaveResult

Writes flat OpenDocument XML and returns the serialized bytes with projection diagnostics.

Parameters

destination System.IO.Stream requiredposition: 0
public OdfSaveResult SaveFlatXml(String path) #
Returns: OdfSaveResult

Writes flat OpenDocument XML to a path and returns the serialized bytes with projection diagnostics.

Parameters

path System.String requiredposition: 0
public OdfSaveResult Serialize(OdfSaveOptions options = null) #
Returns: OdfSaveResult

Serializes without accepting the current dirty state and returns the bytes with entry-level diagnostics.

Parameters

options OfficeIMO.OpenDocument.OdfSaveOptions = null optionalposition: 0
public static OfficeXmlPackageSigningResult SignPackage(String filePath, IOfficeSecurityProvider securityProvider, X509Certificate2 signingCertificate, OfficeXmlPackageSignatureOptions options = null) #
Returns: OfficeXmlPackageSigningResult

Creates, validates, and atomically commits an ODF XML package signature.

Parameters

filePath System.String requiredposition: 0
securityProvider OfficeIMO.Security.IOfficeSecurityProvider requiredposition: 1
signingCertificate System.Security.Cryptography.X509Certificates.X509Certificate2 requiredposition: 2
options OfficeIMO.Security.OfficeXmlPackageSignatureOptions = null optionalposition: 3
public Byte[] ToBytes(OdfSaveOptions options = null) #
Returns: Byte[]

Serializes the document to a byte array.

Parameters

options OfficeIMO.OpenDocument.OdfSaveOptions = null optionalposition: 0
public XDocument ToFlatXml() #
Returns: XDocument

Projects this package into a single flat OpenDocument XML tree.

public MemoryStream ToStream(OdfSaveOptions options = null) #
Returns: MemoryStream

Serializes the document in a new writable memory stream positioned at the beginning.

Parameters

options OfficeIMO.OpenDocument.OdfSaveOptions = null optionalposition: 0
public static OfficeXmlPackageSigningResult TrySignPackage(String filePath, IOfficeSecurityProvider securityProvider, X509Certificate2 signingCertificate, OfficeXmlPackageSignatureOptions options = null) #
Returns: OfficeXmlPackageSigningResult

Attempts atomic ODF XML signature creation and returns structured failure evidence.

Parameters

filePath System.String requiredposition: 0
securityProvider OfficeIMO.Security.IOfficeSecurityProvider requiredposition: 1
signingCertificate System.Security.Cryptography.X509Certificates.X509Certificate2 requiredposition: 2
options OfficeIMO.Security.OfficeXmlPackageSignatureOptions = null optionalposition: 3
public OdfValidationResult Validate() #
Returns: OdfValidationResult

Validates package and supported semantic invariants.

public static OfficeXmlPackageSignatureValidationReport ValidatePackageSignatures(String filePath, IOfficeSecurityProvider securityProvider, OfficeXmlPackageSignatureOptions options = null) #
Returns: OfficeXmlPackageSignatureValidationReport

Validates META-INF/documentsignatures.xml and signed package-entry digests through an explicit provider.

Parameters

filePath System.String requiredposition: 0
securityProvider OfficeIMO.Security.IOfficeSecurityProvider requiredposition: 1
options OfficeIMO.Security.OfficeXmlPackageSignatureOptions = null optionalposition: 2

Properties

public OdfDocumentKind Kind { get; } #

Document kind.

public String FilePath { get; } #

Gets the file path associated with the document, if any.

public OdfVersion Version { get; } #

Source or current output version.

public OdfDocumentMetadata Metadata { get; } #

Document metadata.

public OdfStyleRepository Styles { get; } #

Named and automatic styles stored in the document.

public IReadOnlyList<OdfDiagnostic> Diagnostics { get; } #

Non-fatal diagnostics produced while opening the package.

public OdfSecurityInfo Security { get; } #

Password-protection state for the package loaded or most recently saved.

public IReadOnlyList<String> PackageEntries { get; } #

Package entry paths currently stored in the document.