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]
# 檢查標題的首字元
if title[0].isdigit():
title_level = 2
else:
title_level = 1
# 確保頁碼是數字型別
page = item[2] if len(item) > 2 and isinstance(item[2], int) else None
if page is not None:
# 新增條目到列表
toc_list.append({
'Title': title,
'Page': page,
'Level': level + title_level
})
# 如果有子條目,遞迴提取
if len(item) > 3 and item[3]: # 子條目在索引3
extract_toc(item[3], level)
# 獲取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')
提取pdf目錄,並且分級
相關文章
- 提取pdf文件的目錄1.0
- vscode如何設定目錄分級顯示VSCode
- vue-前端匯出 pdf 並且壓縮 zipVue前端
- linux 壓縮目錄並排除某個目錄Linux
- 獲取和設定pdf目錄
- 使用vscode寫Markdown並且匯出為pdf(乾貨)VSCode
- 提取pdf指定頁
- 生存目錄-無層級
- HttpURLConnection 實戰Get/Post 請求並且儲存PDF檔案HTTP
- 網站分類目錄網站
- node js 批量處理pdf,提取關鍵資訊,並匯出excelJSExcel
- Linux中返回上一級目錄和返回根目錄命令Linux
- php檔案操作之提取檔案/目錄的名稱PHP
- 列出並排序檔案系統根目錄(/)下各個目錄的大小排序
- PPT怎麼設計圖示並列式目錄?PPT設計簡潔的圖示並列式目錄
- Laravel 配置二級目錄訪問Laravel
- Python 提取PDF文字和圖片Python
- 高效的PDF文字提取技術
- C# 提取PDF中的表格C#
- 使用thin jar啟動並指定lib目錄JAR
- 直播平臺搭建,使用vue-pdf 實現pdf線上預覽並且自定義預覽框高度Vue
- python自動開啟瀏覽器下載zip,並且提取內容寫入excelPython瀏覽器Excel
- tar命令打包指定目錄及其檔案,而不包括其上級目錄
- tar解壓到指定目錄並去掉壓縮檔案的層級資料夾
- nginx二級目錄代理minio指定桶Nginx
- c++ Cmake工程(1)同級目錄C++
- Python教程:拆分多級目錄的方法Python
- vmware安裝VMware Tools,並設定共享目錄
- 檔案或目錄損壞且無法讀取怎麼辦?
- PDF的資訊提取的問題
- PbootCMS修改模板儲存目錄設定二級子目錄boot
- Godot遍歷目錄下檔案,並建立按鈕Go
- 使用 marked 解析 Markdown 並生成目錄導航 TOC 功能
- 如何用Python批量提取PDF文字內容?Python
- !!!提取檔案記錄!!!
- UML使用者指南(第2版)【帶目錄高清pdf下載】
- 記一次正規表示式實戰,給pdf加目錄
- python複製資料夾到一個目錄,或者按目錄層級建立複製Python