python将pdf中的每一页转化为图片保存

import PyPDF4
import pikepdf
import fitz
#对pdf文件进行简单的解密 
def jiemi(pdfpath):new_pdfpath = pdfpath[:-4] + '_new' + pdfpath[-4:]fp = open(pdfpath, "rb+")pdfFile = PyPDF4.pdf.PdfFileReader(fp)# pdf 解密if pdfFile.isEncrypted:pdf = pikepdf.open(pdfpath, password='')pdf.save(new_pdfpath)return new_pdfpath #将每一页转化为图片并保存
def pdf_image(pdf_name):img_paths = []pdf = fitz.Document(pdf_name)for i,pg in enumerate(range(0, pdf.pageCount)):page = pdf[pg]  # 获得每一页的对象trans = fitz.Matrix(3.0, 3.0).preRotate(0)pm = page.getPixmap(matrix=trans, alpha=False)  # 获得每一页的流对象# pm.writePNG(dir_name + os.sep + base_name[:-4] + '_' + '{:0>3d}.png'.format(pg + 1))  # 保存图片img_path = pdf_name[:-4] + '_' + str(pg+1) + '.jpg'pm.writePNG(img_path)  # 保存图片img_paths.append(img_path)pdf.close()return img_paths

如果报错:
ModuleNotFoundError: No module named ‘frontend’
请参考链接: https://blog.csdn.net/xc_zhou/article/details/102596542


import osimport fitz
import json
# os.chdir("data")
# print(os.listdir())
from collections import namedtuple
TextUnit = namedtuple('TextUnit', ['x0', 'y0', 'x1', 'y1', 'span', 'page_no'])
base_path = os.path.dirname(os.path.abspath(__file__))data_dir_path = os.path.join(base_path, "data")os.chdir(data_dir_path)tasks = {os.path.splitext(file)[0]:os.path.join(data_dir_path, file) for file in os.listdir()}# 转 txt
def to_txt():tasks_len = len(tasks)for index, fname in enumerate(tasks):print("{}-{}".format(index, tasks_len))os.chdir(os.path.join(base_path, "txt2"))dir_name = str(index) + "-"+fnameos.mkdir(dir_name)os.chdir(os.path.join(base_path, "txt2", dir_name))doc = fitz.open(tasks[fname])size_limit=-1nl_char='\n'sep_char=' 'for page_no, page in enumerate(doc):# if page_no != 3:#     continuetext_list = []page_num = str(page_no)page_len = len(page_num)page_num = page_num if page_len >= 3 else "0"+page_num if page_len == 2 else "00"+page_numnew_line = Truejson_obj = json.loads(page.getText('json'))for block in json_obj.get('blocks', []):if new_line and text_list:text_list.append("\n")for line in block.get('lines', []):for span in line.get('spans', []):text = span.get('text', '')text_list.append(text)x0, y0, x1, y1 = span['bbox']new_line = text.endswith(' ')new_page = Falseout = open(fname + "-" + page_num + ".txt", "wb")          text = "".join(text_list).encode("utf8")  out.write(text)                       out.close()# 转图片
def to_img():for index, fname in enumerate(tasks):os.chdir(os.path.join(base_path, "img"))dir_name = str(index) + "-"+fnameos.mkdir(dir_name)os.chdir(os.path.join(base_path, "img", dir_name))doc = fitz.open(tasks[fname])for index, page in enumerate(doc):pix = page.getPixmap(alpha=False)pageimg_name = "page-%i.png" % page.numberpix.writePNG(pageimg_name)# 截取
def to_delete():for index, fname in enumerate(tasks):os.chdir(os.path.join(base_path, "to_pdf"))dir_name = str(index) + "-"+fnameos.mkdir(dir_name)os.chdir(os.path.join(base_path, "to_pdf", dir_name))doc = fitz.open(tasks[fname])doc2 = fitz.open()doc2.insertPDF(doc, to_page = 9)  # first 10 pages# doc2.insertPDF(doc1, from_page = len(doc1) - 10) # last 10 pagesdoc2.save("first-and-last-10.pdf")# for index, page in enumerate(doc):#     pix = page.getPixmap(alpha=False)#     pageimg_name = "page-%i.png" % page.number#     pix.writePNG(pageimg_name)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478833.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美团外卖Android Crash治理之路

Crash率是衡量一个App好坏的重要指标之一,如果你忽略了它的存在,它就会愈演愈烈,最后造成大量用户的流失,进而给公司带来无法估量的损失。本文讲述美团外卖Android客户端团队在将App的Crash率从千分之三做到万分之二过程中所做的大…

全栈深度学习第7期: 研究方向这么多,哪些是有有趣又潜力的呢?

一起追剧鸭简介Berkeley全栈深度学习追剧计划是由夕小瑶的卖萌屋发起的优质公开课打卡项目,通过微信群为同期追剧的小伙伴提供交流平台。关于该计划的详请见这里。Berkeley深度学习追剧群目前已有1000小伙伴加入,公众号后台回复口令 深度学习追剧 入群。…

会议交流 | 人工智能与机器学习创新峰会 - 知识图谱与图神经网络分会

人工智能与机器学习创新峰会力邀 HBAT 等大厂资深研发专家做分享和技术展望时间:9月4日下午1:30地点:浦东海神诺富特大酒店OpenKG开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技…

Android官方开发文档Training系列课程中文版:电池续航时间优化之检查与监测坞的状态与类型

原文地址:http://android.xsoftlab.net/training/monitoring-device-state/docking-monitoring.html Android设备可以被放置在若干种不同的扩展坞中。这些扩展坞包括汽车坞与家庭坞以及数字与模拟坞。其中坞的状态与充电状态非常相近,因为这些坞也提供了…

OpenCV和tesseract-ocr的安装及使用

tesseract-ocr的安装及使用:https://blog.csdn.net/qq_37193537/article/details/81335165 三步解决python PermissionError: [WinError 5]拒绝访问的情况: https://www.jb51.net/article/185218.html https://www.pianshen.com/article/43251972054/ …

LeetCode 1046. 最后一块石头的重量(priority_queue 堆)

1. 题目 有一堆石头&#xff0c;每块石头的重量都是正整数。 每一回合&#xff0c;从中选出两块最重的石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。那么粉碎的可能结果如下&#xff1a; 如果 x y&#xff0c;那么两块石头都…

深度学习如何均衡精度、内存、计算和通信开销?

文 | 立交桥跳水冠军知乎本文已获作者授权&#xff0c;禁止二次转载鱼与熊掌不可兼得&#xff0c;深度学习领域中的几个指标也相同。主要的指标有如下四个&#xff1a;&#xff08;1&#xff09;精度&#xff1a;自然精度是一个模型最根本的衡量指标&#xff0c;如果一个模型精…

深度学习在美团搜索广告排序的应用实践

一、前言 在计算广告场景中&#xff0c;需要平衡和优化三个参与方——用户、广告主、平台的关键指标&#xff0c;而预估点击率CTR&#xff08;Click-through Rate&#xff09;和转化率CVR&#xff08;Conversion Rate&#xff09;是其中非常重要的一环&#xff0c;准确地预估CT…

论文浅尝 - ICML2020 | 拆解元学习:理解 Few-Shots 任务中的特征表示

论文笔记整理&#xff1a;申时荣&#xff0c;东南大学博士生。来源&#xff1a;ICML2020链接&#xff1a;http://arxiv.org/abs/2002.06753元学习算法会生成特征提取器&#xff0c;这些特征提取器在进行few-shot分类时就可以达到最新的性能。尽管文献中有大量的元学习方法&…

Android官方开发文档Training系列课程中文版:电池续航时间优化之检查、检测网络连接状态

原文地址&#xff1a;http://android.xsoftlab.net/training/monitoring-device-state/connectivity-monitoring.html 通常会有一些后台服务需要连接到网络来更新数据。但是如果没有连接到互联网&#xff0c;或者由于网络太慢而不能完成更新&#xff0c;那么为什么不在连接到网…

LeetCode 304. 二维区域和检索 - 矩阵不可变(DP)

1. 题目 2. 解题 类似题目&#xff1a;LeetCode 308. 二维区域和检索 - 可变&#xff08;前缀和&#xff09; dp[i][j]数组表示 从左上角到i,j位置的所有和 sum[i1][j1]sum[i1][j]sum[i][j1]matrix[i][j]−sum[i][j]sum[i1][j1] sum[i1][j]sum[i][j1]matrix[i][j]-sum[i][j]…

一键离线下载python安装包:

Python 第三方库 批量下载安装包,离线批量安装Python第三方库&#xff1a;https://www.cnblogs.com/qiuyubai/p/14084501.html 核心代码&#xff1a; 一键生成安装包的索引文件requirements.txt pip freeze >requirements.txt pip download -d ./ -r requirements.txt全部…

论文浅尝 - ICML2020 | 对比图神经网络解释器

论文笔记整理&#xff1a;方尹&#xff0c;浙江大学在读博士&#xff0c;研究方向&#xff1a;图表示学习。Contrastive Graph Neural Network Explanation动机与贡献本文主要关注图神经网络的解释性问题&#xff0c;这样的解释有助于提升GNN的可信度&#xff0c;能够更好的理解…

这可能是最简单又有效的自监督学习方法了

文 | 王珣知乎本文已获作者授权&#xff0c;禁止二次转载从Kaiming的MoCo和Hinton组Chen Ting的SimCLR开始&#xff0c;自监督学习&#xff08;SSL&#xff09;成了计算机视觉的热潮显学。凡是大佬大组&#xff08;Kaiming, VGG&#xff0c;MMLAB等&#xff09;&#xff0c;近两…

大众点评账号业务高可用进阶之路

引言 在任何一家互联网公司&#xff0c;不管其主营业务是什么&#xff0c;都会有一套自己的账号体系。账号既是公司所有业务发展留下的最宝贵资产&#xff0c;它可以用来衡量业务指标&#xff0c;例如日活、月活、留存等&#xff0c;同时也给不同业务线提供了大量潜在用户&…

Android官方开发文档Training系列课程中文版:电池续航时间优化之按需开启广播接收器

原文地址&#xff1a;http://android.xsoftlab.net/training/monitoring-device-state/manifest-receivers.html 监测设备状态变化最简单的实现方式就是为每种状态都创建一个广播接收器&#xff0c;然后只需在相应的广播接收器内依据当前的设备状态重新执行各自的任务即可。 …

LeetCode 493. 翻转对(归并排序)

1. 题目 给定一个数组 nums &#xff0c;如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。 你需要返回给定数组中的重要翻转对的数量。 输入: [1,3,2,3,1] 输出: 2输入: [2,4,3,5,1] 输出: 3来源&#xff1a;力扣&#xff08;LeetCode&#x…

执行Dockerfile构建基础镜像,建立python工作环境

Docker Dockerfile&#xff1a;https://www.runoob.com/docker/docker-dockerfile.html 核心内容&#xff1a; 指令详解 COPY 复制指令&#xff0c;从上下文目录中复制文件或者目录到容器里指定路径。 格式&#xff1a; COPY [--chown<user>:<group>] <源路径…

论文浅尝 - ICML2020 | 通过关系图上的贝叶斯元学习进行少样本关系提取

论文笔记整理&#xff1a;申时荣&#xff0c;东南大学博士生。来源&#xff1a;ICML 2020链接&#xff1a;http://arxiv.org/abs/2007.02387一、介绍本文研究了少样本关系提取&#xff0c;旨在通过训练每个关系少量带有标记示例的句子来预测句子中一对实体的关系。为了更有效地…

美团外卖客户端高可用建设体系

背景 美团外卖从2013年11月开始起步&#xff0c;经过数年的高速发展&#xff0c;一直在不断地刷新着记录。2018年5月19日&#xff0c;日订单量峰值突破2000万单&#xff0c;已经成为全球规模最大的外卖平台。业务的快速发展对系统稳定性提出了更高的要求&#xff0c;如何为线上…