CurrentShape
ImageSavingArgs.CurrentShape property
Obtiene elShapeBase
objeto correspondiente a la forma o forma de grupo que está a punto de guardarse.
public ShapeBase CurrentShape { get; }
Observaciones
IImageSavingCallback
se puede disparar mientras se guarda una forma o una forma de grupo. Por eso la propiedad tieneShapeBase
tipo. Puedes comprobar si es una forma de grupo comparando ShapeType
conGroup o transfiriéndolo a una de las clases derivadas: Shape
oGroupShape
.
Aspose.Words utiliza el nombre del archivo del documento y un número único para generar un nombre de archivo único para cada imagen que se encuentra en el documento. Puedes usar elCurrentShape
propiedad para generar un nombre de archivo “mejor” examinando propiedades de forma comoTitle
(solo forma),SourceFullName
(Solo forma) yName
. Por supuesto, puede crear nombres de archivos utilizando cualquier otra propiedad o criterio , pero tenga en cuenta que los nombres de archivos subsidiarios deben ser únicos dentro de la operación de exportación.
Algunas imágenes del documento pueden no estar disponibles. Para verificar la disponibilidad de la imagen use elIsImageAvailable
propiedad.
Ejemplos
Muestra cómo involucrar una devolución de llamada para guardar imágenes en un proceso de conversión HTML.
public void ImageSavingCallback()
{
Document doc = new Document(MyDir + "Rendering.docx");
// Cuando guardamos el documento en HTML, podemos pasar un objeto SaveOptions para designar una devolución de llamada
// para personalizar el proceso de guardado de imágenes.
HtmlSaveOptions options = new HtmlSaveOptions();
options.ImageSavingCallback = new ImageShapePrinter();
doc.Save(ArtifactsDir + "HtmlSaveOptions.ImageSavingCallback.html", options);
}
/// <summary>
/// Imprime las propiedades de cada imagen a medida que el proceso de guardado la guarda en un archivo de imagen en el sistema de archivos local
/// durante la exportación de un documento a 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;
}
Ver también
- class ShapeBase
- class ImageSavingArgs
- espacio de nombres Aspose.Words.Saving
- asamblea Aspose.Words