Obter limites de parágrafos de apresentações em Python
Visão geral
Este artigo explica como obter os limites, o tamanho e as coordenadas de parágrafos no Aspose.Slides. Ele mostra como recuperar um retângulo de parágrafo de um TextFrame usando Paragraph.get_rect, como obter as coordenadas do parágrafo dentro de um quadro de texto de célula de tabela e destaca detalhes importantes, como unidades de medida, o efeito da quebra de texto nos limites, a conversão de pixels e os valores de formatação de parágrafo efetivos.
Obter coordenadas retangulares de um parágrafo
Use Paragraph.get_rect para obter o retângulo delimitador de um parágrafo.
import aspose.slides as slides
with slides.Presentation("Shapes.pptx") as presentation:
slide = presentation.slides[0]
shape = slide.shapes[0]
paragraph = shape.text_frame.paragraphs[0]
rectangle = paragraph.get_rect()
Obter o tamanho de um parágrafo dentro de um TextFrame de célula de tabela
Para obter o tamanho e as coordenadas de um Paragraph em um quadro de texto de célula de tabela, use Paragraph.get_rect. O retângulo retornado é relativo ao quadro de texto da célula de tabela, portanto adicione a posição da tabela e o deslocamento da célula quando precisar de coordenadas ao nível do slide.
O exemplo a seguir obtém os limites do parágrafo dentro de uma célula de tabela e desenha retângulos no slide para visualizar esses limites:
import aspose.slides as slides
import aspose.pydrawing as draw
with slides.Presentation("source.pptx") as presentation:
slide = presentation.slides[0]
table = slide.shapes[0]
cell = table.rows[1][1]
cell_x = table.x + cell.offset_x
cell_y = table.y + cell.offset_y
for paragraph in cell.text_frame.paragraphs:
if paragraph.text == "":
continue
paragraph_rectangle = paragraph.get_rect()
paragraph_rectangle_x = paragraph_rectangle.x + cell_x
paragraph_rectangle_y = paragraph_rectangle.y + cell_y
paragraph_bounds_shape = slide.shapes.add_auto_shape(
slides.ShapeType.RECTANGLE,
paragraph_rectangle_x,
paragraph_rectangle_y,
paragraph_rectangle.width,
paragraph_rectangle.height)
paragraph_bounds_shape.fill_format.fill_type = slides.FillType.NO_FILL
paragraph_bounds_shape.line_format.fill_format.solid_fill_color.color = draw.Color.yellow
paragraph_bounds_shape.line_format.fill_format.fill_type = slides.FillType.SOLID
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
Perguntas frequentes
Em quais unidades as coordenadas do parágrafo são medidas?
Elas são medidas em pontos, onde 1 polegada equivale a 72 pontos. Isso se aplica a todas as coordenadas e dimensões no slide.
A quebra de linha afeta os limites de um parágrafo?
Sim. Se TextFrameFormat.wrap_text estiver habilitado para o TextFrame, o texto será quebrado para se ajustar à largura da área, o que altera os limites reais do parágrafo.
É possível mapear de forma confiável as coordenadas do parágrafo para pixels na imagem exportada?
Sim. Converta pontos para pixels usando esta fórmula: pixels = pontos × (DPI / 72). O resultado depende do DPI escolhido para renderização ou exportação.
Como obtenho os parâmetros de formatação de parágrafo “efetivos”, levando em conta a herança de estilo?
Use a estrutura de dados de formatação efetiva de parágrafo; ela devolve os valores finais consolidados para recuos, espaçamento, quebra, RTL e muito mais.