2023-07-13 Fitz完成PDF转TXT

news2025/1/19 11:30:14

Fitz完成PDF转TXT

前言
1、本机为Inspiron 5005,为64位,所用操作系统为Windos 10。所使用开发环境为Anacondajupyter notebook
2、本教程主要实现了安装Anacondajupyter notebook,使用Fitz完成PDF转TXT。


Anaconda和Jupyter notebook简介
1、Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包以及其依赖项,并且也集成了Jupyter notebook。(注:安装了Anaconda就可以,不用再安装python。)
2、Anaconda支持Linux、Mac、Windows,包含众多流行的科学计算、数据分析的Python包。
3、Anaconda和Jupyter notebook已经成为了数据分析的标准环境。
4、Jupyter Notebook是一个基于网页的交互式笔记本,支持运行多种编程语言,它本质上是一个Web应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和markdown。用途包括:数据清理和转换,数值模拟,统计建模,机器学习等


安装Anaconda和Jupyter notebook
1、点击链接去清华大学开源软件镜像网站上下载如下图红框中框出的版本。(注:此版本只适用于Windows的64位操作系统,若是其他操作系统请按自身操作系统对应版本下载。)

2、找到刚刚下载好的软件,双击打开,如图,然后点击next即可。

3、点击I Agree即可。

4、选择All Users,然后点击Next即可。

5、如下图红框中所示,更改安装路径,然后点击Next即可。(注:这个文件夹不要使用中文或者空格、特殊字符。)

6、直接点击Install即可。

7、在如下界面耐心等待安装完成,可能会花点时间。

8、安装完成后会出现如下界面,然后点击Next即可。

9、若有这一步,点击Skip即可。

10、取消勾选,点击Finish即可,安装Anaconda结束。(注:这一步后面的为配置环境变量的过程,配置环境变量可以使电脑更好、更便捷地使用Anaconda,但不一定是必须。)

11、在键盘上按下win键,然后在搜索框中输入“环境变量”,点击如下图中红框中的“编辑系统环境变量”。

12、点击“环境变量”。

13、选中Path,然后点击编辑即可。

14、如下图所示,将自己安装Anaconda的如下路径逐步新建添加到环境变量中,最后点确定即可。(注:要确定自己的Anaconda安装的路径,并且一次只可以新建一条,有耐心点,慢慢创建完就好。)

15、点击确定。

16、在键盘上按下win键,然后在搜索框中输入“cmd”,点击如下图中红框中的“命令提示符”。

17、在窗口中输入python,然后按下回车键,查看有没有python环境,若有的话,应当如下图所示。

18、在窗口中输入exit(),然后按下回车键,退出python环境。再输入conda --version,查看有没有conda环境,若有的话,应当如下图所示。(注:如果提示conda不是内部或外部命令,那一般是Anaconda的环境变量没配置好。好好检查一下。)

19、在键盘上按下win键,然后在搜索框中输入“Anaconda”,双击如下图中红框中的“Anaconda Prompt”,打开Anaconda Prompt,显示如下界面即可。(注:到这一步安装和配置Anaconda就彻底完成了。)



使用Anaconda和Jupyter notebook完成PDF转TXT
1、在自己认为空间很大的磁盘下创建一个文件夹,可自己任意命名。

2、将刚刚自己创建的文件夹的路径复制,然后打开Anaconda Prompt,在其中先输入命令E:,然后输入命令cd Teach_Code(注:输入第一个命令的时候一定要按照自己的文件夹路径进入电脑相应磁盘。)

3、输入命令conda create -n teach python=3.10,创建一个名称为teach、python版本为3.10的虚拟环境。

4、输入命令y

5、输入命令conda activate teach,激活虚拟环境teach。

6、输入命令pip install ipykernel ipython,安装将虚拟环境添加到jupyter notebook所需要的包。

7、输入命令pip install PyMuPDF,安装将PDF转成TXT所需要的包。

8、输入命令python -m ipykernel install --user --name teach --display-name teach,将在Anaconda中创建的虚拟环境teach添加到jupyter notebook中,出现如下界面即证明添加成功。

9、输入命令jupyter notebook,在当前目录下打开jupyter notebook。

10、在打开的jupyter notebook中,我们可以看到当前文件夹是空的,因为我们打开的是我创建的文件夹,所以是空的。然后点击New->teach,创建一个以teach为虚拟环境的.ipynb文件。

11、将我们要处理的PDF文件放入我们刚开始创建的文件夹中,比如我的就是Teach_Code。

12、在刚刚jupyter notebook中创建的.ipynb文件中写如下代码。
(注:示例代码如下)

# 导入当前要使用的PDF转换文字工具包
import fitz
import datetime
import time

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 进行文字精度以及运行时间测试 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# 获取当前系统时间
start_time = datetime.datetime.now()

# 打开 PDF 文件
with fitz.open('Mass spectrometry of inorganic, coordination, and organometallic compounds.pdf') as doc:

    # 创建一个空字符串
    text = ""

    # 遍历每一页
    for page in doc:

        # 获取当前页的文本内容
        page_text = page.get_text()

        # 将当前页的文本内容添加到总字符串中
        text += page_text + "\n"

# 将文本保存到 .txt 文件中
with open('example.txt', 'w', encoding='utf-8') as file:
    file.write(text)

# 获取程序执行时间
end_time = datetime.datetime.now()
elapsed_time = end_time - start_time
milliseconds = int(elapsed_time.total_seconds() * 1000)

print(f"处理一个281页PDF的时间:{milliseconds} 毫秒")
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

13、点击运行,即可得到如下图所示结果。

14、也可以在我们开头创建的文件夹中看到我们生成的example.txt文件,如果有兴趣还可以看看.txt文件的内容是否与你需要的一直。(注:本教程到此就结束了,大家如有兴趣可以多去了解了解。)

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

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

相关文章

SpringCloud Alibaba——Nacos服务领域模型

目录 一、Nacos服务领域模型二、Nacos服务领域模型图解 一、Nacos服务领域模型 模型名称解释Namespace实现环境隔离,默认值publicGroup不同的service可以组成一个Group,默认值Default-GroupService服务名称Cluster对指定的微服务虚拟划分,默…

Scratch 多场景收集物品

Scratch 多场景收集物品 本程序开始运行时4种物品各复制10次并移动到随机位置,交通工具角色跟随鼠标,碰到上述4种物品后删除物品,物品清空后切换到下一个背景、更换交通工具角色并重新生成4种物品。交通工具角色的切换通过判断背景变量的值来…

ubuntu在arm平台下编译安装Qt5.15.2和PySide2(亲测可用)

一、安装Qt5.15.2 1.下载源码首先在官网下载Qt5.15.2的源码:https://download.qt.io/archive/qt/5.15/5.15.2/single/ 2.先安装编译qt的环境 sudo apt-get update sudo apt-get install build-essential sudo apt-get install libgl1-mesa-dev sudo apt-get inst…

【推荐】高效办公利器——高效工具来袭!

下载链接 https://zh.snipaste.com/download.html 软件介绍 Snipaste 是一个简单但强大的截图工具, 直接按 F1 截图 F3 贴图在屏幕,工具蓝中提供了很多功能:框选标记、折线、画笔、记号笔、马赛克、文本标注、橡皮擦、撤销、退出、截图定在…

Python爬虫——urllib_ajax的get请求爬取豆瓣电影前十页

ajax: 就是一段js代码,通过这段代码,可以让页面发送异步的请求,或者向服务器发送一个东西,即和服务器进行交互 对于ajax: 一定会有 url,请求方法(get, post),可能有数据一般使用 j…

【C++】STL——vector的简单介绍、vector的定义、vector的构造函数声明、vector iterator的使用

文章目录 1.vector的含义2.vector的使用2.1vector构造函数声明(1)vector()(2)vector(size_type n, const value_type& val value_type())(3)vector(const vector& x) (4)ve…

20230714----重返学习-DOM-diff算法-构建工具-包管理工具-Vite基本使用-Vue3新特性

day-112-one-hundred-and-twelve-20230714-DOM-diff算法-构建工具-包管理工具-Vite基本使用-Vue3新特性 DOM-diff算法 vue2中diff算法 同级比对,跨级比对性能差。而且采用的方式是递归比对,更差一点。根节点只能有一个,比对的时候会从根节…

Android 多边形导圆角(Path画折线导圆角)

前言:用path画折线,2条线相交处导圆角 简介:为开发者提供工具类,方便对使用path画折线设置圆角。使用path画多边形,如三角形、矩形、平行四边形等,同时设置圆角。另外提供计算直线上某点坐标。 实现原理 …

Matplotlib下载和安装

Matplotlib 是 Python 的第三方绘图库,它非常类似于 MATLAB。在使用 Matplotlib 软件包之前,需要对其进行安装。本节以 Windows10 系统为例,介绍 Matplotlib 的几种安装方式。 MATLAB 是一款商业软件,主要用于数据分析、图像处理…

http协议(二)

欢迎来到南方有乔木的博客!!! 博主主页:点击点击!戳一戳!! 博主名:南方有乔木呀 博主简介: 一名在校大学生,正在努力学习Java语言编程。穷且意坚,不坠青云…

Java常规写法与新特性对比详解

Java常规写法与新特性对比详解 ✨1. Lambda表达式对比常规写法:⭐️1.1 迭代集合:⭐️1.2 条件过滤:⭐️1.3 映射转换: ✨2. Stream API对比常规写法:⭐️2.1 过滤和计数:⭐️2.2 排序:⭐️2.3 …

通过 Postman+Newman+Jenkins 进行接口自动化测试和进一步实现 CI

目录 前言: Postman 部分 Collection 或者说测试集的建立 Postman 使用详解 测试工具 mock server Newman 的安装和使用 newman 的使用 对 SSL 的支持 newman 第三版以后(目前已经是 4.3.1)可以支持通过 CLI 选项来支持 SSL 对 new…

Python 使用 Stable Diffusion API 生成图片示例

代码: import base64 import datetime import json import osimport requestsdef submit_post(url: str, data: dict):"""Submit a POST request to the given URL with the given data.:param url: url:param data: data:return: response"…

用html+javascript打造公文一键排版系统6:三级标题排版

正文中的标题分为四级,文中结构层次序数依次可以用“一、”“(一)”“1.”“(1)”标注;一般第一层用黑体字、第二层用楷体字加粗、第三层和第四层用仿宋体字标注。 对于以阿拉伯数字开头、后接英文点号.及…

First image then video A two-stage network for spatiotemporal video denoising

First image then video: A two-stage network for spatiotemporal video denoising http://export.arxiv.org/abs/2001.00346 作者:王策 南开大学 本文针对的是视频中出现大运动。或者前景和背景由于弱光环境较弱时造成去噪性能差的问题而解决,论文时在…

String 类的常用方法

String类的常用方法 说明 String类是保存字符串常量的,每次更新都需要重新开辟空间,效率比较低,因此 java 设计者还提供了StringBuilder和StringBuffer来增强String的功能,并提高效率。 常用方法 public class String01 {publi…

C语言——动态内存管理(malloc, calloc, realloc, free, 柔性数组详解)

C语言——动态内存管理 1. 为什么需要动态内存管理 我们以往定义数组,都是这么定义的: int nums[10] {0};以这种方式开辟空间有两个特点: 空间开辟的大小是固定的数组在声明的时候,必须指定数组的长度,它所需要的内…

数据库应用:Navicat连接MySQL

目录 一、理论 1.Navicat 2.MVCC 二、实验 1.Navicat连接MySQL 2.navicat的基础操作 3.测试提交事务 三、问题 1.解决1130 2.解决2003 四、总结 一、理论 1.Navicat (1)简介 Navicat Premium 是一套数据库开发工具,实现从单一应用…

基于时域特征和频域特征组合的敏感特征集,再利用CNN进行轴承故障诊断(python编程)

1.文件夹介绍(使用的是CWRU数据集) 0HP-3HP四个文件夹装载不同工况下的内圈故障、外圈故障、滚动体故障和正常轴承数据。 2.模型 按照1024的长度分割样本,构建内圈故障、外圈故障、滚动体故障和正常轴承样本集 2.1.计算11种时域特征值 # 计…

EfficientNet论文笔记

EfficientNet论文笔记 通过NAS平衡了channel,depth,resolution,发现在相同的FLOPs下,同时增加 depth和 resolution的效果最好。 数据集效果小于resolution怎么办? EfficientNet—b0框架 表格中每个MBConv后会跟一个…