Class ImageSavingArgs

Class ImageSavingArgs

Namespace: Aspose.Words.Saving
Assembly: Aspose.Words.dll (25.3.0)

Provides data for the Aspose.Words.Saving.IImageSavingCallback.ImageSaving(Aspose.Words.Saving.ImageSavingArgs) event.

To learn more, visit the Save a Document documentation article.

public class ImageSavingArgs

Inheritance

objectImageSavingArgs

Inherited Members

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Remarks

By default, when Aspose.Words saves a document to HTML, it saves each image into a separate file. Aspose.Words uses the document file name and a unique number to generate unique file name for each image found in the document.

Aspose.Words.Saving.ImageSavingArgs allows to redefine how image file names are generated or to completely circumvent saving of images into files by providing your own stream objects.

To apply your own logic for generating image file names use the Aspose.Words.Saving.ImageSavingArgs.ImageFileName, Aspose.Words.Saving.ImageSavingArgs.CurrentShape and Aspose.Words.Saving.ImageSavingArgs.IsImageAvailable properties.

To save images into streams instead of files, use the Aspose.Words.Saving.ImageSavingArgs.ImageStream property.

Properties

CurrentShape

Gets the Aspose.Words.Drawing.ShapeBase object corresponding to the shape or group shape that is about to be saved.

public ShapeBase CurrentShape { get; }

Property Value

ShapeBase

Remarks

Aspose.Words.Saving.IImageSavingCallback can be fired while saving either a shape or a group shape. That's why the property has Aspose.Words.Drawing.ShapeBase type. You can check whether it's a group shape comparing Aspose.Words.Drawing.ShapeBase.ShapeType with Aspose.Words.Drawing.ShapeType.Group or by casting it to one of derived classes: Aspose.Words.Drawing.Shape or Aspose.Words.Drawing.GroupShape.

Aspose.Words uses the document file name and a unique number to generate unique file name for each image found in the document. You can use the Aspose.Words.Saving.ImageSavingArgs.CurrentShape property to generate a "better" file name by examining shape properties such as Aspose.Words.Drawing.ImageData.Title (Shape only), Aspose.Words.Drawing.ImageData.SourceFullName (Shape only) and Aspose.Words.Drawing.ShapeBase.Name. Of course you can build file names using any other properties or criteria but note that subsidiary file names must be unique within the export operation.

Some images in the document can be unavailable. To check image availability use the Aspose.Words.Saving.ImageSavingArgs.IsImageAvailable property.

Document

Gets the document object that is currently being saved.

public Document Document { get; }

Property Value

Document

ImageFileName

Gets or sets the file name (without path) where the image will be saved to.

public string ImageFileName { get; set; }

Property Value

string

Remarks

This property allows you to redefine how the image file names are generated during export to HTML.

When the event is fired, this property contains the file name that was generated by Aspose.Words. You can change the value of this property to save the image into a different file. Note that file names must be unique.

Aspose.Words automatically generates a unique file name for every embedded image when exporting to HTML format. How the image file name is generated depends on whether you save the document to a file or to a stream.

When saving a document to a file, the generated image file name looks like <document base file name>.<image number>.<extension>.

When saving a document to a stream, the generated image file name looks like Aspose.Words.<document guid>.<image number>.<extension>.

Aspose.Words.Saving.ImageSavingArgs.ImageFileName must contain only the file name without the path. Aspose.Words determines the path for saving and the value of the src attribute for writing to HTML using the document file name, the Aspose.Words.Saving.HtmlSaveOptions.ImagesFolder and Aspose.Words.Saving.HtmlSaveOptions.ImagesFolderAlias properties.

Aspose.Words.Saving.ImageSavingArgs.CurrentShape Aspose.Words.Saving.ImageSavingArgs.IsImageAvailable Aspose.Words.Saving.ImageSavingArgs.ImageStream Aspose.Words.Saving.HtmlSaveOptions.ImagesFolder Aspose.Words.Saving.HtmlSaveOptions.ImagesFolderAlias

ImageStream

Allows to specify the stream where the image will be saved to.

public Stream ImageStream { get; set; }

Property Value

Stream

Remarks

This property allows you to save images to streams instead of files during HTML.

The default value is null. When this property is null, the image will be saved to a file specified in the Aspose.Words.Saving.ImageSavingArgs.ImageFileName property.

Using Aspose.Words.Saving.IImageSavingCallback you cannot substitute one image with another. It is intended only for control over location where to save images.

Aspose.Words.Saving.ImageSavingArgs.ImageFileName Aspose.Words.Saving.ImageSavingArgs.KeepImageStreamOpen

IsImageAvailable

Returns true if the current image is available for export.

public bool IsImageAvailable { get; }

Property Value

bool

Remarks

Some images in the document can be unavailable, for example, because the image is linked and the link is inaccessible or does not point to a valid image. In this case Aspose.Words exports an icon with a red cross. This property returns true if the original image is available; returns false if the original image is not available and a "no image" icon will be offered for save.

When saving a group shape or a shape that doesn't require any image this property is always true.

See Also

ImageSavingArgs.CurrentShape

KeepImageStreamOpen

Specifies whether Aspose.Words should keep the stream open or close it after saving an image.

public bool KeepImageStreamOpen { get; set; }

Property Value

bool

Remarks

Default is false and Aspose.Words will close the stream you provided in the Aspose.Words.Saving.ImageSavingArgs.ImageStream property after writing an image into it. Specify true to keep the stream open.

Aspose.Words.Saving.ImageSavingArgs.ImageStream