通过 Java 的 Python 获取演示文稿中文本片段的边界
Contents
[
Hide
]
概述
文本片段代表段落内部的特定文本片段,并允许您独立于周围内容对该片段进行操作。在 Aspose.Slides 中,当您需要获取文本片段的边界、仅对段落的一部分应用格式或在更细粒度的层面控制文本行为时,可使用片段。
本文档展示了如何使用Portion.getRect获取片段的边界矩形。还展示了如何使用Portion.getCoordinates获取片段起始位置的坐标。此外,还突出了常见的片段相关场景,例如为单个文本片段添加超链接、了解格式如何通过片段、段落、文本框和主题继承进行解析,以及处理指定字体不可用的情况。
获取文本片段的边界
使用Portion.getRect检索文本片段的边界矩形:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation
presentation = Presentation("Shapes.pptx")
try:
slide = presentation.getSlides().get_Item(0)
shape = slide.getShapes().get_Item(0)
for paragraph in shape.getTextFrame().getParagraphs():
for portion in paragraph.getPortions():
rectangle = portion.getRect()
print(f"X = {rectangle.x}; Y = {rectangle.y}; Width = {rectangle.width}; Height = {rectangle.height}")
finally:
presentation.dispose()
获取文本片段的坐标
使用Portion.getCoordinates检索文本片段起始位置的坐标:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation
presentation = Presentation("Shapes.pptx")
try:
slide = presentation.getSlides().get_Item(0)
shape = slide.getShapes().get_Item(0)
for paragraph in shape.getTextFrame().getParagraphs():
for portion in paragraph.getPortions():
point = portion.getCoordinates()
print(f"X = {point.x}; Y = {point.y}")
finally:
presentation.dispose()
常见问题
我可以仅对单段落中的部分文本应用超链接吗?
可以,您可以分配超链接到单独的片段;只有该片段可点击,而不是整个段落。
样式继承是如何工作的:片段会覆盖什么,哪些是从段落或文本框继承的?
片段级别的属性具有最高优先级。如果在Portion上未设置属性,Aspose.Slides 会从Paragraph获取。如果那里也未设置,则使用TextFrame或theme的样式。
如果片段指定的字体在目标机器或服务器上缺失会怎样?
会应用字体替换规则。文本可能会重新排版:度量、连字符和宽度都可能变化,这在精确定位时很重要。
我可以为片段单独设置文字填充透明度或渐变,而不影响段落的其他部分吗?
可以,位于Portion级别的文字颜色、填充和透明度可以与相邻片段不同。