ImageSavingArgsImageStream Property |
Namespace: Aspose.Words.Saving
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 ImageFileName property.
Using IImageSavingCallback you cannot substitute one image with another. It is intended only for control over location where to save images.
public void ImageSavingCallback() { // Open a document which contains shapes with images Document doc = new Document(MyDir + "Rendering.docx"); // Create a HtmlSaveOptions object with a custom image saving callback that will print image information HtmlSaveOptions options = new HtmlSaveOptions(); options.ImageSavingCallback = new ImageShapePrinter(); doc.Save(ArtifactsDir + "HtmlSaveOptions.ImageSavingCallback.html", options); } /// <summary> /// Prints information of all images that are about to be saved from within a document to image files /// </summary> private class ImageShapePrinter : IImageSavingCallback { void IImageSavingCallback.ImageSaving(ImageSavingArgs args) { args.KeepImageStreamOpen = false; Assert.True(args.IsImageAvailable); Console.WriteLine($"{args.Document.OriginalFileName.Split('\\').Last()} Image #{++mImageCount}"); LayoutCollector layoutCollector = new LayoutCollector(args.Document); Console.WriteLine($"\tOn page:\t{layoutCollector.GetStartPageIndex(args.CurrentShape)}"); Console.WriteLine($"\tDimensions:\t{args.CurrentShape.Bounds.ToString()}"); Console.WriteLine($"\tAlignment:\t{args.CurrentShape.VerticalAlignment}"); Console.WriteLine($"\tWrap type:\t{args.CurrentShape.WrapType}"); Console.WriteLine($"Output filename:\t{args.ImageFileName}\n"); } private int mImageCount; }