HtmlFixedSaveOptionsResourcesFolderAlias Property

Specifies the name of the folder used to construct image URIs written into an Html document. Default is null.

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

ExpandedSyntax

public string ResourcesFolderAlias { get; set; }

Property Value

Type: String

ExpandedRemarks

When you save a Document in Html format, Aspose.Words needs to save all images embedded in the document as standalone files. ResourcesFolder allows you to specify where the images will be saved and ResourcesFolderAlias allows to specify how the image URIs will be constructed.

ExpandedExamples

Shows how to print the URIs of linked resources created during conversion of a document to fixed-form .html.
public void HtmlFixedResourceFolder()
{
    // Open a document which contains images
    Document doc = new Document(MyDir + "Rendering.docx");

    HtmlFixedSaveOptions options = new HtmlFixedSaveOptions
    {
        SaveFormat = SaveFormat.HtmlFixed,
        ExportEmbeddedImages = false,
        ResourcesFolder = ArtifactsDir + "HtmlFixedResourceFolder",
        ResourcesFolderAlias = ArtifactsDir + "HtmlFixedResourceFolderAlias",
        ShowPageBorder = false,
        ResourceSavingCallback = new ResourceUriPrinter()
    };

    // A folder specified by ResourcesFolderAlias will contain the resources instead of ResourcesFolder
    // We must ensure the folder exists before the streams can put their resources into it
    Directory.CreateDirectory(options.ResourcesFolderAlias);

    doc.Save(ArtifactsDir + "HtmlFixedSaveOptions.HtmlFixedResourceFolder.html", options);

    string[] resourceFiles = Directory.GetFiles(ArtifactsDir + "HtmlFixedResourceFolderAlias");

    Assert.False(Directory.Exists(ArtifactsDir + "HtmlFixedResourceFolder"));
    Assert.AreEqual(6, resourceFiles.Count(f => f.EndsWith(".jpeg") || f.EndsWith(".png") || f.EndsWith(".css")));
}

/// <summary>
/// Counts and prints URIs of resources contained by as they are converted to fixed .Html
/// </summary>
private class ResourceUriPrinter : IResourceSavingCallback
{
    void IResourceSavingCallback.ResourceSaving(ResourceSavingArgs args)
    {
        // If we set a folder alias in the SaveOptions object, it will be printed here
        Console.WriteLine($"Resource #{++mSavedResourceCount} \"{args.ResourceFileName}\"");

        string extension = Path.GetExtension(args.ResourceFileName);
        switch (extension)
        {
            case ".ttf":
            case ".woff":
            {
                // By default, 'ResourceFileUri' used system folder for fonts
                // To avoid problems across platforms you must explicitly specify the path for the fonts
                args.ResourceFileUri = ArtifactsDir + Path.DirectorySeparatorChar + args.ResourceFileName;
                break;
            }
        }
        Console.WriteLine("\t" + args.ResourceFileUri);

        // If we specified a ResourcesFolderAlias we will also need to redirect each stream to put its resource in that folder
        args.ResourceStream = new FileStream(args.ResourceFileUri, FileMode.Create);
        args.KeepResourceStreamOpen = false;
    }

    private int mSavedResourceCount;
}

ExpandedSee Also