AutoFitPictureinWordwithPythondocx
创始人
2024-11-12 13:30:14
0

使用Python docx库自动调整Word中的图片大小。

使用Python docx库中的Image类和Shape类的属性进行操作,将图片的大小设置为页面的宽度,实现图片自动适应页面大小。

代码示例:

from docx import Document
from docx.shared import Cm

doc = Document('example.docx')

for paragraph in doc.paragraphs:
    for run in paragraph.runs:
        if run.element.tag.endswith('}r'):
            for tup in run.element.xpath('.//wp:docPr'):
                if 'inline' in tup.attrib.values():
                    try:
                        shape_id = run._r.xpath('.//a:blip')[0].attrib['{%s}embed' % doc.part.related_parts[
                        run._r.xpath('.//a:blip')[0].attrib['{%s}link' % doc.part.nsmap['r']].rId].reltype]
                        shape_size = doc.part.related_parts[shape_id]._element.xpath('.//a:ext')[0]
                        cx = shape_size.get('cx')
                        cy = shape_size.get('cy')
                        cx, cy = int(cx), int(cy)
                        
                        if cx > doc.page_width * 9525:
                            shape_size.set('cx', str(doc.page_width * 9525))
                            shape_size.set('cy', str(cy * doc.page_width * 9525 // cx))
                    except:
                        pass

doc.save('example.docx')

注意:上面的代码仅对InlineShape(布局与文字相邻的图片)进行了调整,如果需要调整其他类型的图片,请将代码改为适当的方式来实现。

相关内容

热门资讯

盘点几款!微扑克ai软件,微扑... 盘点几款!微扑克ai软件,微扑克有挂么(微扑克)总是真的是有挂(有挂实锤)-哔哩哔哩一、微扑克有挂么...
玩家实测!微扑克wpk辅助透视... 玩家实测!微扑克wpk辅助透视,微扑克如何让系统发好牌(微扑克)都是真的有挂(有挂解密)-哔哩哔哩1...
一分钟了解!德州微扑克外挂,微... 一分钟了解!德州微扑克外挂,微扑克透牌(微扑克)真是存在有挂(果真有挂)-哔哩哔哩德州微扑克外挂是一...
玩家必备教程!微扑克辅助挂,微... 玩家必备教程!微扑克辅助挂,微扑克有挂么(微扑克)果然有挂(有挂教程)-哔哩哔哩;微扑克辅助挂辅助器...
热点推荐!微扑克透牌软件,微扑... 热点推荐!微扑克透牌软件,微扑克ai机器人(微扑克)其实是真的有挂(发现有挂)-哔哩哔哩1、游戏颠覆...
总算了解!微扑克辅助插件挂,微... 总算了解!微扑克辅助插件挂,微扑克ai机器人(微扑克)本来真的有挂(有挂教学)-哔哩哔哩1、用户打开...
玩家必用!微扑克辅牌器,微扑克... 玩家必用!微扑克辅牌器,微扑克如何让系统发好牌(微扑克)一直是真的有挂(有挂解密)-哔哩哔哩1、微扑...
普及知识!微扑克透明挂,微扑克... 普及知识!微扑克透明挂,微扑克透牌(微扑克)原来是真的有挂(新版有挂)-哔哩哔哩1、任何微扑克透明挂...
分享一款!微扑克职业代打,微扑... 分享一款!微扑克职业代打,微扑克ai机器人(微扑克)一直真的有挂(有挂方式)-哔哩哔哩1、首先打开微...
总算了解!微扑克透牌真假的,微... 总算了解!微扑克透牌真假的,微扑克如何让系统发好牌(微扑克)都是有挂(有挂细节)-哔哩哔哩;1、微扑...