首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改pptx-python中的字符间距?

如何更改pptx-python中的字符间距?
EN

Stack Overflow用户
提问于 2021-03-07 16:21:36
回答 2查看 130关注 0票数 1

我尝试做的是更改函数中每次运行的间距:

代码语言:javascript
复制
def add_direction_arrows(self):
    global junc_file, junc_file_name
    match_colors_to_type = {"White": RGBColor(255, 255, 255), "Yellow": RGBColor(238, 233, 23)}
    arrows_placeholders = {"NORTH_ARROWS": self.NO.LAN.Organize_arrows_order(),
                           "SOUTH_ARROWS": self.SO.LAN.Organize_arrows_order(),
                           "EAST_ARROWS": self.EA.LAN.Organize_arrows_order(),
                           "WEST_ARROWS": self.WE.LAN.Organize_arrows_order()}
    for slide in junc_file.slides:
        for shape in slide.shapes:
            if shape.name in arrows_placeholders.keys():
                text_frame = shape.text_frame
                text_frame.clear()
                arrows_list = arrows_placeholders[shape.name]
                for arrow in arrows_list:
                    text_frame = shape.text_frame
                    p = text_frame.paragraphs[0]
                    run = p.add_run()
                    run.text = arrow[0] * arrow[1]
                    font = run.font
                    font.bold = False
                  ➜ font.spacing = -10
                    font.size = Pt(49.9)
                    font.color.rgb = match_colors_to_type[arrow[2]]
    junc_file.save(junc_file_name)

我不确定python-pptx库是否包含此选项,但如果没有,我还有什么其他选项?可以自己添加吗?也许是一种在powerpoint中手动“按下一个按钮”的方法?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-07 16:34:08

根据文档,python-pptx不支持空格。

您可以深入了解库在内部是如何工作的,并可能自己添加支持,但我怀疑这是否真的适合您。

当然,您可以稍后手动编辑powerpoint文件以更改此设置(甚至可以使用VBA)。

票数 0
EN

Stack Overflow用户

发布于 2021-08-20 08:55:41

似乎没有对此的支持。作为一种变通方法,我使用以下代码片段在shape.table上下文中实现了相同的功能。也许您可以通过替换前两行来获得文本框架txBody,以查看它对文本运行是否具有相同的行为。

代码语言:javascript
复制
def _set_char_spacing(cell):
    tc = cell._tc
    txBody = tc.get_or_add_txBody()
    if not len(txBody.p_lst) > 0:
      return cell

    p = txBody.p_lst[0] # NOTE: Using index 0 just for demo purposes
    r = p.r_lst[0] # NOTE: Using index 0 just for demo purposes
    if not r.rPr:
      rPr = r._add_rPr()

    spacing = Emu(40)
    rPr.attrib['spc'] = str(spacing)
    return cell

作为免责声明,p_lst和r_lst是需要迭代的列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66514510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档