You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 08:00:01