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")
Python脚本 | 提取pdf页面为jpg的更多相关文章
- C#调用Python脚本打印pdf文件
介绍:通过pdf地址先将文件下载到本地,然后调用打印机打印,最后将下载的文件删除. 环境:windows系统.(windows64位) windows系统中安装python3.6.2环境 资料: O ...
- python操作三大主流数据库(5)python操作mysql⑤使用Jinja2模板提取优化页面展示
python操作mysql⑤使用Jinja2模板提取优化页面展示 在templates目录下的index.html.cat.html等页面有一些共同的元素,代码比较冗余可以使用模板提取公共代码,在各网 ...
- Python使用Tabula提取PDF表格数据
今天遇到一个批量读取pdf文件中表格数据的需求,样式大体是以下这样: python读取PDF无非就是三种方式(我所了解的),pdfminer.pdf2htmlEX 和 Tabula.综合考虑后,选择了 ...
- 测试网站页面网速的一个简单Python脚本
无聊之余,下面分享一个Python小脚本:测试网站页面访问速度 [root@huanqiu ~]# vim pywww.py #!/usr/bin/python # coding: UTF-8 imp ...
- arcgis python脚本工具实例教程—栅格范围提取至多边形要素类
arcgis python脚本工具实例教程-栅格范围提取至多边形要素类 商务合作,科技咨询,版权转让:向日葵,135-4855_4328,xiexiaokui#qq.com 功能:提取栅格数据的范围, ...
- 利用python第三方库提取PDF文件的表格内容
小爬最近接到一个棘手任务:需要提取手机话费电子发票PDF文件中的数据.接到这个任务的第一时间,小爬决定搜集各个地区各个时间段的电子发票文件,看看其中的差异点.粗略统计下来,PDF文件的表格框架是统一的 ...
- Python:解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比
pdf 是个异常坑爹的东西,有很多处理 pdf 的库,但是没有完美的. 一.pdfminer3k pdfminer3k 是 pdfminer 的 python3 版本,主要用于读取 pdf 中的文本. ...
- 使用Python脚本分析你的网站上的SEO元素
撰稿马尼克斯德芒克 上2019年1月, Sooda internetbureau Python就是自动执行重复性任务,为您的其他搜索引擎优化(SEO)工作留出更多时间.没有多少SEO使用Python来 ...
- Python快速入门PDF高清完整版免费下载|百度云盘
百度云盘:Python快速入门PDF高清完整版免费下载 提取码:w5y8 内容简介 这是一本Python快速入门书,基于Python 3.6编写.本书分为4部分,第一部分讲解Python的基础知识,对 ...
- 某互联网后台自动化组合测试框架RF+Sikuli+Python脚本
某互联网后台自动化组合测试框架RF+Sikuli+Python脚本 http://www.jianshu.com/p/b3e204c8651a 字数949 阅读323 评论1 喜欢0 一.**Robo ...
随机推荐
- 渗透测试-前端加密分析之RSA响应加密
本文是高级前端加解密与验签实战的第7篇文章,本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过请求包和响应包加密来爆破登录界面. 分析 这里的公私钥同上文一样是通过服务端获取 ...
- 『玩转Streamlit』--集成Plotly
之前介绍了如何在Streamlit App中使用Matplotlib库来绘图. 本篇介绍 Steamlit结合Poltly的方法,相比于Matplotlib,Poltly的交互性更强, 更适合在Web ...
- Qt音视频开发16-通用悬浮按钮工具栏的设计
一.前言 通用悬浮按钮工具栏这个功能经过了好几个版本的迭代,一开始设计的时候是写在视频控件widget窗体中,当时功能简单就放一排按钮在顶部悬浮widget中就好,随着用户需求的变化,用户需要自定义悬 ...
- Qt编写安防视频监控系统61-子模块5设备控制
一.前言 设备控制模块,和云台控制模块都是用的onvif协议通信,可以对选中的通道的摄像机(ONVIF协议),进行获取参数.设置参数.手动校时.重启设备.抓拍图片.模拟报警等操作,可以对摄像机的明亮度 ...
- TotalUninstaller(Setup.ForcedUninstall.exe)可执行程序和源码的下载
TotalUninstaller(Setup.ForcedUninstall.exe)可执行程序和源码的下载: 链接:https://pan.baidu.com/s/1uBiJ6z1RNVmBEUiF ...
- WIN10删除文件时提示“找不到该项目,该项目不在......中,请确认该项目的位置,然后重试”的解决办法
问题描述: 最近有部分WIN10用户在删除文件时提示"找不到该项目,该项目不在......中,请确认该项目的位置,然后重试". 解决办法: 1.首先新建一个TXT文档(为了方便使用 ...
- 报错test_features2d.cpp:51:10: fatal error: features2d/test/test_detectors_regression.impl.hpp: 没有那个文件
问题描述: ubuntu18.04安装opencv4.5.1+contrib 报错test_features2d.cpp:51:10: fatal error: features2d/test/tes ...
- Python 问题汇总
一. Python 环境问题 使用pytest 在terminal中执行脚本调用python3.9, 而使用pycharm 的virtualenv 执行脚本调用的是python3.10, 由于环境不一 ...
- PHP简介与开发环境搭建
PHP简介与开发环境搭建 一.PHP简介 PHP,全称PHP: Hypertext Preprocessor(超文本预处理器),是一种广泛使用的开源服务器端脚本语言,尤其适合Web开发.PHP由Ras ...
- 记一次腾讯云轻量级服务器安装mysql配置完成后,外网无法访问问题
一.配置信息正常 1.防火墙配置通过 2.mysql端口正常启动netstat -antlp | grep 3306 3.配置都正常,但是telnet访问不通超时Operation timed out ...