Python讀取PDF:文本、圖片與文檔屬性

在日常的數據采集、文檔歸檔與信息挖掘過程中,PDF格式因其版式固定、內容穩定而被廣泛使用。Python 開發者若希望實現 PDF 內容的自動化提取,選擇一個易用且功能完善的庫至關重要。本文將介紹如何用Python實現 PDF文本讀取圖片提取 以及 文檔屬性讀取 三大核心操作,適用于信息抽取、電子檔案處理等場景。

文章目錄

    • Python讀取PDF文本
    • Python讀取PDF圖片
    • Python讀取PDF文檔屬性
    • 總結

本文使用免費的 Free Spire.PDF for Python,pip安裝:pip install spire.pdf.free


Python讀取PDF文本

在PDF中提取可識別的文字內容,是信息處理的基礎需求。Spire.PDF 提供了 PdfTextExtractor 類,可逐頁提取文本,并通過參數控制提取方式。

操作說明:

  1. 創建 PdfDocument 實例并加載PDF;
  2. 遍歷每一頁,構建 PdfTextExtractor
  3. 設置提取選項,如是否簡化布局;
  4. 累加獲取到的文本內容。

代碼示例:

from spire.pdf import PdfDocument, PdfTextExtractor, PdfTextExtractOptions# 創建 PdfDocument 實例并加載文檔
pdf = PdfDocument()
pdf.LoadFromFile("sample.pdf")all_text = ""
# 遍歷所有頁面
for pageIndex in range(pdf.Pages.Count):page = pdf.Pages.get_Item(pageIndex)# 創建文本提取器text_extractor = PdfTextExtractor(page)# 設置提取選項options = PdfTextExtractOptions()options.IsExtractAllText = Trueoptions.IsSimpleExtraction = True# 提取文本并累加all_text += text_extractor.ExtractText(options)# 輸出全部文本內容
print(all_text)

PDF文檔
Python讀取PDF示例PDF文檔

讀取的PDF文本
Python讀取PDF文本


Python讀取PDF圖片

PDF中的圖片可能包含插圖、圖標、水印等重要信息。Spire.PDF 提供了 PdfImageHelper 工具類,可提取頁面中嵌入的圖像并保存為文件。

操作說明:

  1. 加載PDF文檔并獲取頁面;
  2. 使用 PdfImageHelper.GetImagesInfo() 獲取圖片信息;
  3. 遍歷并保存提取的圖片對象。

代碼示例:

from spire.pdf import PdfDocument, PdfImageHelper# 加載PDF文件
pdf = PdfDocument()
pdf.LoadFromFile("sample.pdf")# 獲取第一頁
page = pdf.Pages.get_Item(0)# 創建圖片助手
image_helper = PdfImageHelper()
# 獲取頁面中的圖片信息
images_info = image_helper.GetImagesInfo(page)# 保存圖片為本地文件
for i in range(len(images_info)):images_info[i].Image.Save("output/Images/image" + str(i) + ".png")

讀取的PDF圖片:
Python讀取PDF圖片


Python讀取PDF文檔屬性

除了內容本身,PDF還可能包含元數據(如標題、作者、關鍵詞等),便于進行文檔分類與檢索。Spire.PDF 支持直接讀取這些信息。

操作說明:

  1. 加載PDF文件;
  2. 通過 DocumentInformation 屬性訪問文檔元數據;
  3. 打印或記錄相關屬性值。

代碼示例:

from spire.pdf import PdfDocument# 加載PDF文件
pdf = PdfDocument()
pdf.LoadFromFile("sample.pdf")# 獲取文檔屬性信息
properties = pdf.DocumentInformation
print("標題: " + properties.Title)
print("作者: " + properties.Author)
print("主題: " + properties.Subject)
print("關鍵詞: " + properties.Keywords)

讀取的PDF文檔屬性
Python讀取PDF文檔屬性


總結

使用 Free Spire.PDF for Python,可以輕松完成以下三類典型的 PDF 信息提取操作:

  • 讀取PDF文本:逐頁提取文字內容,適用于全文分析、搜索系統等;
  • 讀取PDF圖片:提取嵌入圖像用于歸檔、識別或后續處理;
  • 讀取PDF文檔屬性:訪問標題、作者、關鍵詞等元信息,輔助分類索引。

以上功能均可在本地環境中快速部署,適合構建輕量級 PDF 處理工具或集成至業務系統中。


更多教程請參考:Spire.PDF for Python 教程中心

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/83950.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83950.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/83950.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

excel中數字不滿六位在左側前面補0的方法

如下圖“代碼”列,想要實現統一的六位,如果不足六位,在前面(左側)補0。 實現方法: 使用公式TEXT(A2,"000000")注意務必是用雙引號。 目標實現: 如果想要脫離原數據,復制…

軟考 系統架構設計師系列知識點之雜項集萃(82)

接前一篇文章:軟考 系統架構設計師系列知識點之雜項集萃(81) 第148題 “41”視圖主要用于描述系統邏輯架構,最早由Philippe Kruchten于1995年提出。其中( )視圖用于描述對象模型,并說明系統應該…

Langgraph實戰--自定義embeding

概述 在Langgraph中我想使用第三方的embeding接口來實現文本的embeding。但目前langchain只提供了兩個類,一個是AzureOpenAIEmbeddings,一個是:OpenAIEmbeddings。通過ChatOpenAI無法使用第三方的接口,例如:硅基流平臺…

(附實例代碼及圖示)混合策略實現 doc-doc 對稱檢索

HyDE 混合策略 在前面的文章中,學習的優化策略都是將對應的 查詢 生成 新查詢,通過 新查詢 來執行相應的檢索,但是在數據庫中存儲的數據一般都是 文檔 層面上的,數據會遠遠比 查詢 要大很多,所以 query 和 doc 之間是…

webui無法注冊如何配置

1. 初始登陸界面 docker部署的腳本為: docker run -d \ -p 8180:8080 --gpusall \ -v ollama:/root/.ollama \ -v /home/pretrained_model/output:/app/backend/output \ --name open-webui \ --restart always ghcr.io/open-webui/open-webui:ollama 2. 新增注冊入…

力扣 88.合并兩個有序數組

文章目錄 題目介紹題解 題目介紹 題解 法一&#xff1a;暴力法 class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {for(int i 0; i < n; i){nums1[mi] nums2[i];}Arrays.sort(nums1);} }法二&#xff1a;倒序雙指針 時間復雜度為O(mn) 從右…

conda入門

目錄 1. Conda 是什么&#xff1f;2. 為什么需要 Conda&#xff1f;它能解決什么問題&#xff1f;3. Conda 的核心組件和概念4. Conda 基本工作流程和常用命令5. Conda 的主要優勢6. Conda 與 Pip 的關系7. 何時使用 Conda&#xff1f; 1. Conda 是什么&#xff1f; 包管理器&…

UE 5 和simulink聯合仿真,如果先在UE5這一端結束Play,過一段時間以后**Unreal Engine 5** 中會出現顯存不足錯誤

提問 UE5報錯如圖。解析原因 回答 你遇到的這個錯誤提示是&#xff1a; “Out of video memory trying to allocate a rendering resource. Make sure your video card has the minimum required memory, try lowering the resolution and/or closing other applications tha…

第七十三篇 從電影院售票到停車場計數:生活場景解析Java原子類精髓

目錄 一、原子類基礎&#xff1a;電影院售票系統1.1 傳統售票的并發問題1.2 原子類解決方案 二、原子類家族&#xff1a;超市收銀系統2.1 基礎類型原子類2.2 數組類型原子類 三、CAS機制深度解析&#xff1a;停車場管理系統3.1 CAS工作原理3.2 車位計數器實現 四、高性能實踐&a…

Linux(線程控制)

一 線程的操作 1. 創建線程&#xff1a;pthread_create int pthread_create(pthread_t *thread, // 線程 idconst pthread_attr_t *attr, // 線程屬性設置void *(*start_routine) (void *), // 回調函數void *arg // 傳遞…

PL/SQLDeveloper中數值類型字段查詢后顯示為科學計數法的處理方式

PL/SQLDeveloper中數值類型字段查詢后顯示為科學計數法的處理方式 文章目錄 PL/SQLDeveloper中數值類型字段查詢后顯示為科學計數法的處理方式1. 查詢效果2. 處理方式3. 再次查詢 1. 查詢效果 2. 處理方式 3. 再次查詢

centos 9/ubuntu 一次性的定時關機

方法一 # 15 表示15分鐘以后自動關機 sudo shutdown -h 15方法二&#xff1a; sudo dnf install at -y # 晚上十點半關機 echo "shutdown -h now" | at 22:30 # 檢查是否設置成功命令 atq [rootdemo-192 ~]# atq 1 Wed Jun 4 11:12:00 2025 a root # 取消定時計劃…

Riverpod與GetX的優缺點對比

Riverpod 與 GetX 的優缺點對比 在 Flutter 開發領域,Riverpod 和 GetX 都是備受關注的狀態管理與依賴注入框架,它們各有優劣,適用于不同的開發場景。以下從多個維度詳細對比二者的優缺點。 一、Riverpod 的優缺點 (一)優點 架構清晰,數據流向明確:基于 Provider 模…

day 47

注意力可視化 訓練模型 包含通道注意力模塊和CNN模型的定義&#xff08;通道注意力的插入&#xff09; import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import ma…

《Vuejs設計與實現》第 8 章(掛載與更新)

目錄 8.1 掛載子節點與屬性 8.2 HTML Attributes 與 DOM Properties 8.3 設置元素屬性的正確方式 8.4 處理 class 屬性 8.5 卸載操作 8.6 區分 vnode 類型 8.7 事件處理優化 8.8 事件冒泡與更新時機問題 8.9 子節點的更新 8.10 文本節點和注釋節點 8.11 片段&#xf…

自制操作系統(五、重寫引導部分和C語言的使用)

為了實現其他更多功能&#xff0c;我決定重新寫引導部分的內容 boot.asm ; boot.asm %include "config.inc"setuplen equ 4 bootseg equ 0x07c0 initseg equ def_initseg setupseg equ def_setupseg sysseg equ def_syssegsetupsector equ 2 syssector equ setupse…

口罩佩戴檢測算法AI智能分析網關V4工廠/工業等多場景守護公共衛生安全

一、引言? 在公共衛生安全日益受到重視的當下&#xff0c;口罩佩戴成為預防病毒傳播、保障人員健康的重要措施。為了高效、精準地實現對人員口罩佩戴情況的監測&#xff0c;AI智能分析網關V4口罩檢測方案應運而生。該方案依托先進的人工智能技術與強大的硬件性能&#xff0c;…

【評測】用Flux的圖片文本修改的PS效果

【評測】Flux的圖片文本修改的PS效果 1. 百度圖庫找一張有英文的圖片 2. 打開https://playground.bfl.ai/image/edit上傳圖片 3. 輸入提示詞 “change brarfant to goodbeer” 圖片的文字被修改了

【匯編逆向系列】三、函數調用包含單個參數之float類型-xmm0寄存器,sub,rep,stos,movss,mulss,addss指令

一、匯編代碼 single_float_param:0000000000000060: F3 0F 11 44 24 08 movss dword ptr [rsp8],xmm00000000000000066: 57 push rdi0000000000000067: 48 83 EC 10 sub rsp,10h000000000000006B: 48 8B FC mov …

深入了解UDP套接字:構建高效網絡通信

個人主頁&#xff1a;chian-ocean 文章專欄-NET 深入了解UDP套接字&#xff1a;構建高效網絡通信 個人主頁&#xff1a;chian-ocean文章專欄-NET 前言&#xff1a;UDPUDP 特點&#xff1a;UDP的應用 套接字地址IP地址&#xff08;Internet Protocol Address&#xff09;IP地址…