需要批量将 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 ---
本文链接:
订阅本站:feed
声明:博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

标签: none

添加新评论