在 python-docx 中设置段落字体
Set paragraph font in python-docx
我正在使用 python-docx 0.7.6.
我似乎无法弄清楚如何为某个段落设置字体系列和大小。
有.style
属性但是style="Times New Roman"
不行
有人可以给我举个例子吗?
谢谢。
python-docx 的文档在这里:
http://python-docx.readthedocs.org/en/latest/
此处列出了默认模板中可用的样式:
http://python-docx.readthedocs.org/en/latest/user/styles.html
在上面的示例中,您使用了字体名称 ("Times New Roman") 而不是样式 ID。例如,如果您使用 "Heading1",这会改变字体的外观,因为它是段落样式。
目前没有 API 可以直接将字体名称或字体大小应用到 python-docx 中的文本,尽管下一个版本可能会在一个月内推出更多内容.同时,您可以为您想要的段落和字符设置定义样式并应用这些样式。使用样式是在 Word 中应用格式的推荐方式,类似于 CSS 是将格式应用到 HTML.
的推荐方式
通读 API documentation 后,我明白了如何创建自己的风格并应用它。您可以通过将此代码更改为使用 WD_STYLE_TYPE.PARAGRAPH,以相同的方式创建段落样式对象。我花了一分钟才弄清楚的是对象以及它们在什么级别上应用,所以请确保您清楚地理解这一点。我发现违反直觉的是,您在创建样式属性后对其进行定义。
这就是我创建字符级样式对象的方式。
document = Document(path to word document)
#创建字符级样式对象("CommentsStyle")然后定义其参数
obj_styles = document.styles
obj_charstyle = obj_styles.add_style('CommentsStyle', WD_STYLE_TYPE.CHARACTER)
obj_font = obj_charstyle.font
obj_font.size = Pt(10)
obj_font.name = 'Times New Roman'
这就是我将样式应用于 运行 的方式。
paragraph.add_run(any string variable, style = 'CommentsStyle').bold = True
在最新版本的 python-docx
中添加了对 运行 样式的支持
这是将 Normal
样式设置为字体 Arial
和大小 10pt
的方法。
from docx.shared import Pt
style = document.styles['Normal']
font = style.font
font.name = 'Arial'
font.size = Pt(10)
这就是如何将其应用于 paragraph
。
paragraph.style = document.styles['Normal']
使用当前版本的 python-docx (0.8.5)。
使用此代码会对您有很大帮助。
import docx
from docx.shared import Pt
from docx.enum.style import WD_STYLE_TYPE
doc = docx.Document()
parag = doc.add_paragraph("Hello!")
font_styles = doc.styles
font_charstyle = font_styles.add_style('CommentsStyle', WD_STYLE_TYPE.CHARACTER)
font_object = font_charstyle.font
font_object.size = Pt(20)
font_object.name = 'Times New Roman'
parag.add_run("this word document, was created using Times New Roman", style='CommentsStyle').bold = True
parag.add_run("Python", style='CommentsStyle').italic = True
doc.save("test.docx")
我正在使用 python-docx 0.7.6.
我似乎无法弄清楚如何为某个段落设置字体系列和大小。
有.style
属性但是style="Times New Roman"
不行
有人可以给我举个例子吗?
谢谢。
python-docx 的文档在这里: http://python-docx.readthedocs.org/en/latest/
此处列出了默认模板中可用的样式: http://python-docx.readthedocs.org/en/latest/user/styles.html
在上面的示例中,您使用了字体名称 ("Times New Roman") 而不是样式 ID。例如,如果您使用 "Heading1",这会改变字体的外观,因为它是段落样式。
目前没有 API 可以直接将字体名称或字体大小应用到 python-docx 中的文本,尽管下一个版本可能会在一个月内推出更多内容.同时,您可以为您想要的段落和字符设置定义样式并应用这些样式。使用样式是在 Word 中应用格式的推荐方式,类似于 CSS 是将格式应用到 HTML.
的推荐方式通读 API documentation 后,我明白了如何创建自己的风格并应用它。您可以通过将此代码更改为使用 WD_STYLE_TYPE.PARAGRAPH,以相同的方式创建段落样式对象。我花了一分钟才弄清楚的是对象以及它们在什么级别上应用,所以请确保您清楚地理解这一点。我发现违反直觉的是,您在创建样式属性后对其进行定义。
这就是我创建字符级样式对象的方式。
document = Document(path to word document)
#创建字符级样式对象("CommentsStyle")然后定义其参数
obj_styles = document.styles
obj_charstyle = obj_styles.add_style('CommentsStyle', WD_STYLE_TYPE.CHARACTER)
obj_font = obj_charstyle.font
obj_font.size = Pt(10)
obj_font.name = 'Times New Roman'
这就是我将样式应用于 运行 的方式。
paragraph.add_run(any string variable, style = 'CommentsStyle').bold = True
在最新版本的 python-docx
中添加了对 运行 样式的支持这是将 Normal
样式设置为字体 Arial
和大小 10pt
的方法。
from docx.shared import Pt
style = document.styles['Normal']
font = style.font
font.name = 'Arial'
font.size = Pt(10)
这就是如何将其应用于 paragraph
。
paragraph.style = document.styles['Normal']
使用当前版本的 python-docx (0.8.5)。
使用此代码会对您有很大帮助。
import docx
from docx.shared import Pt
from docx.enum.style import WD_STYLE_TYPE
doc = docx.Document()
parag = doc.add_paragraph("Hello!")
font_styles = doc.styles
font_charstyle = font_styles.add_style('CommentsStyle', WD_STYLE_TYPE.CHARACTER)
font_object = font_charstyle.font
font_object.size = Pt(20)
font_object.name = 'Times New Roman'
parag.add_run("this word document, was created using Times New Roman", style='CommentsStyle').bold = True
parag.add_run("Python", style='CommentsStyle').italic = True
doc.save("test.docx")