CurrentShape

ImageSavingArgs.CurrentShape property

HämtarShapeBase objekt som motsvarar formen eller gruppformen som ska sparas.

public ShapeBase CurrentShape { get; }

Anmärkningar

IImageSavingCallback kan utlösas medan antingen en form eller en gruppform sparas. Det är därför egenskapen harShapeBase typ. Du kan kontrollera om det är en gruppform som jämför ShapeType medGroup eller genom att casta den till en av de härledda klasserna: Shape ellerGroupShape.

Aspose.Words använder dokumentets filnamn och ett unikt nummer för att generera ett unikt filnamn för varje bild som finns i dokumentet. Du kan användaCurrentShapeegenskap för att generera ett “bättre” filnamn genom att undersöka formegenskaper somTitle (Endast form),SourceFullName (Endast form) ochNameNaturligtvis kan du skapa filnamn med hjälp av andra egenskaper eller kriterier men observera att underordnade filnamn måste vara unika inom exportåtgärden.

Vissa bilder i dokumentet kan vara otillgängliga. För att kontrollera bildtillgängligheten , användIsImageAvailable egendom.

Exempel

Visar hur man inkluderar en återanropsfunktion för att spara bilder i en HTML-konverteringsprocess.

public void ImageSavingCallback()
{
    Document doc = new Document(MyDir + "Rendering.docx");

    // När vi sparar dokumentet till HTML kan vi skicka ett SaveOptions-objekt för att ange en återanropning
    // för att anpassa processen för att spara bilder.
    HtmlSaveOptions options = new HtmlSaveOptions();
    options.ImageSavingCallback = new ImageShapePrinter();

    doc.Save(ArtifactsDir + "HtmlSaveOptions.ImageSavingCallback.html", options);
}

/// <summary>
/// Skriver ut egenskaperna för varje bild medan sparprocessen sparar den till en bildfil i det lokala filsystemet
/// under export av ett dokument till 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;
}

Se även