Python脚本 | 提取pdf页面为jpg
功能:
- 提取pdf文件中的每一页,输出为jpg文件
- 以markdown语法写入文本文件
- 将该文本复制到剪贴板
# python 3.10 # ! 运行在 conda-myv虚拟环境 import fitz # PyMuPDF from PIL import Image import os from datetime import datetime # 指定PDF文件路径 pdf_path = 'chap6.pdf' # 指定输出的Markdown文件路径 md_path = 'output.txt' def NowTime()->str: # 获取当前时间 now = datetime.now() # 按照指定的格式输出时间字符串 time_str = now.strftime("%Y-%m-%d-%H-%M-%S") return time_str def ShowMessage(message:str)->None: import ctypes # 定义提醒信息的内容 # message = "markdown格式内容以复制到剪贴板" title="提醒" # 播放提示音 sound = "SystemAsterisk" ctypes.windll.winmm.PlaySoundW(sound, 0, 0) # 显示一个消息框 ctypes.windll.user32.MessageBoxW(None, message, title, 0) # 获取当前文件的路径 current_file_path = os.path.abspath(__file__) # 获取当前文件所在的目录 output_dir = os.path.dirname(current_file_path) # 打开PDF文件 pdf_document = fitz.open(pdf_path) # 创建Markdown文件 with open(md_path, 'w', encoding='utf-8') as md_file: # 遍历PDF的每一页 for page_number in range(len(pdf_document)): # 获取页面 page = pdf_document[page_number] # 将页面转换为图像 pix = page.get_pixmap() img = Image.frombytes("RGB", [pix.width, pix.height], pix.samples) # 指定图像文件名 img_filename = f'page_{page_number + 1}_{NowTime()}.jpg' img_path = os.path.join(output_dir, img_filename) # 保存图像 img.save(img_path) # 将图像插入Markdown文件 img_tag = f'' md_file.write(img_tag + '\n\n') # 关闭PDF文件 pdf_document.close() print(f'Markdown content with images has been created at: {md_path}') # 复制markdown 内容到剪贴板 with open(md_path, 'r', encoding='utf-8') as file: import pyperclip # 读取文件内容 content = file.read() # 将内容复制到剪贴板 success = pyperclip.copy(content) print(f"success={success}") # 检查复制操作是否成功 if success or success==None: ShowMessage("文本已成功复制到剪贴板.") # print("copy ok") else: ShowMessage("复制操作失败,请重试.") # print("copy fail")
本文来自博客园,作者:FE-有限元鹰,转载请注明原文链接:https://www.cnblogs.com/aksoam/p/18136385
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程