CurrentShape

ImageSavingArgs.CurrentShape property

Ruft dieShapeBase 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 EigenschaftShapeBase Typ. Sie können überprüfen, ob es sich um eine Gruppenform handelt, indem Sie vergleichenShapeType mitGroup oder durch Umwandeln 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. Sie können dieCurrentShapeEigenschaft, um einen “besseren” Dateinamen zu generieren, indem Formeigenschaften wieTitle (nur Form),SourceFullName (Nur Form) undName. Natürlich können Sie Dateinamen anhand anderer Eigenschaften oder Kriterien erstellen , beachten Sie jedoch, dass die untergeordneten 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