HtmlSaveOptions Class

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

ExpandedInheritance Hierarchy

Namespace:  Aspose.Words.Saving
Assembly:  Aspose.Words (in Aspose.Words.dll) Version: 21.5.0

ExpandedSyntax

public class HtmlSaveOptions : SaveOptions

The HtmlSaveOptions type exposes the following members.

ExpandedConstructors

  NameDescription
Public methodCode exampleHtmlSaveOptions
Initializes a new instance of this class that can be used to save a document in the Html format.
Public methodCode exampleHtmlSaveOptions(SaveFormat)
Initializes a new instance of this class that can be used to save a document in the Html, Mhtml or Epub format.

ExpandedProperties

  NameDescription
Public propertyCode exampleAllowEmbeddingPostScriptFonts
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.
(Inherited from SaveOptions.)
Public propertyCode exampleAllowNegativeIndent
Specifies whether negative left and right indents of paragraphs are normalized when saving to HTML, MHTML or EPUB. Default value is false.
Public propertyCode exampleCssClassNamePrefix
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.
Public propertyCode exampleCssSavingCallback
Allows to control how CSS styles are saved when a document is saved to HTML, MHTML or EPUB.
Public propertyCode exampleCssStyleSheetFileName
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.
Public propertyCode exampleCssStyleSheetType
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.
Public propertyCustomTimeZoneInfo
Gets or sets custom local time zone used for date/time fields.
(Inherited from SaveOptions.)
Public propertyCode exampleDefaultTemplate
Gets or sets path to default template (including filename). Default value for this property is empty string (Empty).
(Inherited from SaveOptions.)
Public propertyDml3DEffectsRenderingMode
Gets or sets a value determining how 3D effects are rendered.
(Inherited from SaveOptions.)
Public propertyCode exampleDmlEffectsRenderingMode
Gets or sets a value determining how DrawingML effects are rendered.
(Inherited from SaveOptions.)
Public propertyCode exampleDmlRenderingMode
Gets or sets a value determining how DrawingML shapes are rendered.
(Inherited from SaveOptions.)
Public propertyCode exampleDocumentPartSavingCallback
Allows to control how document parts are saved when a document is saved to HTML or EPUB.
Public propertyCode exampleDocumentSplitCriteria
Specifies how the document should be split when saving to Html or Epub format. Default is None for HTML and HeadingParagraph for EPUB.
Public propertyCode exampleDocumentSplitHeadingLevel
Specifies the maximum level of headings at which to split the document. Default value is 2.
Public propertyCode exampleEncoding
Specifies the encoding to use when exporting to HTML, MHTML or EPUB. Default value is new UTF8Encoding(false) (UTF-8 without BOM).
Public propertyCode exampleEpubNavigationMapLevel
Specifies the maximum level of headings populated to the navigation map when exporting to IDPF EPUB format. Default value is 3.
Public propertyCode exampleExportCidUrlsForMhtmlResources
Specifies whether to use CID (Content-ID) URLs to reference resources (images, fonts, CSS) included in MHTML documents. Default value is false.
Public propertyCode exampleExportDocumentProperties
Specifies whether to export built-in and custom document properties to HTML, MHTML or EPUB. Default value is false.
Public propertyCode exampleExportDropDownFormFieldAsText
Controls how drop-down form fields are saved to HTML or MHTML. Default value is false.
Public propertyCode exampleExportFontResources
Specifies whether font resources should be exported to HTML, MHTML or EPUB. Default is false.
Public propertyCode exampleExportFontsAsBase64
Specifies whether fonts resources should be embedded to HTML in Base64 encoding. Default is false.
Public propertyCode exampleExportHeadersFootersMode
Specifies how headers and footers are output to HTML, MHTML or EPUB. Default value is PerSection for HTML/MHTML and None for EPUB.
Public propertyCode exampleExportImagesAsBase64
Specifies whether images are saved in Base64 format to HTML, MHTML or EPUB. Default is false.
Public propertyCode exampleExportLanguageInformation
Specifies whether language information is exported to HTML, MHTML or EPUB. Default is false.
Public propertyCode exampleExportListLabels
Controls how list labels are output to HTML, MHTML or EPUB. Default value is Auto.
Public propertyCode exampleExportOriginalUrlForLinkedImages
Specifies whether original URL should be used as the URL of the linked images. Default value is false.
Public propertyCode exampleExportPageMargins
Specifies whether page margins is exported to HTML, MHTML or EPUB. Default is false.
Public propertyCode exampleExportPageSetup
Specifies whether page setup is exported to HTML, MHTML or EPUB. Default is false.
Public propertyCode exampleExportRelativeFontSize
Specifies whether font sizes should be output in relative units when saving to HTML, MHTML or EPUB. Default is false.
Public propertyCode exampleExportRoundtripInformation
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.
Public propertyCode exampleExportTextBoxAsSvg
Controls how textboxes represented by Shape are saved to HTML, MHTML or EPUB. Default value is false.
Public propertyCode exampleExportTextInputFormFieldAsText
Controls how text input form fields are saved to HTML or MHTML. Default value is false.
Public propertyCode exampleExportTocPageNumbers
Specifies whether to write page numbers to table of contents when saving HTML, MHTML and EPUB. Default value is false.
Public propertyCode exampleExportXhtmlTransitional
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.
Public propertyCode exampleFontResourcesSubsettingSizeThreshold
Controls which font resources need subsetting when saving to HTML, MHTML or EPUB. Default is 0.
Public propertyCode exampleFontSavingCallback
Allows to control how fonts are saved when a document is saved to HTML, MHTML or EPUB.
Public propertyCode exampleFontsFolder
Specifies the physical folder where fonts are saved when exporting a document to HTML. Default is an empty string.
Public propertyCode exampleFontsFolderAlias
Specifies the name of the folder used to construct font URIs written into an HTML document. Default is an empty string.
Public propertyCode exampleHtmlVersion
Specifies version of HTML standard that should be used when saving the document to HTML or MHTML. Default value is Xhtml.
Public propertyCode exampleImageResolution
Specifies the output resolution for images when exporting to HTML, MHTML or EPUB. Default is 96 dpi.
Public propertyCode exampleImageSavingCallback
Allows to control how images are saved when a document is saved to HTML, MHTML or EPUB.
Public propertyCode exampleImagesFolder
Specifies the physical folder where images are saved when exporting a document to HTML format. Default is an empty string.
Public propertyCode exampleImagesFolderAlias
Specifies the name of the folder used to construct image URIs written into an HTML document. Default is an empty string.
Public propertyCode exampleMemoryOptimization
Gets or sets value determining if memory optimization should be performed before saving the document. Default value for this property is false.
(Inherited from SaveOptions.)
Public propertyCode exampleMetafileFormat
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.
Public propertyCode exampleOfficeMathOutputMode
Controls how OfficeMath objects are exported to HTML, MHTML or EPUB. Default value is HtmlOfficeMathOutputMode.Image.
Public propertyCode examplePrettyFormat
When true, pretty formats output where applicable. Default value is false.
(Inherited from SaveOptions.)
Public propertyCode exampleResolveFontNames
Specifies whether font family names used in the document are resolved and substituted according to FontSettings when being written into HTML-based formats.
Public propertyCode exampleResourceFolder
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.
Public propertyCode exampleResourceFolderAlias
Specifies the name of the folder used to construct URIs of all resources written into an HTML document. Default is an empty string.
Public propertyCode exampleSaveFormat
Specifies the format in which the document will be saved if this save options object is used. Can be Html, Mhtml or Epub.
(Overrides SaveOptionsSaveFormat.)
Public propertyCode exampleScaleImageToShapeSize
Specifies whether images are scaled by Aspose.Words to the bounding shape size when exporting to HTML, MHTML or EPUB. Default value is true.
Public propertyCode exampleTableWidthOutputMode
Controls how table, row and cell widths are exported to HTML, MHTML or EPUB. Default value is All.
Public propertyCode exampleTempFolder
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.
(Inherited from SaveOptions.)
Public propertyUpdateCreatedTimeProperty
Gets or sets a value determining whether the CreatedTime property is updated before saving. Default value is false;
(Inherited from SaveOptions.)
Public propertyCode exampleUpdateFields
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.
(Inherited from SaveOptions.)
Public propertyCode exampleUpdateLastPrintedProperty
Gets or sets a value determining whether the LastPrinted property is updated before saving.
(Inherited from SaveOptions.)
Public propertyCode exampleUpdateLastSavedTimeProperty
Gets or sets a value determining whether the LastSavedTime property is updated before saving.
(Inherited from SaveOptions.)
Public propertyCode exampleUpdateSdtContent
Gets or sets value determining whether content of StructuredDocumentTag is updated before saving.
(Inherited from SaveOptions.)
Public propertyCode exampleUseAntiAliasing
Gets or sets a value determining whether or not to use anti-aliasing for rendering.
(Inherited from SaveOptions.)
Public propertyCode exampleUseHighQualityRendering
Gets or sets a value determining whether or not to use high quality (i.e. slow) rendering algorithms.
(Inherited from SaveOptions.)

ExpandedMethods

  NameDescription
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)

ExpandedExamples

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;
}

ExpandedSee Also