CurrentShape

ImageSavingArgs.CurrentShape property

يحصل علىShapeBase الكائن المطابق للشكل أو شكل المجموعة الذي على وشك أن يتم حفظه.

public ShapeBase CurrentShape { get; }

ملاحظات

IImageSavingCallback يمكن إطلاقها مع حفظ شكل أو شكل مجموعة. لهذا السبب الملكيةShapeBase يكتب. يمكنك التحقق مما إذا كان شكل مجموعة يقارن ShapeType معGroup أو عن طريق إرسالها إلى أحد الفئات المشتقة: Shape أوGroupShape.

يستخدم Aspose.Words اسم ملف المستند ورقمًا فريدًا لإنشاء اسم ملف فريد لكل صورة موجودة في المستند. يمكنك استخدام الCurrentShapeالخاصية لإنشاء اسم ملف “أفضل” عن طريق فحص خصائص الشكل مثلTitle (الشكل فقط)،SourceFullName (الشكل فقط) وName. بالطبع يمكنك إنشاء أسماء الملفات باستخدام أي خصائص أو معايير أخرى ولكن لاحظ أن أسماء الملفات الفرعية يجب أن تكون فريدة ضمن عملية التصدير.

قد تكون بعض الصور في المستند غير متوفرة. للتحقق من توفر الصورة استخدمIsImageAvailable ملكية.

أمثلة

يوضح كيفية تضمين رد اتصال لحفظ الصورة في عملية تحويل HTML.

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

    // عندما نحفظ المستند إلى HTML، يمكننا تمرير كائن SaveOptions لتعيين رد اتصال
    // لتخصيص عملية حفظ الصورة.
    HtmlSaveOptions options = new HtmlSaveOptions();
    options.ImageSavingCallback = new ImageShapePrinter();

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

/// <summary>
/// يطبع خصائص كل صورة بينما تقوم عملية الحفظ بحفظها في ملف صورة في نظام الملفات المحلي
/// أثناء تصدير مستند إلى 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;
}

أنظر أيضا