我收到一个 docx 文件,想用 Libreoffice 从中提取图像。文件中有实际的“图像”元素,提取起来很容易(右键单击->保存)。但也有“对象”元素,右键单击不会提供“保存”。我尝试了此处描述的技巧:https://ask.libreoffice.org/t/how-can-i-extract-photos-from-a-doc-text-document/9095但 zip 中的相应文件不是图像:它们被称为 Obj102 和 Obj103,没有文件扩展名。linux“file”命令告诉
Composite Document File V2 Document, Cannot read section info
使用十六进制工具查看文件中的字节,我发现它嵌入了一个 BMP 文件。删除十六进制转储中“BM”标签之前的所有字节后,我成功获取了图像。
这是一种黑客行为,既费时又笨拙。难道没有办法直接从 Libreoffice 进行操作吗?
答案1
LibreOffice ODT 文档实际上是具有固定结构的 zip 档案。您可以执行以下操作:
- 使用 LibreOffice 打开 DOCX 文档并将 DOCX 保存/导出为 ODT
- 将 ODT 重命名为 ZIP
- 使用档案管理器打开 ZIP
- 查找图片子文件夹中的所有嵌入图像
第 2 步可能没有必要,因为档案管理器可能只需按原样打开 ODT。
最近的 DOCX 格式在内部也是 ZIP 文件,因此同样的方法也可能适用于这些文档。