CurrentShape
ImageSavingArgs.CurrentShape property
Ottiene il fileShapeBase
oggetto corrispondente alla forma o alla forma del gruppo che sta per essere salvato.
public ShapeBase CurrentShape { get; }
Osservazioni
IImageSavingCallback
può essere attivato durante il salvataggio di una forma o di una forma di gruppo. Ecco perché la proprietà haShapeBase
tipo. Puoi verificare se si tratta di una forma di gruppo confrontando ShapeType
conGroup o trasmettendolo a una delle classi derivate: Shape
OGroupShape
.
Aspose.Words utilizza il nome del file del documento e un numero univoco per generare un nome file univoco per ogni immagine trovata nel documento. Puoi usare ilCurrentShape
property per generare un nome file “migliore” esaminando le proprietà della forma comeTitle
(solo forma),SourceFullName
(Solo forma) eName
. Ovviamente puoi creare nomi di file utilizzando qualsiasi altra proprietà o criterio ma tieni presente che i nomi di file sussidiari devono essere univoci all’interno dell’operazione di esportazione.
Alcune immagini nel documento potrebbero non essere disponibili. Per verificare la disponibilità delle immagini utilizza il fileIsImageAvailable
proprietà.
Esempi
Mostra come coinvolgere un callback per il salvataggio dell’immagine in un processo di conversione HTML.
public void ImageSavingCallback()
{
Document doc = new Document(MyDir + "Rendering.docx");
// Quando salviamo il documento in HTML, possiamo passare un oggetto SaveOptions per designare un callback
// per personalizzare il processo di salvataggio dell'immagine.
HtmlSaveOptions options = new HtmlSaveOptions();
options.ImageSavingCallback = new ImageShapePrinter();
doc.Save(ArtifactsDir + "HtmlSaveOptions.ImageSavingCallback.html", options);
}
/// <summary>
/// Stampa le proprietà di ciascuna immagine mentre il processo di salvataggio la salva in un file di immagine nel file system locale
/// durante l'esportazione di un documento in 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;
}
Guarda anche
- class ShapeBase
- class ImageSavingArgs
- spazio dei nomi Aspose.Words.Saving
- assemblea Aspose.Words