提取pdf文档的目录1.0

news/2025/1/7 19:47:26/文章来源:https://www.cnblogs.com/redufa/p/18522834

image


import fitz  # PyMuPDF
import pandas as pd# 打开PDF文件
pdf_path = '控制之美.pdf'  # 请确保替换为正确的文件路径
document = fitz.open(pdf_path)# 初始化一个列表来存储目录信息
toc_list = []# 提取目录信息的函数
def extract_toc(toc, level=0):for item in toc:# 确保目录项至少包含标题if len(item) > 1 and item[1]:title = item[1]# 确保页码是数字类型page = item[2] if len(item) > 2 and isinstance(item[2], int) else Noneif page is not None:# 添加条目到列表toc_list.append({'Title': title,'Page': page,'Level': level})# 如果有子条目,递归提取if len(item) > 3 and item[3]:  # 子条目在索引3extract_toc(item[3], level + 1)# 获取PDF的目录
toc = document.get_toc(simple=False)# 提取目录信息
extract_toc(toc)# 关闭PDF文件
document.close()# 将列表转换为DataFrame
toc_df = pd.DataFrame(toc_list)# 将DataFrame输出到CSV文件
toc_df.to_csv('output.csv', index=False, encoding='utf-8')

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

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

相关文章

Redis实现消息发布订阅

对于一些解耦异步行为,往往会使用到MQ消息,但是很多时候可能由于条件受限没有可使用的消息队列供我们使用,那么则可以使用Redis来实现简单的消息发布订阅。 很简单,只需要三个类即可实现。 /*** MQ频道主题配置*/ @Configuration public class RedisConfig {@BeanMessageLi…

TenSunS对接JumpServer:如何把主机自动同步到JumpServer

🦄概述后羿 - TenSunS(原ConsulManager)是一个使用Flask+Vue开发,基于Consul的WEB运维平台,弥补了Consul官方UI对Services管理的不足;并且基于Consul的服务发现与键值存储:实现了Prometheus自动发现多云厂商各资源信息;基于Blackbox对站点监控的可视化维护;以及对自建与…

不同阻尼比下的振动形式-代码

import numpy as np import matplotlib.pyplot as plt# 定义参数 zeta = 0.5 # 阻尼比 omega_n = 1.0 # 自然频率 omega_d = omega_n * np.sqrt(1 - zeta**2) # 阻尼频率 varphi = np.pi / 4 # 相位角# 定义时间变量 t = np.linspace(0, 10, 1000) # 从0到10秒,1000个点#…

TenSunS监控REDIS:使用一个redis_exporter监控所有的Redis实例

🦄概述后羿 - TenSunS(原ConsulManager)是一个使用Flask+Vue开发,基于Consul的WEB运维平台,弥补了Consul官方UI对Services管理的不足;并且基于Consul的服务发现与键值存储:实现了Prometheus自动发现多云厂商各资源信息;基于Blackbox对站点监控的可视化维护;以及对自建与…

TenSunS监控Mysql:如何优雅的使用一个mysqld_exporter监控所有的MySQL实例

🦄概述后羿 - TenSunS(原ConsulManager)是一个使用Flask+Vue开发,基于Consul的WEB运维平台,弥补了Consul官方UI对Services管理的不足;并且基于Consul的服务发现与键值存储:实现了Prometheus自动发现多云厂商各资源信息;基于Blackbox对站点监控的可视化维护;以及对自建与…

干货!ClickHouse 24.x 集群部署(去zookeeper方案)文末附看板

主机配置 3台 12核 24G 2T存储的服务器部署去zookeeper模式的ClickHouse 24.X集群。 Ubuntu(3台服务器都要执行安装) sudo apt-get install -y apt-transport-https ca-certificates curl gnupg curl -fsSL https://packages.clickhouse.com/rpm/lts/repodata/repomd.xml.key…

KAFKA监控一条龙:史上最强Kafka看板+监控配置与告警规则

使用kafka_exporter监控多kafkakafka_exporter项目地址:https://github.com/danielqsj/kafka_exporter使用docker-compose部署多个kafka_exporter,每个exporter对接一个kafka。 注意:配置上每个kafka broker的地址,kafka3需要指定版本。version: 3.1 services:kafka-export…

Kubernetes Grafana看板更新啦!

K8S Dashboard CN 20240513 StarsL.cn Grafana官方地址: https://grafana.com/grafana/dashboards/13105 Grafana看板ID: 13105 kubernetes资源全面展示!包含K8S整体资源总览、微服务资源明细、Pod资源明细及K8S网络带宽,优化重要指标展示。 更新说明 v20240513更新了看板的所…

是时候扔掉Prometheus了,VictoriaMetrics全家桶入门与K8S部署

架构部署文件 项目仓库:https://github.com/starsliao/VictoriaMetrics本次将会部署以下组件: cd monit/master && kubectl apply -f .master├── 0.vm-single.yaml├── 1.kube-state-metrics_v2.12.0.yaml├── 1.node-exporter.yaml├── 1.vmagent.yaml├──…

基于 Astro 与 Directus 的新时代 JAMStack 博客实践

最近投入了大量摸鱼时间重构博客。现在大概告一段落了,向大家介绍一下整体的技术选型和具体实现的简要思路。 TLDR:JAMStack 实践,使用最新最潮的前端元框架 Astro,魔改 Astro Paper 主题,搭配 Headless CMS Directus,直通对接思源笔记内容同步,自建 SeaweedFS 分布式文…