python-pptx如何设置形状内文本为竖排且保留字符原有朝向
Python-pptx 实现竖排文本(字符无旋转)的解决方案
python-pptx 的公开 API 目前没有直接提供设置文本竖排的方法,但你可以通过直接修改底层 Open XML 属性实现和 PowerPoint 原生竖排文本框完全一致的效果,中文、日文等全角字符会保持原有朝向,仅整体排列方向改为从上到下竖排。
实现代码
from pptx import Presentation from pptx.util import Inches, Pt # 初始化演示文稿 prs = Presentation() # 选择空白幻灯片布局 slide = prs.slides.add_slide(prs.slide_layouts[6]) # 先创建普通文本框,宽设置较窄、高设置较高匹配竖排需求 left = Inches(1) top = Inches(1) width = Inches(0.8) height = Inches(3) text_box = slide.shapes.add_textbox(left, top, width, height) text_frame = text_box.text_frame # 核心逻辑:修改文本排列方向属性 body_pr = text_frame._element.get_or_add_bodyPr() # vert属性设为"vert"即为原生竖排效果,字符保持原有朝向 body_pr.set("vert", "vert") # 添加测试文本 para = text_frame.add_paragraph() para.text = "こんにちは、世界" para.font.size = Pt(16) prs.save("竖排文本测试.pptx")
说明
- 如果你需要的是字符跟着旋转的竖排效果,可将
vert属性取值改为vert270,效果和直接将文本框旋转90度一致。 - 如果是修改已有形状内的文本方向,只需要拿到对应形状的
text_frame对象,执行修改bodyPr属性的代码即可。
内容的提问来源于stack exchange,提问作者all_aest
相关产品推荐
相关产品推荐

