CurrentShape
ImageSavingArgs.CurrentShape property
Ruft die abShapeBase
Objekt, das der Form oder Gruppenform entspricht, die gespeichert werden soll.
public ShapeBase CurrentShape { get; }
Bemerkungen
IImageSavingCallback
kann beim Speichern einer Form oder einer Gruppenform ausgelöst werden. Deshalb hat die ImmobilieShapeBase
Typ. Sie können überprüfen, ob es sich um eine Gruppenform handelt, indem Sie vergleichen.ShapeType
mitGroup oder durch Umwandlung in eine der abgeleiteten Klassen: Shape
oderGroupShape
.
Aspose.Words verwendet den Dateinamen des Dokuments und eine eindeutige Nummer, um für jedes im Dokument gefundene Bild einen eindeutigen Dateinamen zu generieren. Du kannst den … benutzenCurrentShape
Eigenschaft, um einen „besseren“ Dateinamen zu generieren, indem Formeigenschaften wie untersucht werdenTitle
(nur Form),SourceFullName
(Nur Form) undName
. Natürlich können Sie Dateinamen mit beliebigen anderen Eigenschaften oder Kriterien erstellen , aber beachten Sie, dass untergeordnete Dateinamen innerhalb des Exportvorgangs eindeutig sein müssen.
Einige Bilder im Dokument sind möglicherweise nicht verfügbar. Um die Bildverfügbarkeit zu überprüfen, verwenden Sie IsImageAvailable
Eigentum.
Beispiele
Zeigt, wie ein Rückruf zum Speichern von Bildern in einen HTML-Konvertierungsprozess einbezogen wird.
public void ImageSavingCallback()
{
Document doc = new Document(MyDir + "Rendering.docx");
// Wenn wir das Dokument im HTML-Format speichern, können wir ein SaveOptions-Objekt übergeben, um einen Rückruf festzulegen
// um den Bildspeichervorgang anzupassen.
HtmlSaveOptions options = new HtmlSaveOptions();
options.ImageSavingCallback = new ImageShapePrinter();
doc.Save(ArtifactsDir + "HtmlSaveOptions.ImageSavingCallback.html", options);
}
/// <summary>
/// Druckt die Eigenschaften jedes Bildes, während der Speichervorgang es in einer Bilddatei im lokalen Dateisystem speichert
/// beim Exportieren eines Dokuments nach 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;
}
Siehe auch
- class ShapeBase
- class ImageSavingArgs
- namensraum Aspose.Words.Saving
- Montage Aspose.Words