## ImageSavingArgs.Document property

Gets the document object that is currently being saved.

```csharp
public Document Document { get; }
```

## Examples

Shows how to involve an image saving callback in an HTML conversion process.

```csharp
Document doc = new Document(MyDir + "Rendering.docx");

// When we save the document to HTML, we can pass a SaveOptions object to designate a callback
// to customize the image saving process.
HtmlSaveOptions options = new HtmlSaveOptions();
options.ImageSavingCallback = new ImageShapePrinter();

doc.Save(ArtifactsDir + "HtmlSaveOptions.ImageSavingCallback.html", options);
```

Shows how to involve an image saving callback in an HTML conversion process (ImageShapePrinter).

```csharp
/// <summary>
/// Prints the properties of each image as the saving process saves it to an image file in the local file system
/// during the exporting of a document to HTML.
/// </summary>
private class ImageShapePrinter : IImageSavingCallback
{
    void IImageSavingCallback.ImageSaving(ImageSavingArgs args)
    {
        args.KeepImageStreamOpen = false;
        Assert.That(args.IsImageAvailable, Is.True);

        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}");
        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;
}
```

### See Also

* class [Document](../../../aspose.words/document/)
* class [ImageSavingArgs](../)
* namespace [Aspose.Words.Saving](../../../aspose.words.saving/)
* assembly [Aspose.Words](../../../)
