Gerenciar fontes em apresentações no Android

Visão geral

Aspose.Slides permite que você gerencie propriedades de fonte no texto da apresentação diretamente a partir do seu código. Você pode acessar o texto nos slides através de formas, quadros de texto, parágrafos e porções, e então aplicar formatação ao texto selecionado.

Este artigo explica como configurar propriedades relacionadas a fontes para texto existente em uma apresentação, incluindo família de fontes, estilos negrito e itálico, alinhamento de parágrafo e cor da fonte. Também demonstra como criar uma caixa de texto, adicionar texto a ela e definir propriedades de fonte como família de fontes, negrito, itálico, sublinhado, tamanho da fonte e cor antes de salvar o resultado como um arquivo PPTX.

Gerenciar Propriedades Relacionadas a Fontes

Para gerenciar propriedades de fonte de um parágrafo usando Aspose.Slides for Android via Java:

  1. Crie uma instância da classe Presentation.
  2. Obtenha a referência de um slide usando seu índice.
  3. Acesse as formas Placeholder no slide e faça cast para AutoShape.
  4. Obtenha o Paragraph do TextFrame exposto por AutoShape.
  5. Justifique o parágrafo.
  6. Acesse a Portion de texto de um Paragraph.
  7. Defina a fonte usando FontData e ajuste a Font da Portion de texto de acordo.
    1. Defina a fonte como negrito.
    2. Defina a fonte como itálico.
  8. Defina a cor da fonte usando o FillFormat exposto pelo objeto Portion.
  9. Salve a apresentação modificada em um arquivo PPTX.

A implementação das etapas acima é apresentada a seguir. Ela recebe uma apresentação sem formatação e formata as fontes em um dos slides. As capturas de tela a seguir mostram o arquivo de entrada e como os trechos de código o alteram. O código altera a fonte, a cor e o estilo da fonte.

todo:image_alt_text
Figure: The text in the input file
todo:image_alt_text
Figure: The same text with updated formatting
// Instanciar um objeto Presentation que representa um arquivo PPTX
Presentation pres = new Presentation("FontProperties.pptx");
try {
	// Acessando um slide usando sua posição
	ISlide slide = pres.getSlides().get_Item(0);

	// Acessando o primeiro e o segundo placeholder no slide e convertendo-o para AutoShape
	ITextFrame tf1 = ((IAutoShape) slide.getShapes().get_Item(0)).getTextFrame();
	ITextFrame tf2 = ((IAutoShape) slide.getShapes().get_Item(1)).getTextFrame();

	// Acessando o primeiro Parágrafo
	IParagraph para1 = tf1.getParagraphs().get_Item(0);
	IParagraph para2 = tf2.getParagraphs().get_Item(0);

	// Justificar o parágrafo
	para2.getParagraphFormat().setAlignment(TextAlignment.JustifyLow);

	// Acessando a primeira porção
	IPortion port1 = para1.getPortions().get_Item(0);
	IPortion port2 = para2.getPortions().get_Item(0);

	// Definir novas fontes
	FontData fd1 = new FontData("Elephant");
	FontData fd2 = new FontData("Castellar");

	// Atribuir novas fontes à porção
	port1.getPortionFormat().setLatinFont(fd1);
	port2.getPortionFormat().setLatinFont(fd2);

	// Definir fonte como negrito
	port1.getPortionFormat().setFontBold(NullableBool.True);
	port2.getPortionFormat().setFontBold(NullableBool.True);

	// Definir fonte como itálico
	port1.getPortionFormat().setFontItalic(NullableBool.True);
	port2.getPortionFormat().setFontItalic(NullableBool.True);

	// Definir cor da fonte
	port1.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
	port1.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
	port2.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
	port2.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.GREEN);

	// Salvar o PPTX no disco
	pres.save("WelcomeFont.pptx", SaveFormat.Pptx);
} finally {
	if (pres != null) pres.dispose();
}

Definir Propriedades de Fonte do Texto

Para criar uma caixa de texto e definir propriedades de fonte do texto nela:

  1. Crie uma instância da classe Presentation.
  2. Obtenha a referência de um slide usando seu índice.
  3. Adicione um AutoShape do tipo Rectangle ao slide.
  4. Remova o estilo de preenchimento associado ao AutoShape.
  5. Acesse o TextFrame do AutoShape.
  6. Adicione algum texto ao TextFrame.
  7. Acesse o objeto Portion associado ao TextFrame.
  8. Defina a fonte a ser usada para o Portion.
  9. Defina outras propriedades da fonte como negrito, itálico, sublinhado, cor e altura usando as propriedades relevantes expostas pelo objeto Portion.
  10. Grave a apresentação modificada como um arquivo PPTX.

A implementação das etapas acima é apresentada a seguir.

todo:image_alt_text
Figure: Text with some font properties set by Aspose.Slides for Android via Java
// Instanciar um objeto Presentation que representa um arquivo PPTX
Presentation pres = new Presentation();
try {
	// Obter o primeiro slide
	ISlide sld = pres.getSlides().get_Item(0);
	
	// Adicionar um AutoShape do tipo Rectangle
	IAutoShape ashp = sld.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 50);
	
	// Remover qualquer estilo de preenchimento associado ao AutoShape
	ashp.getFillFormat().setFillType(FillType.NoFill);
	
	// Acessar o TextFrame associado ao AutoShape
	ITextFrame tf = ashp.getTextFrame();
	tf.setText("Aspose TextBox");
	
	// Acessar a Portion associada ao TextFrame
	IPortion port = tf.getParagraphs().get_Item(0).getPortions().get_Item(0);
	
	// Definir a fonte para a Portion
	port.getPortionFormat().setLatinFont(new FontData("Times New Roman"));
	
	// Definir a propriedade negrito da fonte
	port.getPortionFormat().setFontBold(NullableBool.True);
	
	// Definir a propriedade itálico da fonte
	port.getPortionFormat().setFontItalic(NullableBool.True);
	
	// Definir a propriedade sublinhado da fonte
	port.getPortionFormat().setFontUnderline(TextUnderlineType.Single);
	
	// Definir a altura da fonte
	port.getPortionFormat().setFontHeight(25);
	
	// Definir a cor da fonte
	port.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
	port.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
	
	// Salvar a apresentação no disco
	pres.save("pptxFont.pptx", SaveFormat.Pptx);
} finally {
	if (pres != null) pres.dispose();
}