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: 20.10.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 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 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 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 (Inherited from Object.)
Public methodGetHashCode (Inherited from Object.)
Public methodGetType (Inherited from Object.)
Public methodToString (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");

// Set a directory where images will be saved to, then ensure that it exists, and is empty.
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);
options.ExportTextInputFormFieldAsText = true;
options.ImagesFolder = imagesDir;

doc.Save(ArtifactsDir + "HtmlSaveOptions.SaveHtmlWithOptions.html", options);
Shows how to specify saving options while converting a document to .epub.
Document doc = new Document(MyDir + "Rendering.docx");

// Specify encoding for a document that we will save with a SaveOptions object.
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.SaveFormat = SaveFormat.Epub;
saveOptions.Encoding = Encoding.UTF8;

// By default, an output .epub document will have all the contents in one HTML part.
// A split criteria allows us to segment the document into several HTML parts.
// We will set the criteria to split the document at heading paragraphs.
// This is useful for readers which cannot read HTML files greater than a certain 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 split a document into parts and save them.
public void DocumentParts()
{
    // Open a document to be converted to html
    Document doc = new Document(MyDir + "Rendering.docx");
    string outFileName = "SavingCallback.DocumentParts.Rendering.html";

    // We can use an appropriate SaveOptions subclass to customize the conversion process
    HtmlSaveOptions options = new HtmlSaveOptions();

    // We can use it to split a document into smaller parts, in this instance split by section breaks
    // Each part will be saved into a separate file, creating many files during the conversion process instead of just one
    options.DocumentSplitCriteria = DocumentSplitCriteria.SectionBreak;

    // We can set a callback to name each document part file ourselves
    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);

    // The DocumentPartSaving() and ImageSaving() methods of our callbacks will be run at this time
    doc.Save(ArtifactsDir + outFileName, options);
}

/// <summary>
/// Renames saved document parts that are produced when an HTML document is saved while being split according to a DocumentSplitCriteria.
/// </summary>
private class SavedDocumentPartRename : IDocumentPartSavingCallback
{
    public SavedDocumentPartRename(string outFileName, DocumentSplitCriteria documentSplitCriteria)
    {
        mOutFileName = outFileName;
        mDocumentSplitCriteria = documentSplitCriteria;
    }

    void IDocumentPartSavingCallback.DocumentPartSaving(DocumentPartSavingArgs args)
    {
        Assert.True(args.Document.OriginalFileName.EndsWith("Rendering.docx"));

        string partType = "";

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

        // We can designate the filename and location of each output file either by filename
        args.DocumentPartFileName = partFileName;

        // Or we can make a new stream and choose the location of the file at construction
        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>
/// Renames saved images that are produced when an HTML document is saved.
/// </summary>
public class SavedImageRename : IImageSavingCallback
{
    public SavedImageRename(string outFileName)
    {
        mOutFileName = outFileName;
    }

    void IImageSavingCallback.ImageSaving(ImageSavingArgs args)
    {
        // Same filename and stream functions as above in IDocumentPartSavingCallback apply here
        string imageFileName = $"{mOutFileName} shape {++mCount}, of type {args.CurrentShape.ShapeType}{Path.GetExtension(args.ImageFileName)}";

        args.ImageFileName = imageFileName;

        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