我尝试做的是更改函数中每次运行的间距:
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中手动“按下一个按钮”的方法?谢谢!
发布于 2021-03-07 16:34:08
根据文档,python-pptx不支持空格。
您可以深入了解库在内部是如何工作的,并可能自己添加支持,但我怀疑这是否真的适合您。
当然,您可以稍后手动编辑powerpoint文件以更改此设置(甚至可以使用VBA)。
发布于 2021-08-20 08:55:41
似乎没有对此的支持。作为一种变通方法,我使用以下代码片段在shape.table上下文中实现了相同的功能。也许您可以通过替换前两行来获得文本框架txBody,以查看它对文本运行是否具有相同的行为。
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是需要迭代的列表。
https://stackoverflow.com/questions/66514510
复制相似问题