python-pptx: 有什么方法可以让文字垂直吗?
python-pptx: Any way to make text vertical?
有什么方法可以控制 python-pptx 中的文本方向吗?
我想要做的是使文本的形状为垂直,如下图所示。
我已在文档中搜索提示,但一无所获。
一个简单的解决方案似乎是制作一个水平文本框并将其旋转 90 度:
my_shape.rotation = 90
这使整个形状垂直,但我想做的是改变形状内文本的方向(即制作一个垂直文本框)。
对于半角字符,其行为看起来与垂直文本框一样。然而,对于像日文这样的全角字符,上面的解决方案改变了每个字符的方向,这是我不期望的(显示在图像的右侧)。
我想要的在图片的左边。
注意日语句子的方向是垂直的,但是里面的字符的方向还是保持的。
这可以通过 PowerPoint 轻松实现。您可以插入一个垂直文本框,如下图所示。
(确保在 PowerPoint 中区分水平文本框和垂直文本框 UI。)
我想通过 python-pptx 做同样的事情。
python-pptx
包没有为此公开准备好的属性。最后,它会生成一个 XML,如果您知道需要触摸的内容,可以直接编辑 XML 来实现最终结果。您还可以解压缩 excel 文件,检查输出 xml 以了解需要更改的内容。
许多格式样式,如文本锚定、自动调整和文本对齐,都是在 <a:bodypr>
标签上完成的。它在 CT_TextBodyProperties
. The text direction is controlled by vert
attribute and that also have some valid values which are defined in ST_TextVerticalType
.
中定义
假设您有要添加文本的文本框:
text_frame.text = '<your text>'
您可以按照层次结构获取元素并更新属性。文本框将具有 txBody
,进而具有 bodyPr
。但是它还有一个属性可以直接访问bodyPr
.
text_frame._bodyPr.attrib.update({'vert': 'vert'})
这里我们添加 vert
属性,其值为 vert
,它只会旋转文本而不是实际形状。您还可以试验 ST_TextVerticalType
.
中定义的其他值
有什么方法可以控制 python-pptx 中的文本方向吗?
我想要做的是使文本的形状为垂直,如下图所示。
我已在文档中搜索提示,但一无所获。
一个简单的解决方案似乎是制作一个水平文本框并将其旋转 90 度:
my_shape.rotation = 90
这使整个形状垂直,但我想做的是改变形状内文本的方向(即制作一个垂直文本框)。
对于半角字符,其行为看起来与垂直文本框一样。然而,对于像日文这样的全角字符,上面的解决方案改变了每个字符的方向,这是我不期望的(显示在图像的右侧)。
我想要的在图片的左边。 注意日语句子的方向是垂直的,但是里面的字符的方向还是保持的。
这可以通过 PowerPoint 轻松实现。您可以插入一个垂直文本框,如下图所示。
(确保在 PowerPoint 中区分水平文本框和垂直文本框 UI。)
我想通过 python-pptx 做同样的事情。
python-pptx
包没有为此公开准备好的属性。最后,它会生成一个 XML,如果您知道需要触摸的内容,可以直接编辑 XML 来实现最终结果。您还可以解压缩 excel 文件,检查输出 xml 以了解需要更改的内容。
许多格式样式,如文本锚定、自动调整和文本对齐,都是在 <a:bodypr>
标签上完成的。它在 CT_TextBodyProperties
. The text direction is controlled by vert
attribute and that also have some valid values which are defined in ST_TextVerticalType
.
假设您有要添加文本的文本框:
text_frame.text = '<your text>'
您可以按照层次结构获取元素并更新属性。文本框将具有 txBody
,进而具有 bodyPr
。但是它还有一个属性可以直接访问bodyPr
.
text_frame._bodyPr.attrib.update({'vert': 'vert'})
这里我们添加 vert
属性,其值为 vert
,它只会旋转文本而不是实际形状。您还可以试验 ST_TextVerticalType
.