CurrentShape
ImageSavingArgs.CurrentShape property
ПолучаетShapeBase
объект, соответствующий форме или групповой форме , которая будет сохранена.
public ShapeBase CurrentShape { get; }
Примечания
IImageSavingCallback
может быть запущен при сохранении либо фигуры, либо групповой фигуры. Вот почему свойство имеетShapeBase
тип. Вы можете проверить, является ли это групповой формой, сравнивая ShapeType
сGroup или путем приведения его к одному из производных классов: Shape
илиGroupShape
.
Aspose.Words использует имя файла документа и уникальный номер для генерации уникального имени файла для каждого изображения, найденного в документе. Вы можете использоватьCurrentShape
свойство для генерации «лучшего» имени файла путем изучения свойств формы, таких какTitle
(только форма),SourceFullName
(Только форма) иName
. Конечно, вы можете создавать имена файлов, используя любые другие свойства или критерии , но учтите, что имена дополнительных файлов должны быть уникальными в пределах операции экспорта.
Некоторые изображения в документе могут быть недоступны. Для проверки доступности изображения используйтеIsImageAvailable
свойство.
Примеры
Показывает, как включить обратный вызов сохранения изображения в процесс преобразования HTML.
public void ImageSavingCallback()
{
Document doc = new Document(MyDir + "Rendering.docx");
// Когда мы сохраняем документ в HTML, мы можем передать объект SaveOptions для назначения обратного вызова
// для настройки процесса сохранения изображения.
HtmlSaveOptions options = new HtmlSaveOptions();
options.ImageSavingCallback = new ImageShapePrinter();
doc.Save(ArtifactsDir + "HtmlSaveOptions.ImageSavingCallback.html", options);
}
/// <summary>
/// Печатает свойства каждого изображения, поскольку процесс сохранения сохраняет его в файле изображения в локальной файловой системе.
/// во время экспорта документа в HTML.
/// </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}");
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;
}
Смотрите также
- class ShapeBase
- class ImageSavingArgs
- пространство имен Aspose.Words.Saving
- сборка Aspose.Words