HtmlSaveOptions

HtmlSaveOptions class

Can be used to specify additional options when saving a document into the Html, Mhtml, Epub or Azw3 format.

public class HtmlSaveOptions : SaveOptions

Constructors

Name Description
HtmlSaveOptions() Initializes a new instance of this class that can be used to save a document in the Html format.
HtmlSaveOptions(SaveFormat) Initializes a new instance of this class that can be used to save a document in the Html, Mhtml, Epub or Azw3 format.

Properties

Name Description
AllowEmbeddingPostScriptFonts { get; set; } Gets or sets a boolean value indicating whether to allow embedding fonts with PostScript outlines when embedding TrueType fonts in a document upon it is saved. The default value is false.
AllowNegativeIndent { get; set; } Specifies whether negative left and right indents of paragraphs are normalized when saving to HTML, MHTML or EPUB. Default value is false.
CssClassNamePrefix { get; set; } Specifies a prefix which is added to all CSS class names. Default value is an empty string and generated CSS class names have no common prefix.
CssSavingCallback { get; set; } Allows to control how CSS styles are saved when a document is saved to HTML, MHTML or EPUB.
CssStyleSheetFileName { get; set; } Specifies the path and the name of the Cascading Style Sheet (CSS) file written when a document is exported to HTML. Default is an empty string.
CssStyleSheetType { get; set; } Specifies how CSS (Cascading Style Sheet) styles are exported to HTML, MHTML or EPUB. Default value is Inline for HTML/MHTML and External for EPUB.
CustomTimeZoneInfo { get; set; } Gets or sets custom local time zone used for date/time fields.
DefaultTemplate { get; set; } Gets or sets path to default template (including filename). Default value for this property is empty string (Empty).
Dml3DEffectsRenderingMode { get; set; } Gets or sets a value determining how 3D effects are rendered.
virtual DmlEffectsRenderingMode { get; set; } Gets or sets a value determining how DrawingML effects are rendered.
DmlRenderingMode { get; set; } Gets or sets a value determining how DrawingML shapes are rendered.
DocumentPartSavingCallback { get; set; } Allows to control how document parts are saved when a document is saved to HTML or EPUB.
DocumentSplitCriteria { get; set; } Specifies how the document should be split when saving to Html, Epub or Azw3 format. Default is None for HTML and HeadingParagraph for EPUB and AZW3.
DocumentSplitHeadingLevel { get; set; } Specifies the maximum level of headings at which to split the document. Default value is 2.
Encoding { get; set; } Specifies the encoding to use when exporting to HTML, MHTML or EPUB. Default value is new UTF8Encoding(false) (UTF-8 without BOM).
EpubNavigationMapLevel { get; set; } Specifies the maximum level of headings populated to the navigation map when exporting to IDPF EPUB format. Default value is 3.
ExportCidUrlsForMhtmlResources { get; set; } Specifies whether to use CID (Content-ID) URLs to reference resources (images, fonts, CSS) included in MHTML documents. Default value is false.
ExportDocumentProperties { get; set; } Specifies whether to export built-in and custom document properties to HTML, MHTML or EPUB. Default value is false.
ExportDropDownFormFieldAsText { get; set; } Controls how drop-down form fields are saved to HTML or MHTML. Default value is false.
ExportFontResources { get; set; } Specifies whether font resources should be exported to HTML, MHTML or EPUB. Default is false.
ExportFontsAsBase64 { get; set; } Specifies whether fonts resources should be embedded to HTML in Base64 encoding. Default is false.
ExportGeneratorName { get; set; } When true, causes the name and version of Aspose.Words to be embedded into produced files. Default value is true.
ExportHeadersFootersMode { get; set; } Specifies how headers and footers are output to HTML, MHTML or EPUB. Default value is PerSection for HTML/MHTML and None for EPUB.
ExportImagesAsBase64 { get; set; } Specifies whether images are saved in Base64 format to the output HTML, MHTML or EPUB. Default is false.
ExportLanguageInformation { get; set; } Specifies whether language information is exported to HTML, MHTML or EPUB. Default is false.
ExportListLabels { get; set; } Controls how list labels are output to HTML, MHTML or EPUB. Default value is Auto.
ExportOriginalUrlForLinkedImages { get; set; } Specifies whether original URL should be used as the URL of the linked images. Default value is false.
ExportPageMargins { get; set; } Specifies whether page margins is exported to HTML, MHTML or EPUB. Default is false.
ExportPageSetup { get; set; } Specifies whether page setup is exported to HTML, MHTML or EPUB. Default is false.
ExportRelativeFontSize { get; set; } Specifies whether font sizes should be output in relative units when saving to HTML, MHTML or EPUB. Default is false.
ExportRoundtripInformation { get; set; } Specifies whether to write the roundtrip information when saving to HTML, MHTML or EPUB. Default value is true for HTML and false for MHTML and EPUB.
ExportShapesAsSvg { get; set; } Controls whether Shape nodes are converted to SVG images when saving to HTML, MHTML, EPUB or AZW3. Default value is false.
ExportTextInputFormFieldAsText { get; set; } Controls how text input form fields are saved to HTML or MHTML. Default value is false.
ExportTocPageNumbers { get; set; } Specifies whether to write page numbers to table of contents when saving HTML, MHTML and EPUB. Default value is false.
ExportXhtmlTransitional { get; set; } Specifies whether to write the DOCTYPE declaration when saving to HTML or MHTML. When true, writes a DOCTYPE declaration in the document prior to the root element. Default value is false. When saving to EPUB or HTML5 (Html5) the DOCTYPE declaration is always written.
FontResourcesSubsettingSizeThreshold { get; set; } Controls which font resources need subsetting when saving to HTML, MHTML or EPUB. Default is 0.
FontSavingCallback { get; set; } Allows to control how fonts are saved when a document is saved to HTML, MHTML or EPUB.
FontsFolder { get; set; } Specifies the physical folder where fonts are saved when exporting a document to HTML. Default is an empty string.
FontsFolderAlias { get; set; } Specifies the name of the folder used to construct font URIs written into an HTML document. Default is an empty string.
HtmlVersion { get; set; } Specifies version of HTML standard that should be used when saving the document to HTML or MHTML. Default value is Xhtml.
ImageResolution { get; set; } Specifies the output resolution for images when exporting to HTML, MHTML or EPUB. Default is 96 dpi.
ImageSavingCallback { get; set; } Allows to control how images are saved when a document is saved to HTML, MHTML or EPUB.
ImagesFolder { get; set; } Specifies the physical folder where images are saved when exporting a document to HTML format. Default is an empty string.
ImagesFolderAlias { get; set; } Specifies the name of the folder used to construct image URIs written into an HTML document. Default is an empty string.
ImlRenderingMode { get; set; } Gets or sets a value determining how ink (InkML) objects are rendered.
MemoryOptimization { get; set; } Gets or sets value determining if memory optimization should be performed before saving the document. Default value for this property is false.
MetafileFormat { get; set; } Specifies in what format metafiles are saved when exporting to HTML, MHTML, or EPUB. Default value is Png, meaning that metafiles are rendered to raster PNG images.
OfficeMathOutputMode { get; set; } Controls how OfficeMath objects are exported to HTML, MHTML or EPUB. Default value is HtmlOfficeMathOutputMode.Image.
PrettyFormat { get; set; } When true, pretty formats output where applicable. Default value is false.
ProgressCallback { get; set; } Called during saving a document and accepts data about saving progress.
ResolveFontNames { get; set; } Specifies whether font family names used in the document are resolved and substituted according to FontSettings when being written into HTML-based formats.
ResourceFolder { get; set; } Specifies a physical folder where all resources like images, fonts, and external CSS are saved when a document is exported to HTML. Default is an empty string.
ResourceFolderAlias { get; set; } Specifies the name of the folder used to construct URIs of all resources written into an HTML document. Default is an empty string.
override SaveFormat { get; set; } Specifies the format in which the document will be saved if this save options object is used. Can be Html, Mhtml, Epub or Azw3.
ScaleImageToShapeSize { get; set; } Specifies whether images are scaled by Aspose.Words to the bounding shape size when exporting to HTML, MHTML or EPUB. Default value is true.
TableWidthOutputMode { get; set; } Controls how table, row and cell widths are exported to HTML, MHTML or EPUB. Default value is All.
TempFolder { get; set; } Specifies the folder for temporary files used when saving to a DOC or DOCX file. By default this property is null and no temporary files are used.
UpdateCreatedTimeProperty { get; set; } Gets or sets a value determining whether the CreatedTime property is updated before saving. Default value is false;
UpdateFields { get; set; } Gets or sets a value determining if fields of certain types should be updated before saving the document to a fixed page format. Default value for this property is true.
UpdateLastPrintedProperty { get; set; } Gets or sets a value determining whether the LastPrinted property is updated before saving.
UpdateLastSavedTimeProperty { get; set; } Gets or sets a value determining whether the LastSavedTime property is updated before saving.
UpdateSdtContent { get; set; } Gets or sets value determining whether content of StructuredDocumentTag is updated before saving.
UseAntiAliasing { get; set; } Gets or sets a value determining whether or not to use anti-aliasing for rendering.
UseHighQualityRendering { get; set; } Gets or sets a value determining whether or not to use high quality (i.e. slow) rendering algorithms.

Examples

Shows how to specify the folder for storing linked images after saving to .html.

Document doc = new Document(MyDir + "Rendering.docx");

string imagesDir = Path.Combine(ArtifactsDir, "SaveHtmlWithOptions");

if (Directory.Exists(imagesDir))
    Directory.Delete(imagesDir, true);

Directory.CreateDirectory(imagesDir);

// Set an option to export form fields as plain text instead of HTML input elements.
HtmlSaveOptions options = new HtmlSaveOptions(SaveFormat.Html)
{
    ExportTextInputFormFieldAsText = true, 
    ImagesFolder = imagesDir
};

doc.Save(ArtifactsDir + "HtmlSaveOptions.SaveHtmlWithOptions.html", options);

Shows how to use a specific encoding when saving a document to .epub.

Document doc = new Document(MyDir + "Rendering.docx");

// Use a SaveOptions object to specify the encoding for a document that we will save.
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.SaveFormat = SaveFormat.Epub;
saveOptions.Encoding = Encoding.UTF8;

// By default, an output .epub document will have all its contents in one HTML part.
// A split criterion allows us to segment the document into several HTML parts.
// We will set the criteria to split the document into heading paragraphs.
// This is useful for readers who cannot read HTML files more significant than a specific size.
saveOptions.DocumentSplitCriteria = DocumentSplitCriteria.HeadingParagraph;

// Specify that we want to export document properties.
saveOptions.ExportDocumentProperties = true;

doc.Save(ArtifactsDir + "HtmlSaveOptions.Doc2EpubSaveOptions.epub", saveOptions);

Shows how to split a document into parts and save them.

public void DocumentPartsFileNames()
{
    Document doc = new Document(MyDir + "Rendering.docx");
    string outFileName = "SavingCallback.DocumentPartsFileNames.html";

    // Create an "HtmlFixedSaveOptions" object, which we can pass to the document's "Save" method
    // to modify how we convert the document to HTML.
    HtmlSaveOptions options = new HtmlSaveOptions();

    // If we save the document normally, there will be one output HTML
    // document with all the source document's contents.
    // Set the "DocumentSplitCriteria" property to "DocumentSplitCriteria.SectionBreak" to
    // save our document to multiple HTML files: one for each section.
    options.DocumentSplitCriteria = DocumentSplitCriteria.SectionBreak;

    // Assign a custom callback to the "DocumentPartSavingCallback" property to alter the document part saving logic.
    options.DocumentPartSavingCallback = new SavedDocumentPartRename(outFileName, options.DocumentSplitCriteria);

    // If we convert a document that contains images into html, we will end up with one html file which links to several images.
    // Each image will be in the form of a file in the local file system.
    // There is also a callback that can customize the name and file system location of each image.
    options.ImageSavingCallback = new SavedImageRename(outFileName);

    doc.Save(ArtifactsDir + outFileName, options);
}

/// <summary>
/// Sets custom filenames for output documents that the saving operation splits a document into.
/// </summary>
private class SavedDocumentPartRename : IDocumentPartSavingCallback
{
    public SavedDocumentPartRename(string outFileName, DocumentSplitCriteria documentSplitCriteria)
    {
        mOutFileName = outFileName;
        mDocumentSplitCriteria = documentSplitCriteria;
    }

    void IDocumentPartSavingCallback.DocumentPartSaving(DocumentPartSavingArgs args)
    {
        // We can access the entire source document via the "Document" property.
        Assert.True(args.Document.OriginalFileName.EndsWith("Rendering.docx"));

        string partType = string.Empty;

        switch (mDocumentSplitCriteria)
        {
            case DocumentSplitCriteria.PageBreak:
                partType = "Page";
                break;
            case DocumentSplitCriteria.ColumnBreak:
                partType = "Column";
                break;
            case DocumentSplitCriteria.SectionBreak:
                partType = "Section";
                break;
            case DocumentSplitCriteria.HeadingParagraph:
                partType = "Paragraph from heading";
                break;
        }

        string partFileName = $"{mOutFileName} part {++mCount}, of type {partType}{Path.GetExtension(args.DocumentPartFileName)}";

        // Below are two ways of specifying where Aspose.Words will save each part of the document.
        // 1 -  Set a filename for the output part file:
        args.DocumentPartFileName = partFileName;

        // 2 -  Create a custom stream for the output part file:
        args.DocumentPartStream = new FileStream(ArtifactsDir + partFileName, FileMode.Create);

        Assert.True(args.DocumentPartStream.CanWrite);
        Assert.False(args.KeepDocumentPartStreamOpen);
    }

    private int mCount;
    private readonly string mOutFileName;
    private readonly DocumentSplitCriteria mDocumentSplitCriteria;
}

/// <summary>
/// Sets custom filenames for image files that an HTML conversion creates.
/// </summary>
public class SavedImageRename : IImageSavingCallback
{
    public SavedImageRename(string outFileName)
    {
        mOutFileName = outFileName;
    }

    void IImageSavingCallback.ImageSaving(ImageSavingArgs args)
    {
        string imageFileName = $"{mOutFileName} shape {++mCount}, of type {args.CurrentShape.ShapeType}{Path.GetExtension(args.ImageFileName)}";

        // Below are two ways of specifying where Aspose.Words will save each part of the document.
        // 1 -  Set a filename for the output image file:
        args.ImageFileName = imageFileName;

        // 2 -  Create a custom stream for the output image file:
        args.ImageStream = new FileStream(ArtifactsDir + imageFileName, FileMode.Create);

        Assert.True(args.ImageStream.CanWrite);
        Assert.True(args.IsImageAvailable);
        Assert.False(args.KeepImageStreamOpen);
    }

    private int mCount;
    private readonly string mOutFileName;
}

See Also