resources_folder property

HtmlFixedSaveOptions.resources_folder property

Specifies the physical folder where resources (images, fonts, css) are saved when exporting a document to Html format. Default is None.

@property
def resources_folder(self) -> str:
    ...

@resources_folder.setter
def resources_folder(self, value: str):
    ...

Remarks

Has effect only if HtmlFixedSaveOptions.export_embedded_images property is False.

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

If you save a document into a file and provide a file name, Aspose.Words, by default, saves the images in the same folder where the document file is saved. Use HtmlFixedSaveOptions.resources_folder to override this behavior.

If you save a document into a stream, Aspose.Words does not have a folder where to save the images, but still needs to save the images somewhere. In this case, you need to specify an accessible folder by using the HtmlFixedSaveOptions.resources_folder property

Examples

Shows how to use a callback to print the URIs of external resources created while converting a document to HTML (ResourceUriPrinter).

class ResourceUriPrinter(aw.saving.IResourceSavingCallback):

    def __init__(self):
        self.m_saved_resource_count = None
        self.m_text = []

    def resource_saving(self, args):
        # If we set a folder alias in the SaveOptions object, we will be able to print it from here.
        self.m_saved_resource_count += 1
        self.m_text.append(f'Resource #{self.m_saved_resource_count} "{args.resource_file_name}"')
        extension = Path(args.resource_file_name).suffix
        if extension in ('.ttf', '.woff'):
            # By default, 'ResourceFileUri' uses system folder for fonts.
            # To avoid problems in other platforms you must explicitly specify the path for the fonts.
            args.resource_file_uri = str(Path(ARTIFACTS_DIR) / args.resource_file_name)
        self.m_text.append('\t' + args.resource_file_uri + '\n')
        # If we have specified a folder in the "ResourcesFolderAlias" property,
        # we will also need to redirect each stream to put its resource in that folder.
        args.resource_stream = system_helper.io.FileStream(args.resource_file_uri, system_helper.io.FileMode.CREATE)
        args.keep_resource_stream_open = False

    def get_text(self):
        return str.join('', self.m_text)

See Also