Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve como utilizar formas geométricas, linhas e caixas de texto em conjunto com as APIs Shape e ShapeCollection .
Criar formas
As formas são criadas através de e armazenadas numa coleção de formas de diapositivo (slide.shapes).
ShapeCollection tem vários .add* métodos para esta finalidade. Todas as formas têm nomes e IDs gerados para as mesmas quando são adicionadas à coleção. Estas são as name propriedades e id , respetivamente.
name pode ser definido pelo seu suplemento.
Formas geométricas
É criada uma forma geométrica com uma das sobrecargas de ShapeCollection.addGeometricShape. O primeiro parâmetro é uma enumeração GeometricShapeType ou a cadeia equivalente a um dos valores da enumeração. Existe um segundo parâmetro opcional do tipo ShapeAddOptions que pode especificar o tamanho inicial da forma e a respetiva posição em relação aos lados superior e esquerdo do diapositivo, medido em pontos. Ou estas propriedades podem ser definidas após a forma ser criada.
O seguinte exemplo de código cria um retângulo com o nome "Quadrado" que está posicionado a 100 pontos dos lados superior e esquerdo do diapositivo. O método devolve um Shape objeto.
// This sample creates a rectangle positioned 100 points from the top and left sides
// of the slide and is 150x150 points. The shape is put on the first slide.
await PowerPoint.run(async (context) => {
const shapes = context.presentation.slides.getItemAt(0).shapes;
const rectangle = shapes.addGeometricShape(PowerPoint.GeometricShapeType.rectangle);
rectangle.left = 100;
rectangle.top = 100;
rectangle.height = 150;
rectangle.width = 150;
rectangle.name = "Square";
await context.sync();
});
Linhas
É criada uma linha com uma das sobrecargas de ShapeCollection.addLine. O primeiro parâmetro é uma enumeração ConnectorType ou a cadeia equivalente a um dos valores da enumeração para especificar a forma como a linha é contorcida entre pontos finais. Existe um segundo parâmetro opcional do tipo ShapeAddOptions que pode especificar os pontos de início e de fim da linha. Ou estas propriedades podem ser definidas após a forma ser criada. O método devolve um Shape objeto.
Observação
Quando a forma é uma linha, as top propriedades e left dos Shape objetos e ShapeAddOptions especificam o ponto de partida da linha relativamente às margens superior e esquerda do diapositivo. As height propriedades e width especificam o ponto final da linha relativamente ao ponto de início. Assim, o ponto final relativo às margens superior e esquerda do diapositivo é (top + height) por (left + width). A unidade de medida para todas as propriedades são pontos e valores negativos são permitidos.
O seguinte exemplo de código cria uma linha reta no diapositivo.
// This sample creates a straight line on the first slide.
await PowerPoint.run(async (context) => {
const shapes = context.presentation.slides.getItemAt(0).shapes;
const line = shapes.addLine(PowerPoint.ConnectorType.straight, {left: 200, top: 50, height: 300, width: 150});
line.name = "StraightLine";
await context.sync();
});
Caixas de texto
É criada uma caixa de texto com o método addTextBox . O primeiro parâmetro é o texto que deve aparecer na caixa inicialmente. Existe um segundo parâmetro opcional do tipo ShapeAddOptions que pode especificar o tamanho inicial da caixa de texto e a respetiva posição em relação aos lados superior e esquerdo do diapositivo. Ou estas propriedades podem ser definidas após a forma ser criada.
O seguinte exemplo de código mostra como criar uma caixa de texto no primeiro diapositivo.
// This sample creates a text box with the text "Hello!" and sizes it appropriately.
await PowerPoint.run(async (context) => {
const shapes = context.presentation.slides.getItemAt(0).shapes;
const textbox = shapes.addTextBox("Hello!");
textbox.left = 100;
textbox.top = 100;
textbox.height = 300;
textbox.width = 450;
textbox.name = "Textbox";
await context.sync();
});
Mover e redimensionar formas
As formas encontram-se em cima do diapositivo. A respetiva colocação é definida pelas left propriedades e top . Funcionam como margens das respetivas margens do diapositivo, medidas em pontos, com left: 0 e top: 0 sendo o canto superior esquerdo. O tamanho da forma é especificado pelas height propriedades e width . O código pode mover ou redimensionar a forma ao repor estas propriedades. (Estas propriedades têm um significado ligeiramente diferente quando a forma é uma linha. Consulte Linhas.)
Texto em formas
As formas geométricas podem conter texto. As formas têm uma textFrame propriedade do tipo TextFrame. O TextFrame objeto gere as opções de apresentação de texto (como margens e excesso de texto).
TextFrame.textRange é um objeto TextRange com o conteúdo do texto e as definições do tipo de letra.
O seguinte exemplo de código cria uma forma geométrica denominada "Chavetas" com o texto "Texto da forma". Também ajusta as cores da forma e do texto, bem como define o alinhamento vertical do texto para o centro.
// This sample creates a light blue rectangle with braces ("{}") on the left and right ends
// and adds the purple text "Shape text" to the center.
await PowerPoint.run(async (context) => {
const shapes = context.presentation.slides.getItemAt(0).shapes;
const braces = shapes.addGeometricShape(PowerPoint.GeometricShapeType.bracePair);
braces.left = 100;
braces.top = 400;
braces.height = 50;
braces.width = 150;
braces.name = "Braces";
braces.fill.setSolidColor("lightblue");
braces.textFrame.textRange.text = "Shape text";
braces.textFrame.textRange.font.color = "purple";
braces.textFrame.verticalAlignment = PowerPoint.TextVerticalAlignment.middleCentered;
await context.sync();
});
Agrupar e desagrupar formas
No PowerPoint, pode agrupar várias formas e tratá-las como uma única forma. Posteriormente, pode desagrupar formas agrupadas. Para saber mais sobre o agrupamento de objetos na IU do PowerPoint, veja Agrupar ou desagrupar formas, imagens ou outros objetos.
Agrupar formas
Para agrupar formas com a API de JavaScript, utilize ShapeCollection.addGroup.
O seguinte exemplo de código mostra como agrupar formas existentes do tipo GeometricShape encontradas no diapositivo atual.
// Groups the geometric shapes on the current slide.
await PowerPoint.run(async (context) => {
// Get the shapes on the current slide.
context.presentation.load("slides");
const slide = context.presentation.getSelectedSlides().getItemAt(0);
slide.load("shapes/items/type,shapes/items/id");
await context.sync();
const shapes = slide.shapes;
const shapesToGroup = shapes.items.filter((item) => item.type === PowerPoint.ShapeType.geometricShape);
if (shapesToGroup.length === 0) {
console.warn("No shapes on the current slide, so nothing to group.");
return;
}
// Group the geometric shapes.
console.log(`Number of shapes to group: ${shapesToGroup.length}`);
const group = shapes.addGroup(shapesToGroup);
group.load("id");
await context.sync();
console.log(`Grouped shapes. Group ID: ${group.id}`);
});
Desagrupar formas
Para desagrupar formas com a API javaScript, obtenha a propriedade de grupo do objeto do Shape grupo e, em seguida, chame ShapeGroup.ungroup.
O seguinte exemplo de código mostra como desagrupar o primeiro grupo de formas encontrado no diapositivo atual.
// Ungroups the first shape group on the current slide.
await PowerPoint.run(async (context) => {
// Get the shapes on the current slide.
context.presentation.load("slides");
const slide = context.presentation.getSelectedSlides().getItemAt(0);
slide.load("shapes/items/type,shapes/items/id");
await context.sync();
const shapes = slide.shapes;
const shapeGroups = shapes.items.filter((item) => item.type === PowerPoint.ShapeType.group);
if (shapeGroups.length === 0) {
console.warn("No shape groups on the current slide, so nothing to ungroup.");
return;
}
// Ungroup the first grouped shapes.
const firstGroupId = shapeGroups[0].id;
const shapeGroupToUngroup = shapes.getItem(firstGroupId);
shapeGroupToUngroup.group.ungroup();
await context.sync();
console.log(`Ungrouped shapes with group ID: ${firstGroupId}`);
});
Eliminar formas
As formas são removidas do diapositivo com o Shape método do delete objeto.
O seguinte exemplo de código mostra como eliminar formas.
await PowerPoint.run(async (context) => {
// Delete all shapes from the first slide.
const shapes = context.presentation.slides.getItemAt(0).shapes;
// Load all the shapes in the collection without loading their properties.
shapes.load("items/$none");
await context.sync();
shapes.items.forEach(function (shape) {
shape.delete();
});
await context.sync();
});