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