如何使用Python PPTX将上标/下标文本添加到Powerpoint?

如何使用Python PPTX将上标/下标文本添加到Powerpoint?,python,python-pptx,Python,Python Pptx,我想使用python pptx向powerpoint幻灯片添加上标和下标文本。当我尝试更改上标/下标属性时,powerpoint上的文本不会发生视觉变化。我尝试了以下方法: #Import modules from pptx import Presentation from pptx.enum.shapes import MSO_SHAPE from pptx.util import Cm #Open powerpoint file prs = Presentation('filename.

我想使用python pptx向powerpoint幻灯片添加上标和下标文本。当我尝试更改上标/下标属性时,powerpoint上的文本不会发生视觉变化。我尝试了以下方法:

#Import modules
from pptx import Presentation
from pptx.enum.shapes import MSO_SHAPE
from pptx.util import Cm


#Open powerpoint file
prs = Presentation('filename.pptx')

#Add slide
slidelayout = prs.slide_layouts[0]
slide = prs.slides.add_slide(slidelayout)
shapes = slide.shapes

#Add a shape
shape = shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Cm(10), Cm(10), Cm(10), Cm(10))

#Add text
text_frame = shape.text_frame
paragraph = text_frame.add_paragraph()
run = paragraph.add_run()
run.text = 'this text should be superscript'
font = run.font
font.superscript = True
font.subscript = False

#Save the powerpoint file
prs.save('filename2.pptx')
这可能会帮助您:

# Following functions are workarounds for python-pptx not having these functions for the font object
def set_subscript(font):
    font._element.set('baseline', '-25000')

def set_superscript(font):
    font._element.set('baseline', '30000')

def set_strikethrough(font):
    font._element.set('strike','sngStrike')