Öffentliches API und rückwärts inkompatible Änderungen in Aspose.Slides für Java 14.5.0

Öffentliches API und rückwärts inkompatible Änderungen

Hinzugefügte Klassen und Methoden

Das Aspose.Slides.IPresentationInfo-Interface und die PresentationInfo-Klasse wurden hinzugefügt

Repräsentiert Informationen über die Präsentation.

Die Methode Boolean isEncrypted() gibt True zurück, wenn eine Präsentation verschlüsselt ist, andernfalls gibt sie False zurück.

Die Methode LoadFormat getLoadFormat() gibt den Präsentationstyp zurück.

Die Methode Aspose.Slides.IShape.isGrouped() wurde hinzugefügt

Die Methode Aspose.Slides.IShape.isGrouped() bestimmt, ob die Form gruppiert ist.

Die Methode Aspose.Slides.IShape.getParentGroup() wurde hinzugefügt

Die Methode Aspose.Slides.IShape.getParentGroup() gibt das übergeordnete GroupShape-Objekt zurück, wenn die Form gruppiert ist. Andernfalls gibt sie null zurück.

Die Methode Aspose.Slides.IShapeCollection.addGroupShape() wurde hinzugefügt

Die Methode Aspose.Slides.IShapeCollection.addGroupShape() erstellt ein neues GroupShape und fügt es am Ende der Sammlung hinzu.

Die Größe und Position des GroupShape-Rahmens wird an den Inhalt angepasst, wenn eine neue Form zum GroupShape hinzugefügt wird.

Die Methode Aspose.Slides.IShapeCollection.clear() wurde hinzugefügt

Die Methode Aspose.Slides.IShapeCollection.clear() entfernt alle Formen aus der Sammlung.

Die Methode Aspose.Slides.IShapeCollection.insertGroupShape(int) wurde hinzugefügt

Die Methode Aspose.Slides.IShapeCollection.insertGroupShape(int) erstellt ein neues GroupShape und fügt es an der angegebenen Stelle in die Sammlung ein. Die Größe und Position des GroupShape-Rahmens wird an den Inhalt angepasst, wenn eine neue Form zum GroupShape hinzugefügt wird.

Die Methoden IPresentationFactory.getPresentationInfo(string file), IPresentationFactory.getPresentationInfo(InputStream stream) wurden hinzugefügt

Diese Methoden ermöglichen es Entwicklern, Informationen über eine Präsentationsdatei/-stream zu erhalten, ohne die gesamte Präsentation zu laden.

Die Methode IPresentationFactory PresentationFactory.getInstance() wurde hinzugefügt

Ermöglicht die Nutzung der Fabrikfunktionalität ohne Instanziierung.

Einschränkungen

Einschränkungen wurden für die Verwendung undefinierter Werte für IShape.getFrame() hinzugefügt

Code, der versucht, einen undefinierten Rahmen an IShape.setFrame(IShapeFrame) zuzuweisen, macht in allgemeinen Fällen keinen Sinn (insbesondere wenn das übergeordnete GroupShape mehrfach in andere {{GroupShape}}s eingebettet ist). Zum Beispiel:


 IShape shape = ...;

shape.setFrame(new ShapeFrame(Float.NaN, Float.NaN, Float.NaN, Float.NaN, NullableBool.NotDefined, NullableBool.NotDefined, Float.NaN));

oder


 slide.Shapes.AddAutoShape(ShapeType.RoundCornerRectangle, Float.NaN, Float.NaN, Float.NaN, Float.NaN);

Solcher Code kann zu unklaren Situationen führen. Daher wurden Einschränkungen für die Verwendung undefinierter Werte für IShape.Frame eingeführt. Die Werte für x, y, width, height, flipH, flipV und rotationAngle müssen definiert sein (nicht Float.NaN oder NullableBool.NotDefined). Der Beispielcode oben wirft jetzt eine ArgumentException-Ausnahme. Dies gilt für diese Anwendungsfälle:


 IShape shape = ...;

shape.setFrame(...); // kann nicht undefiniert sein

IShapeCollection shapes = ...;

// x, y, width, height Parameter dürfen nicht Float.NaN sein:

{

    shapes.addAudioFrameCD(...);

    shapes.addAudioFrameEmbedded(...);

    shapes.addAudioFrameLinked(...);

    shapes.addAutoShape(...);

    shapes.addChart(...);

    shapes.addConnector(...);

    shapes.addOleObjectFrame(...);

    shapes.addPictureFrame(...);

    shapes.addSmartArt(...);

    shapes.addTable(...);

    shapes.addVideoFrame(...);

    shapes.insertAudioFrameEmbedded(...);

    shapes.insertAudioFrameLinked(...);

    shapes.insertAutoShape(...);

    shapes.insertChart(...);

    shapes.insertConnector(...);

    shapes.insertOleObjectFrame(...);

    shapes.insertPictureFrame(...);

    shapes.insertTable(...);

    shapes.insertVideoFrame(...);

}

Aber das IShape.getRawFrame()-Frame kann undefiniert sein. Dies macht Sinn, wenn eine Form mit einem Platzhalter verknüpft ist. Dann werden undefinierte Rahmenwerte von der übergeordneten Platzhalterform überschrieben. Wenn es keine übergeordnete Platzhalterform für diese Form gibt, werden Standardwerte verwendet, wenn der effektive Rahmen basierend auf seinem IShape.getRawFrame() bewertet wird. Die Standardwerte sind 0 und NullableBool.False für x, y, width, height, flipH, flipV und rotationAngle. Zum Beispiel:


 IShape shape = ...; // Form ist mit Platzhalter verknüpft

shape.setRawFrame(new ShapeFrame(Float.NaN, Float.NaN, 100, Float.NaN, NullableBool.NotDefined, NullableBool.NotDefined, 0));

// jetzt erbt die Form x, y, height, flipH, flipV-Werte vom Platzhalter und überschreibt width=100 und rotationAngle=0.

Geänderte Eigenschaften

Der Typ und Name der Methode Aspose.Slides.IShapeCollection.getParent() wurden geändert

Der Typ der Eigenschaft Aspose.Slides.IShapeCollection.Parent wurde von ISlideComponent in das neue IGroupShape-Interface geändert. Das IGroupShape-Interface ist ein Nachkomme des ISlideComponent, sodass bestehender Code keine Anpassung benötigt.

Der Name der Methode Aspose.Slides.IShapeCollection.getParent() wurde von getParent in getParentGroup() geändert.

Der Typ der Methoden Aspose.Slides.IShapeFrame.getFlipH() und .getFlipV() wurde geändert

Der Typ der Methode Aspose.Slides.IShapeFrame.getFlipH() wurde von bool in NullableBool geändert.

Die Methode IShape.getFrame() gibt die effektive Instanz von IShapeFrame zurück (alle Eigenschaften davon haben definierte effektive Werte).

Die Methode IShape.getRawFrame() gibt eine IShapeFrame-Instanz zurück, deren jede Eigenschaft einen undefinierten Wert haben kann (insbesondere FlipH oder FlipV kann den Wert NullableBool.NotDefined haben).