Skip to main content

Search OfficeIMO

Enter a topic, API type, or PowerShell command.

Documentation Search all OfficeIMO/

API Reference

Class

EpubPublication

Namespace OfficeIMO.Epub
Assembly OfficeIMO.Epub
Modifiers sealed

A writable EPUB package retaining unknown XML and entry payloads. Instances are mutable and not thread-safe. Use CancellationToken) to project the current publication through the existing extraction owner.

Inheritance

  • Object
  • EpubPublication

Usage

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

Methods

public EpubManifestItem AddChapter(String id, String containerPath, String title, String xhtmlBody, IEnumerable<String> stylesheets = null, Boolean linear = true) #
Returns: EpubManifestItem

Adds a well-formed XHTML body fragment as a chapter, with a linear spine position and a TOC entry.

Parameters

id System.String requiredposition: 0
containerPath System.String requiredposition: 1
title System.String requiredposition: 2
xhtmlBody System.String requiredposition: 3
stylesheets System.Collections.Generic.IEnumerable{System.String} = null optionalposition: 4
linear System.Boolean = true optionalposition: 5
public Void AddDublinCoreMetadata(String name, String value, String id = null, String language = null) #
Returns: Void

Adds an ordered Dublin Core value; existing unknown metadata remains intact.

Parameters

name System.String requiredposition: 0
value System.String requiredposition: 1
id System.String = null optionalposition: 2
language System.String = null optionalposition: 3
public Void AddMetadataProperty(String property, String value, String refines = null) #
Returns: Void

Adds an ordered EPUB 3 property value, including repeatable accessibility declarations.

Parameters

property System.String requiredposition: 0
value System.String requiredposition: 1
refines System.String = null optionalposition: 2
public EpubManifestItem AddResource(String id, String containerPath, String mediaType, Byte[] data, String properties = null) #
Returns: EpubManifestItem

Adds a local manifest resource at a canonical container path. Payloads are copied and never executed.

Parameters

id System.String requiredposition: 0
containerPath System.String requiredposition: 1
mediaType System.String requiredposition: 2
data System.Byte[] requiredposition: 3
properties System.String = null optionalposition: 4
public EpubSpineItem AddSpineItem(String manifestId, Boolean linear = true, String properties = null) #
Returns: EpubSpineItem

Adds a distinct reading position for an existing manifest resource.

Parameters

manifestId System.String requiredposition: 0
linear System.Boolean = true optionalposition: 1
properties System.String = null optionalposition: 2
public EpubManifestItem AddStylesheet(String id, String containerPath, String css) #
Returns: EpubManifestItem

Adds a UTF-8 stylesheet resource.

Parameters

id System.String requiredposition: 0
containerPath System.String requiredposition: 1
css System.String requiredposition: 2
public static EpubPublication Create(String title, String language = "en", String identifier = null, EpubVersion version = Epub3, EpubPublicationLoadOptions retentionLimits = null) #
Returns: EpubPublication

Creates a publication with stable identity; newly authored packages need at least one linear chapter.

Parameters

title System.String requiredposition: 0
language System.String = "en" optionalposition: 1
identifier System.String = null optionalposition: 2
version OfficeIMO.Epub.EpubVersion = Epub3 optionalposition: 3
retentionLimits OfficeIMO.Epub.EpubPublicationLoadOptions = null optionalposition: 4
public Void DeclareVocabularyPrefix(String prefix, String vocabularyUri) #
Returns: Void

Declares a custom vocabulary prefix without replacing other declarations.

Parameters

prefix System.String requiredposition: 0
vocabularyUri System.String requiredposition: 1
public XDocument GetContentXml(String manifestId) #
Returns: XDocument

Returns an independent XML content document for targeted editing.

Parameters

manifestId System.String requiredposition: 0
public XDocument GetPackageXml() #
Returns: XDocument

Returns an independent copy of package XML for inspection.

public Byte[] GetResourceBytes(String manifestId) #
Returns: Byte[]

Returns an independent copy of retained resource bytes, including original font-obfuscated bytes.

Parameters

manifestId System.String requiredposition: 0
Load 2 overloads
public static EpubPublication Load(Stream stream, EpubPublicationLoadOptions options = null, CancellationToken cancellationToken = default) #
Returns: EpubPublication

Loads all bounded entries for editing without conflating retained package content with extracted chapters.

Parameters

stream System.IO.Stream requiredposition: 0
options OfficeIMO.Epub.EpubPublicationLoadOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public static EpubPublication Load(String path, EpubPublicationLoadOptions options = null, CancellationToken cancellationToken = default) #
Returns: EpubPublication

Loads a file for bounded package editing.

Parameters

path System.String requiredposition: 0
options OfficeIMO.Epub.EpubPublicationLoadOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
LoadAsync 2 overloads
public static async Task<EpubPublication> LoadAsync(Stream stream, EpubPublicationLoadOptions options = null, CancellationToken cancellationToken = default) #
Returns: Task<EpubPublication>

Asynchronously loads a caller-owned stream for editing.

Parameters

stream System.IO.Stream requiredposition: 0
options OfficeIMO.Epub.EpubPublicationLoadOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public static async Task<EpubPublication> LoadAsync(String path, EpubPublicationLoadOptions options = null, CancellationToken cancellationToken = default) #
Returns: Task<EpubPublication>

Asynchronously loads a file for editing.

Parameters

path System.String requiredposition: 0
options OfficeIMO.Epub.EpubPublicationLoadOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public Void MoveSpineItem(Int32 fromIndex, Int32 toIndex) #
Returns: Void

Moves a reading position while preserving its attributes and repeated references.

Parameters

fromIndex System.Int32 requiredposition: 0
toIndex System.Int32 requiredposition: 1
public EpubDocument Read(EpubReadOptions options = null, CancellationToken cancellationToken = default) #
Returns: EpubDocument

Projects current authored content through the existing EPUB reader, without executing embedded content.

Parameters

options OfficeIMO.Epub.EpubReadOptions = null optionalposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1
public Void RemoveResource(String manifestId) #
Returns: Void

Removes an unreferenced declaration and its payload. Callers must first update content/navigation links.

Parameters

manifestId System.String requiredposition: 0
public Void RemoveSpineItem(Int32 index) #
Returns: Void

Removes one reading position without deleting its resource.

Parameters

index System.Int32 requiredposition: 0
Save 2 overloads
public EpubWriteReport Save(String path, EpubWriteOptions options = null, CancellationToken cancellationToken = default) #
Returns: EpubWriteReport

Atomically saves a completed artifact to a file, preserving an existing destination on validation/cancellation failure.

Parameters

path System.String requiredposition: 0
options OfficeIMO.Epub.EpubWriteOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public EpubWriteReport Save(Stream stream, EpubWriteOptions options = null, CancellationToken cancellationToken = default) #
Returns: EpubWriteReport

Writes a staged complete artifact to a caller-owned stream. Seekable streams are replaced and rewound.

Parameters

stream System.IO.Stream requiredposition: 0
options OfficeIMO.Epub.EpubWriteOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
SaveAsync 2 overloads
public async Task<EpubWriteReport> SaveAsync(String path, EpubWriteOptions options = null, CancellationToken cancellationToken = default) #
Returns: Task<EpubWriteReport>

Asynchronously atomically saves a completed artifact to a file.

Parameters

path System.String requiredposition: 0
options OfficeIMO.Epub.EpubWriteOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public async Task<EpubWriteReport> SaveAsync(Stream stream, EpubWriteOptions options = null, CancellationToken cancellationToken = default) #
Returns: Task<EpubWriteReport>

Asynchronously writes a staged artifact without closing the destination stream.

Parameters

stream System.IO.Stream requiredposition: 0
options OfficeIMO.Epub.EpubWriteOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public Void SetContentXml(String manifestId, XDocument content) #
Returns: Void

Replaces content XML after validating a supported non-scripted XHTML or SVG root.

Parameters

manifestId System.String requiredposition: 0
content System.Xml.Linq.XDocument requiredposition: 1
public Void SetCoverImage(String manifestId) #
Returns: Void

Selects a manifest image as the cover, preserving other item properties.

Parameters

manifestId System.String requiredposition: 0
public Void SetMetadataProperty(String property, String value, String refines = null) #
Returns: Void

Sets one EPUB 3 property/refinement without replacing unrelated declarations.

Parameters

property System.String requiredposition: 0
value System.String requiredposition: 1
refines System.String = null optionalposition: 2
public Void SetNavigation(IEnumerable<EpubNavigationEntry> tableOfContents, IEnumerable<EpubNavigationEntry> pageList = null, IEnumerable<EpubNavigationEntry> landmarks = null) #
Returns: Void

Replaces TOC entries and optionally page-list/landmark entries while retaining unrelated navigation XML.

Parameters

tableOfContents System.Collections.Generic.IEnumerable{OfficeIMO.Epub.EpubNavigationEntry} requiredposition: 0
pageList System.Collections.Generic.IEnumerable{OfficeIMO.Epub.EpubNavigationEntry} = null optionalposition: 1
landmarks System.Collections.Generic.IEnumerable{OfficeIMO.Epub.EpubNavigationEntry} = null optionalposition: 2
public Void SetRenditionLayout(EpubRenditionLayout layout) #
Returns: Void

Sets typed package layout metadata. This declares layout; it does not create fixed-page geometry.

Parameters

layout OfficeIMO.Epub.EpubRenditionLayout requiredposition: 0
public Void UpdateResource(String manifestId, Byte[] data) #
Returns: Void

Replaces one local resource payload. Encrypted/obfuscated bytes require an explicit re-keying implementation.

Parameters

manifestId System.String requiredposition: 0
data System.Byte[] requiredposition: 1
public EpubWriteResult Write(EpubWriteOptions options = null, CancellationToken cancellationToken = default) #
Returns: EpubWriteResult

Produces a complete bounded ZIP before publication. Unedited imports return their exact original bytes.

Parameters

options OfficeIMO.Epub.EpubWriteOptions = null optionalposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1

Properties

public String PackagePath { get; } #

Selected package document path. Other rootfiles and their payloads are preserved.

public String PackageVersion { get; } #

Declared package version, preserved when editing.

public IReadOnlyList<EpubManifestItem> Manifest { get; } #

Typed manifest declarations in package order.

public IReadOnlyList<EpubSpineItem> Spine { get; } #

Typed reading positions, including repeated resource references.

public IReadOnlyList<String> EntryPaths { get; } #

All retained entry paths, including unmanifested extension payloads.

public String Title { get; set; } #

Primary title. Other titles and refinements are retained.

public String Language { get; set; } #

Primary language. Chapter-level language declarations are edited independently.

public String Identifier { get; set; } #

Selected package identity. Identity changes are rejected for obfuscated/encrypted packages.

public String Creator { get; set; } #

Primary creator, preserving other contributors and refinements.

public String PageProgressionDirection { get; set; } #

Page progression declaration, such as ltr or rtl; null restores the package default.