ImageSavingArgsIsImageAvailable Property |
Namespace: Aspose.Words.Saving
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.
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; }