API Pública e Alterações Incompatíveis Retroativas no Aspose.Slides para Java 14.5.0
API Pública e Alterações Incompatíveis Retroativas
Classes e Métodos Adicionados
Adicionada a interface Aspose.Slides.IPresentationInfo e as classes PresentationInfo
Representa informações sobre a apresentação.
Método Boolean isEncrypted() retorna True se a apresentação está criptografada, caso contrário retorna False.
Método LoadFormat getLoadFormat() obtém o tipo da apresentação.
Adicionado o método Aspose.Slides.IShape.isGrouped()
O método Aspose.Slides.IShape.isGrouped() determina se a forma está agrupada.
Adicionado o método Aspose.Slides.IShape.getParentGroup()
O método Aspose.Slides.IShape.getParentGroup() retorna o objeto GroupShape pai se a forma estiver agrupada. Caso contrário, retorna null.
Adicionado o método Aspose.Slides.IShapeCollection.addGroupShape()
O método Aspose.Slides.IShapeCollection.addGroupShape() cria um novo GroupShape e o adiciona ao final da coleção.
O tamanho e a posição da moldura do GroupShape serão ajustados ao conteúdo quando uma nova forma for adicionada ao GroupShape.
Adicionado o método Aspose.Slides.IShapeCollection.clear()
O método Aspose.Slides.IShapeCollection.clear() remove todas as formas da coleção.
Adicionado o método Aspose.Slides.IShapeCollection.insertGroupShape(int)
O método Aspose.Slides.IShapeCollection.insertGroupShape(int) cria um novo GroupShape e o insere na coleção no índice especificado. O tamanho e a posição da moldura do GroupShape serão ajustados ao conteúdo quando uma nova forma for adicionada ao GroupShape.
Adicionados os métodos IPresentationFactory.getPresentationInfo(string file), IPresentatoinFactory.getPresentationInfo(InputStream stream)
Esses métodos permitem que os desenvolvedores obtenham informações sobre um arquivo/fluxo de apresentação sem carregar a apresentação completa.
Adicionado o método IPresentationFactory PresentationFactory.getInstance()
Permite usar a funcionalidade da fábrica sem instanciar.
Restrições
Restrições foram adicionadas para o uso de valores indefinidos em IShape.getFrame()
Código que tenta atribuir uma moldura indefinida a IShape.setFrame(IShapeFrame) não faz sentido em casos gerais (particularmente quando o GroupShape pai está múltiplas vezes aninhado em outros {{GroupShape}}s). Por exemplo:
IShape shape = ...;
shape.setFrame(new ShapeFrame(Float.NaN, Float.NaN, Float.NaN, Float.NaN, NullableBool.NotDefined, NullableBool.NotDefined, Float.NaN));
or
slide.Shapes.AddAutoShape(ShapeType.RoundCornerRectangle, Float.NaN, Float.NaN, Float.NaN, Float.NaN);
Tal código pode levar a situações pouco claras. Portanto, restrições foram adicionadas para o uso de valores indefinidos em IShape.Frame. Os valores de x, y, width, height, flipH, flipV e rotationAngle devem estar definidos (não Float.NaN ou NullableBool.NotDefined). O código de exemplo acima agora lança uma exceção ArgumentException. Isso se aplica a esses casos de uso:
IShape shape = ...;
shape.setFrame(...); // não pode ser indefinido
IShapeCollection shapes = ...;
// os parâmetros x, y, largura, altura não podem ser Float.NaN:
{
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(...);
}
Mas a moldura retornada por IShape.getRawFrame() pode ser indefinida. Isso faz sentido quando uma forma está vinculada a um placeholder. Então, os valores indefinidos da moldura da forma são sobrescritos a partir da forma placeholder pai. Se não houver placeholder pai para aquela forma, ele usa valores padrão ao avaliar a moldura efetiva com base em seu IShape.getRawFrame(). Os valores padrão são 0 e NullableBool.False para x, y, width, height, flipH, flipV e rotationAngle. Por exemplo:
IShape shape = ...; // a forma está vinculada ao placeholder
shape.setRawFrame(new ShapeFrame(Float.NaN, Float.NaN, 100, Float.NaN, NullableBool.NotDefined, NullableBool.NotDefined, 0));
// agora a forma herda os valores x, y, height, flipH, flipV do placeholder e sobrescreve width=100 e rotationAngle=0.
Propriedades Alteradas
Alterado o Tipo e o Nome do método Aspose.Slides.IShapeCollection.getParent()
O tipo da propriedade Aspose.Slides.IShapeCollection.Parent foi alterado de ISlideComponent para a nova interface IGroupShape. A interface IGroupShape é descendente de ISlideComponent, portanto o código existente não precisa de adaptação.
O nome do método Aspose.Slides.IShapeCollection.getParent() foi alterado de getParent para getParentGroup().
Alterado o Tipo dos Métodos Aspose.Slides.IShapeFrame.getFlipH() e .getFlipV()
O tipo do método Aspose.Slides.IShapeFrame.getFlipH() foi alterado de bool para NullableBool.
O método IShape.getFrame() retorna a instância efetiva de IShapeFrame (cujas propriedades todas têm valores efetivos definidos).
O método IShape.getRawFrame() retorna uma instância de IShapeFrame na qual cada propriedade pode ter valor indefinido (particularmente FlipH ou FlipV podem ter o valor NullableBool.NotDefined).