事情的經過是這樣的,由于現有的PDF檔案太多了而我真正需要的內容只有十幾頁,
每次查找不方便,另外需要發給自己的小伙伴也太多別人也不容易找到需要的內容,所以產生了一個想法就是把需要的PDF提取出來然后另存為一個PDF檔案,
于是就有了這次的PDF頁面提取操作,下面進入實戰環節,
專案中用到的庫主要是PyPDF2用于PDF格式檔案的提取等操作,另外還需要os操作庫用來做檔案的讀寫、另存為操作,
【閱讀全文】
from PyPDF2 import PdfFileReader, PdfFileWriter # PDF格式檔案操作
import os # 系統檔案操作

第一步:初始化在PDF檔案操作程序中的相關引數,
# 定義檔案的操作路徑(需要提取內容的原檔案路徑)
file_path = 'data.pdf'
# 定義目標檔案路徑(已經提取好的檔案路徑)
output_file_path = ''
# 定義開始提取頁的頁碼
begin = '102'
# 定義結束提取頁的頁碼
end = '113'
# 初始化已經提取好的檔案路徑
output_file_path = output_file_path + f'({begin}~{end}).pdf'
第二步:判斷需要操作的原始檔案是否存在、判斷需要提取的頁碼是否在合理的范圍內,
# 判斷pdf檔案是否存在,存在則繼續讀取檔案
if os.path.isfile(file_path):
global pdf_obj_reader
pdf_obj_reader = PdfFileReader(file_path) # 讀取原始檔案所有內容
# 判斷一下頁碼是否在合理的范圍內,
if begin < 1 or end > pdf_obj_reader.getNumPages():
print('請輸入合理的頁面范圍')
else:
exit(0)
第三步:根據需要提取內容的pdf頁碼范圍提取pdf內容并寫入PDF檔案寫入流,
# 初始化檔案寫入流,
global pdf_obj_writer
pdf_obj_writer = PdfFileWriter()
# 遍歷已經讀取的檔案流,提取需要的部分并寫入檔案寫入流,
for page_num in range(begin - 1, end): # 由于讀取的頁面是從0開始,所以開始頁碼進行減1操作
pdf_obj_writer.addPage(pdf_obj_reader.getPage(page_num)) # 將符合條件的頁碼對應內容寫入檔案寫入流
# 最后,將提取好的檔案流物件寫入到新定義好的PDF檔案中
with open(output_file_path, 'wb') as output_file_pdf:
pdf_obj_writer.write(output_file_pdf) # 寫入到指定檔案
到此,整個PDF內容提取和寫入的操作就完成了,感謝大家的支持,

【往期精彩】
浪漫的turtle,送給程式員自己的圣誕樹!
PyQt5 GUI:百度圖片下載器(文末附原始碼)
python3中的zip()、zip(*)、list()之間的靈活轉換!
python print() 函式的格式化字串輸出
PyQt5 GUI && Requests Api 做一個天氣查詢系統(文末領取完整代碼)!
歡迎關注作者公眾號【Python 集中營】,專注于后端編程,每天更新技術干貨,不定時分享各類資料!轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/390253.html
標籤:其他
上一篇:并發編程
