通过 python 实现提取 PDF 首页图片
需要批量将 PDF 文件第一页的导出成图片,之前有这个需求的时候,搜索过几个,确实不如意,代码大部分都是复制粘贴的,运行不了。
现在有了 AI ,现在我用它写一些简单逻辑的,可运行的代码段,真的是太方便了。虽然也有很多文不对题的结果,但是瑕不掩瑜,只要你会配置所用语言的运行环境和知道如何运行这段代码,那简直是写代码的福音,极大了提升了效率和编写水平。
常用的语言均不在话下。
以下代码为 ChatGPT 生成
import fitz
import os
import sys
from PIL import Image
file_url = sys.argv[1]
file_path = sys.argv[2]
file_name = sys.argv[3]
wjm="";
pdf_document=file_url
wjm=file_name
doc = fitz.open(pdf_document) #打开pdf
print ("number of pages: %i" % doc.page_count) #获取页码数
print(doc.metadata) # 获取pdf信息
page1 = doc.load_page(0) #pdf文件第一页
page1text = page1.get_text("text") #获取pdf第一页文本信息
print("开始提取图片")
nums = doc.get_page_images(0)
idx = 0
for image in nums:
idx = idx + 1
xref = image[0]
pix = fitz.Pixmap(doc, xref)
#
if pix.n < 5: # GRAY or RGB
#pix.save(str(idx) + ".png")
pix.save(wjm + ".png")
else: # CMYK
pix = fitz.Pixmap(fitz.csRGB, pix)
#pix1.save(str(idx) + ".png")
pix.save(wjm + ".png")
pix = None
pix = None
以上代码另存为 pdf2jpg.py 文件。
如果想调用 python,使用一下 bat 文件,将 pdf 拖拽到 bat 文件上边,pdf 同目录下就会生成一个同名的 png 图片。
前提是pdf第一页是图片。
python pdf2jpg.py %1 %~p1 %~nx1
pause
--- EOF ---