我有一个包含6-7张图片的docx文件,我需要自动提取其中的图片。是否有任何
这是我尝试过的方法,但问题在于它首先没有给我所有的图像,其次它给了我许多假阳性图像,比如空白图像、极小图像、线条等等... 它也使用MS Word来完成相同的任务。
你可以在这里下载docx文件:https://drive.google.com/open?id=1xdw2MieI1n3ulXlkr_iJSKb3cbozdvWq。该文件与it技术相关。
win32com
ms word API或可以准确提取其中所有图像的库?这是我尝试过的方法,但问题在于它首先没有给我所有的图像,其次它给了我许多假阳性图像,比如空白图像、极小图像、线条等等... 它也使用MS Word来完成相同的任务。
from pathlib import Path
from win32com.client import Dispatch
xls = Dispatch("Excel.Application")
doc = Dispatch("Word.Application")
def export_images(fp, prefix="img_", suffix="png"):
""" export all of images(inlineShapes) in the word file.
:param fp: path of word file.
:param prefix: prefix of exported images.
:param suffix: suffix of exported images.
"""
fp = Path(fp)
word = doc.Documents.Open(str(fp.resolve()))
sh = xls.Workbooks.Add()
for idx, s in enumerate(word.inlineShapes, 1):
s.Range.CopyAsPicture()
d = sh.ActiveSheet.ChartObjects().add(0, 0, s.width, s.height)
d.Chart.Paste()
d.Chart.Export(fp.parent / ("%s_%s.%s" % (prefix, idx, suffix))
sh.Close(False)
word.Close(False)
export_images(r"C:\Users\HPO2KOR\Desktop\Work\venv\us2017010202.docx")
你可以在这里下载docx文件:https://drive.google.com/open?id=1xdw2MieI1n3ulXlkr_iJSKb3cbozdvWq。该文件与it技术相关。