CurrentShape

ImageSavingArgs.CurrentShape property

FårShapeBase objekt som motsvarar formen eller gruppformen som håller på att sparas.

public ShapeBase CurrentShape { get; }

Anmärkningar

IImageSavingCallback kan avfyras samtidigt som du sparar antingen en form eller en gruppform. Det är därför fastigheten harShapeBase typ. Du kan kontrollera om det är en gruppform som jämför ShapeType medGroup eller genom att casta den till en av härledda klasser: 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 som t.exTitle (endast form),SourceFullName (endast form) ochName. Naturligtvis kan du bygga filnamn med andra egenskaper eller kriterier men observera att filnamnen måste vara unika i exportoperationen.

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

Exempel

Visar hur man involverar en bildsparande återuppringning 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 återuppringning
    // 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 när sparprocessen sparar den i en bildfil i det lokala filsystemet
/// under exporten 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