100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > python-docx生成word 插入图片居中显示问题解决办法

python-docx生成word 插入图片居中显示问题解决办法

时间:2018-07-31 11:26:13

相关推荐

python-docx生成word 插入图片居中显示问题解决办法

具体生成word的代码官方示例在文末

下面只介绍图片居中的方法,因为docx库add_picture()方法不支持对图片位置的设置。所以有两种思路:

1、新建一个1行3列的表格,在中间的一列中插入图片

2、改变段落的位置(直接将最近的一个段落更改)

图片居中的方法:

第一个方法:

def add_center_picture(self, image_path_or_stream, width=None, height=None):# run = self.doc.add_paragraph().add_run()tab = self.doc.add_table(rows=1, cols=3) # 添加一个1行3列的空表cell = tab.cell(0, 1) # 获取某单元格对象(从0开始索引)ph =cell.paragraphs[0]run = ph.add_run()# run.add_break()run.add_picture(image_path_or_stream, width=width, height=height)

第二个方法:

def align_center(self):last_paragraph = self.doc.paragraphs[-1]last_paragraph.alignment = docx.enum.text.WD_ALIGN_PARAGRAPH.CENTER

效果如图:

python-docx生成word文档官方示例

from docx import Documentfrom docx.shared import Inchesdocument = Document()document.add_heading('Document Title', 0)p = document.add_paragraph('A plain paragraph having some ')p.add_run('bold').bold = Truep.add_run(' and some ')p.add_run('italic.').italic = Truedocument.add_heading('Heading, level 1', level=1)document.add_paragraph('Intense quote', style='Intense Quote')document.add_paragraph('first item in unordered list', style='List Bullet')document.add_paragraph('first item in ordered list', style='List Number')document.add_picture('monty-truth.png', width=Inches(1.25))records = ((3, '101', 'Spam'),(7, '422', 'Eggs'),(4, '631', 'Spam, spam, eggs, and spam'))table = document.add_table(rows=1, cols=3)hdr_cells = table.rows[0].cellshdr_cells[0].text = 'Qty'hdr_cells[1].text = 'Id'hdr_cells[2].text = 'Desc'for qty, id, desc in records:row_cells = table.add_row().cellsrow_cells[0].text = str(qty)row_cells[1].text = idrow_cells[2].text = descdocument.add_page_break()document.save('demo.docx')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。