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 Document
from docx.shared import Inches

document = Document()

document.add_heading('Document Title', 0)

p = document.add_paragraph('A plain paragraph having some ')
p.add_run('bold').bold = True
p.add_run(' and some ')
p.add_run('italic.').italic = True

document.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].cells
hdr_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().cells
    row_cells[0].text = str(qty)
    row_cells[1].text = id
    row_cells[2].text = desc

document.add_page_break()

document.save('demo.docx')

 

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值