Python-docx在表中查找并替换图像

时间:2018-05-27 10:17:40

标签: python ms-word python-docx

如何在MS文档表中找到现有图像并将其替换为新图像?使用此代码,我可以找到图像的表格单元格/位置并添加新图像,但它不会替换旧图像。

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<nav class="navbar navbar-default navbar-fixed-top" style="background-color: transparent; max-height: 50px;">
    <div class="container-fluid" style="padding-right: 0px;">
        <ul class="nav navbar-nav" style="margin-top: 0px;margin-bottom: 0px;padding-left: 0px;">


            <li class="number_three_li dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown"
                                                    style="padding: 15px"><i
                    class="glyphicon glyphicon-option-horizontal" style="color:royalblue;"></i></a>
                <ul class="dropdown-menu" style="z-index: 3; left: auto; right: 0;">
                    <li><a href="#">HTML</a></li>
                    <li><a href="#">CSS</a></li>
                    <li><a href="#">JavaScript</a></li>
                </ul>
            </li>


        </ul>
    </div>
</nav>

<p style="padding-top:100px">It happend when browser's width < 768</p>

这可以用python-docx模块或任何其他模块吗?

2 个答案:

答案 0 :(得分:0)

我替换了您的最后3行代码:

img = tables[0].rows[0].cells[0].add_paragraph()
r = img.add_run()
r.add_picture('/tmp/foo.jpg', width=Inches(2.5))

有这样的东西

#This seams to clear the content in my cell
tables[0].rows[0].cells[0]._element.clear_content()

#Then when the image is inserted to the cell it is not placed one linefeed down.
img = tables[0].rows[0].cells[0].add_paragraph().add_run().add_picture('Image.png', width=Inches(0.4))

它似乎为我工作,但是非常感谢您的提问,这使我走上了正确的轨道,不仅很难删除图像,而且当我添加新图像时,它是换行的。但是我的代码有点紧凑,解决了两个问题。

谢谢!

答案 1 :(得分:0)

也许尝试使用https://github.com/khanfarhan10/PythonCertificateGenerator/blob/main/ImageReplacer.py并使代码适合自己!

所有文件操作均使用python ZipFile执行。