Skip to main content

Search OfficeIMO

Enter a topic, API type, or PowerShell command.

Documentation Search all OfficeIMO/

API Reference

Class

OdfDocument

Namespace OfficeIMO.OpenDocument
Assembly OfficeIMO.OpenDocument
Source revision 804a7612eee4 with working tree changes
Modifiers abstract

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

Inheritance

  • Object
  • OdfDocument

Usage

Explore 3 API references to this type

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

Returned or exposed by 3

Methods

public IReadOnlyList<OfficeEmbeddedPayloadInfo> GetEmbeddedPayloads(OfficeEmbeddedPayloadInspectionOptions options, CancellationToken cancellationToken = default) #
Returns: IReadOnlyList<OfficeEmbeddedPayloadInfo>

Returns native non-XML payload descriptors under explicit inspection limits.

Parameters

options OfficeIMO.OfficeEmbeddedPayloadInspectionOptions requiredposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1
public Int64 GetPackageEntryByteLength(String reference) #
Returns: Int64

Decoded or declared byte length of a package entry without expanding a deferred binary payload.

Parameters

reference System.String requiredposition: 0
GetPackageEntryBytes 2 overloads
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
public Byte[] GetPackageEntryBytes(String path, Int64 maximumBytes) #
Returns: Byte[]

Returns an already-loaded entry within an explicit byte ceiling, checked before creating its defensive copy. External links are never resolved.

Parameters

path System.String requiredposition: 0
maximumBytes System.Int64 requiredposition: 1
public String? GetPackageEntryMediaType(String reference) #
Returns: String?

Declared media type of an already-loaded package entry. External references are never fetched.

Parameters

reference System.String requiredposition: 0
public OdfPackageEntryPayloadState GetPackageEntryPayloadState(String reference) #
Returns: OdfPackageEntryPayloadState

Reports whether native entry bytes are deferred, fully loaded or checked by the supported ODF decryption profile.

Parameters

reference 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

documentBytes System.Byte[] requiredposition: 0
options OfficeIMO.ContentSafety.OfficeContentSafetyOptions? = null optionalposition: 1
loadOptions 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

filePath System.String requiredposition: 0
options OfficeIMO.ContentSafety.OfficeContentSafetyOptions? = null optionalposition: 1
loadOptions OfficeIMO.OpenDocument.OdfLoadOptions? = null optionalposition: 2
public OfficeEmbeddedPayloadInspection InspectEmbeddedPayloads(OfficeEmbeddedPayloadInspectionOptions? options = null, CancellationToken cancellationToken = default) #
Returns: OfficeEmbeddedPayloadInspection

Inventories inert non-XML package payloads without expanding deferred entries unless hashing is requested. The session snapshots native entry identities and content sources; later edits do not replace its selected bytes.

Parameters

options OfficeIMO.OfficeEmbeddedPayloadInspectionOptions? = null optionalposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1
InspectFeatures 2 overloads
public OdfFeatureReport InspectFeatures() #
Returns: OdfFeatureReport

Inspects supported, preserved, and unsupported document features.

public OdfFeatureReport InspectFeatures(CancellationToken cancellationToken) #
Returns: OdfFeatureReport

Inspects native package features with cancellation between XML parts, without executing preserved content.

Parameters

cancellationToken System.Threading.CancellationToken requiredposition: 0
public OfficeContentSafetyReport InspectLoadedContentSafety(OfficeContentSafetyOptions? options = null, CancellationToken cancellationToken = default) #
Returns: OfficeContentSafetyReport

Inspects the loaded native package without serialization, external-resource access, or mutation. Source-load limits remain the caller's responsibility.

Parameters

options OfficeIMO.ContentSafety.OfficeContentSafetyOptions? = null optionalposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1
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 = default) #
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 = default optionalposition: 2
public static async Task<OdfDocument> LoadAsync(Stream stream, OdfLoadOptions? options = null, CancellationToken cancellationToken = default) #
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 = default optionalposition: 2
LoadFlatXml 2 overloads
public static OdfDocument LoadFlatXml(Stream stream, OdfLoadOptions? options = null) #
Returns: OdfDocument

Loads a flat ODT, ODS, ODP, or ODG 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, ODP, or ODG XML document from a path.

Parameters

path System.String requiredposition: 0
options OfficeIMO.OpenDocument.OdfLoadOptions? = null optionalposition: 1
public static String NormalizePackageEntryPath(String reference) #
Returns: String

Normalizes a package reference through the native owner without fetching or resolving filesystem targets.

Parameters

reference System.String requiredposition: 0
public Stream OpenEmbeddedPayload(String id, Int64 maximumBytes, CancellationToken cancellationToken = default) #
Returns: Stream

Reads one complete inert non-XML native package payload under an explicit decoded byte ceiling.

Parameters

id System.String requiredposition: 0
maximumBytes System.Int64 requiredposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
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

inputPath System.String requiredposition: 0
outputPath System.String requiredposition: 1
options 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

packageBytes System.Byte[] requiredposition: 0
fileName System.String = "document.odt" optionalposition: 1
options 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 = default) #
Returns: Task<OdfSaveResult>

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

Parameters

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

Asynchronously saves to the original path with optional save settings.

Parameters

options OfficeIMO.OpenDocument.OdfSaveOptions? requiredposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1
public async Task<OdfSaveResult> SaveAsync(String path, OdfSaveOptions? options = null, CancellationToken cancellationToken = default) #
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 = default optionalposition: 2
public async Task<OdfSaveResult> SaveAsync(Stream destination, OdfSaveOptions? options = null, CancellationToken cancellationToken = default) #
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 = default 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 = default) #
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 = default 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.

public IReadOnlyList<String> BinaryPayloadEntries { get; } #

Native non-XML/control payload paths in package order; excludes directory records, mimetype, XML and RDF metadata parts.