如何从段落 python docx 中获取图像(inlineshape)

2023-11-23

我想逐段阅读docx文档,如果有图片(InlineShape),则用它周围的文本处理它。函数 Document.inline_shapes 将给出文档中所有内联形状的列表。但我想得到一个,如果存在的话,恰好出现在当前段落中......

代码示例:

from docx import Document

doc = Document("test.docx")
blip = doc.inline_shapes[0]._inline.graphic.graphicData.pic.blipFill.blip
rID = blip.embed
document_part = doc.part
image_part = document_part.related_parts[rID]

fr = open("test.png", "wb")
fr.write(image_part._blob)
fr.close()

(这就是我想要保存这些图片的方式)


假设您的段落是标准的,您可以使用以下代码来查找图像

import xml.etree.ElementTree as ET
def hasImage(par):
    """get all of the images in a paragraph 
    :param par: a paragraph object from docx
    :return: a list of r:embed 
    """
    ids = []
    root = ET.fromstring(par._p.xml)
    namespace = {
             'a':"http://schemas.openxmlformats.org/drawingml/2006/main", \
             'r':"http://schemas.openxmlformats.org/officeDocument/2006/relationships", \
             'wp':"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"}

    inlines = root.findall('.//wp:inline',namespace)
    for inline in inlines:
        imgs = inline.findall('.//a:blip', namespace)
        for img in imgs:     
            id = img.attrib['{{{0}}}embed'.format(namespace['r'])]
        ids.append(id)

    return ids
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从段落 python docx 中获取图像(inlineshape) 的相关文章

随机推荐

  • 将 pandas 数据帧转换为 utf8

    如何将 pandas 数据帧转换为 unicode messages pandas read csv data SMSSpamCollection sep t quoting csv QUOTE NONE names label messa
  • JS/HTML5 WebSocket:无需 HTTP 调用即可连接

    好吧 我刚刚尝试了 HTML 5 中的新 WebSocket 类 并且对它们的存在感到非常兴奋 然而 我看不出它们比 AJAX 更有价值 因为它们仍然发起 HTTP 调用并且not就像传统的插座一样 这就是我在这里问的原因 有没有办法使用
  • Android Room + 窗口功能

    我尝试在房间查询中使用窗口函数 解析器抱怨我的查询 我只是尝试在 select 语句中添加 ROW NUMBER OVER ORDER BY column 表达式 如果没有此表达式 查询将正确运行 解析器错误 extraneous inpu
  • 我可以检测浏览器中可用的 async/await 吗? [复制]

    这个问题在这里已经有答案了 如标题 如何检测浏览器中的 async await es7 支持 那可能吗 与任何其他语法特征一样 应该对其进行评估才能被检测到 自从eval可以被限制 当启用 CSP 时这可能是不可能的 let isAsync
  • 如何有条件地导入 xslt 中的样式表?

    有没有办法在检查某些条件后导入样式表 例如 如果变量 a 的值 1 则导入 1 xsl 否则导入 2 xsl 大家好 请问有什么办法可以导入吗 检查一些样式表后 状况 就像 如果变量 a 的值 1 然后导入 1 xsl 或者导入 2 xsl
  • node_modules 未被识别为内部或外部命令

    我正在尝试使用 appium jasmine 和 Perfecto mobile 编写测试自动化脚本 我正在使用从以下 URL 克隆的项目和我自己的配置Appium JavaScript 示例 问题是当我执行npm test命令我收到以下错
  • 从单独的路由文件内部访问快速“应用程序”对象的最佳方法是什么?

    在 Express 4 中 默认情况下 路由是从单独的文件加载的 app use routes 将加载routes index js 我有一个附加到的第三方库app本身 是否有首选的访问方式app从内部routes index js 我考虑
  • 关闭呈现的视图控制器

    我有一个理论问题 现在我正在阅读苹果的视图控制器 guide 他们写 当需要关闭呈现的视图控制器时 首选方法是让呈现视图控制器关闭 它 换句话说 只要有可能 同一个视图控制器 提出视图控制器还应该负责 驳回它 尽管有多种方法可以通知 呈现视
  • glibc 的 fprintf() 实现是线程安全的吗?

    fprintf 是线程安全的吗 glibc 手册似乎是这样 但我的应用程序使用对 fprintf 的单个调用写入文件似乎混合了来自不同进程的部分写入 编辑 澄清一下 有问题的程序是lighttpd插件 并且服务器正在运行多个工作线程 查看该
  • Symfony 手动连接参数 - 'arguments' 与 'bind'

    我尝试找出如何手动注入参数DefaultController 没有自动装配 我发现有两种方法可以实现这一目标 我可以用arguments services defaults autowire false autoconfigure true
  • 使用 LIKE 搜索 GROUP_CONCAT

    我有一个 SQL 查询 它使用 GROUP CONCAT 让所有人附加到某个订单 有没有办法可以在 GROUP CONCAT 字段内进行搜索 SELECT orders orderID GROUP CONCAT contacts first
  • 结构解引用运算符(运算符->)

    我正在为迭代器编写一个薄模板包装器 在通过结构取消引用运算符时遇到了绊脚石 主要是因为指针没有 include
  • 填充可用空间的 CSS 布局

    我正在尝试做一个看似简单的网页布局 但我遇到了困难 I d like做一切事纯粹用CSS 没有桌子把事情搞砸 并且没有 JavaScript动态调整事物的大小 我想要 具有固定高度的标题 固定高度的页脚 具有固定宽度的左侧边栏 具有固定宽度
  • UICollectionViewLayoutlayoutAttributesForElementsInRect和layoutAttributesForItemAtIndexPath

    我正在实现自定义流程布局 它有两种主要方法来覆盖以确定单元格的位置 layoutAttributesForElementsInRect and layoutAttributesForItemAtIndexPath 在我的代码中 layout
  • 如何将单行与sql中列中的数字相乘

    就我而言 有订单和订单头寸 每个订单位置都有一个数量 例如 但现在我需要每个 位置元素 一行 这是我想要的输出 我的想法是使用rank over 获得增量数 但我不知道如何使用该数量作为乘数 是否有一个聪明的解决方案来使用单列作为 行乘法器
  • 删除变量上的重复项而不进行排序

    我有一个变量 其中包含以下空格分隔的条目 variable apple lemon papaya avocado lemon grapes papaya apple avocado mango banana 如何在不排序的情况下删除重复项
  • Python 行尾正则表达式

    我正在尝试编写一个正则表达式 在点之前和之后添加一个空格 但是 我只希望在点后有空格或行尾时出现此情况 但是 对于行尾情况 我无法这样做 Eg I want a hotel gt gt I want a hotel my email is
  • 如何在iPhone上播放MIDI?

    据我所知 没有本地或第三方库可用于在 iPhone 上播放 MIDI 但似乎有不少应用程序可以做到这一点 他们用什么 有什么线索吗 供那些走这条路的人参考 AVMIDIPlayer 是在 iOS 8 中引入的 似乎在设备上运行良好 但 si
  • C++ JSON 序列化

    我想要一种尽可能自动地将对象序列化和反序列化为 JSON 的方法 连载 对我来说 理想的方法是 如果我调用实例 JSONSerialize 它会返回一个带有 JSON 对象的字符串 该对象具有该对象的所有公共属性 name of prope
  • 如何从段落 python docx 中获取图像(inlineshape)

    我想逐段阅读docx文档 如果有图片 InlineShape 则用它周围的文本处理它 函数 Document inline shapes 将给出文档中所有内联形状的列表 但我想得到一个 如果存在的话 恰好出现在当前段落中 代码示例 from