1.背景介绍
提取本地的pdf文件中的图片,参考网上教程仍然无法正常运行。研究后,发现可能是版本问题,附安装流程,遇见BUG及解决方式,供参考
2.最终代码
def pdf_img(pdf_path):
check_xo = r"/Type(?= */XObject)"
check_img = r"/Subtype(?= */Image)" # 图片元素
pdf = fitz.open(pdf_path)
len_xref = pdf.xref_length()
for _ in range(1, len_xref):
text = pdf.xref_object(_) # getObjectString()不适用,要改成xref_object()
xo_object = re.search(check_xo, text)
img_object = re.search(check_img, text)
if not xo_object or not img_object:
continue
pix = fitz.Pixmap(pdf, _)
if pix.n < 5:
pix.writePNG('1.png')
else:
pix0 = fitz.Pixmap(fitz.csRGB, pix)
pix0.writePNG('1.png')
pix0 = None
pix = None