Python使用pypdf實(shí)現(xiàn)按自定義頁(yè)碼拆分PDF文件
在處理 PDF 文件時(shí),我們經(jīng)常需要按章節(jié)或頁(yè)碼范圍拆分 PDF。本文將分享一個(gè)簡(jiǎn)單實(shí)用的 Python 方法,使用 pypdf 庫(kù)按自定義頁(yè)碼拆分 PDF,并保存為單獨(dú)文件。
一、環(huán)境準(zhǔn)備
首先,確保安裝了 pypdf 庫(kù):
pip install pypdf
二、實(shí)現(xiàn)功能
下面的 Python 腳本可以將 PDF 按指定的頁(yè)碼范圍拆分為多個(gè)文件,并保存到指定文件夾。
from pypdf import PdfReader, PdfWriter
import os
def split_pdf_by_page_ranges(input_pdf, output_folder, ranges):
reader = PdfReader(input_pdf)
# 如果輸出目錄不存在,則創(chuàng)建
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 遍歷頁(yè)碼范圍
for idx, (start_page, end_page) in enumerate(ranges, 1):
writer = PdfWriter()
# 頁(yè)碼從 0 開(kāi)始,用戶輸入通常是從 1 開(kāi)始
for page_num in range(start_page - 1, end_page):
if page_num < len(reader.pages):
writer.add_page(reader.pages[page_num])
else:
print(f"Warning: page {page_num + 1} out of range.")
# 輸出文件名
output_filename = f"{output_folder}/chapter_{idx}_pages_{start_page}-{end_page}.pdf"
with open(output_filename, "wb") as output_file:
writer.write(output_file)
print(f"Saved {output_filename}")
# ?? 自定義你的分章節(jié)頁(yè)碼(格式:[(開(kāi)始頁(yè), 結(jié)束頁(yè)), ...])
page_ranges = [
(1, 34), # 序
(35, 50), # 第一章
(51, 73), # 第二章
(74, 93), # 第三章
(94, 118), # 第四章
(119, 152),# 第五章
(153, 166),# 第六章
(167, 183),# 第七章
(184, 206),# 第八章
(207, 230),# 第九章
(231, 251) # 第十章
]
# 調(diào)用函數(shù)拆分 PDF
split_pdf_by_page_ranges("input.pdf", "./output_manual_split", page_ranges)
三、功能解析
1.讀取 PDF 文件
reader = PdfReader(input_pdf)
PdfReader 用于讀取 PDF 文件內(nèi)容。
2.創(chuàng)建輸出目錄
if not os.path.exists(output_folder):
os.makedirs(output_folder)
避免輸出目錄不存在導(dǎo)致報(bào)錯(cuò)。
3.按頁(yè)碼拆分
for page_num in range(start_page - 1, end_page):
writer.add_page(reader.pages[page_num])
頁(yè)碼從 0 開(kāi)始,所以用戶輸入從 1 開(kāi)始,需要減 1。
4.保存拆分后的文件
with open(output_filename, "wb") as output_file:
writer.write(output_file)
每個(gè)章節(jié)生成獨(dú)立 PDF 文件,并按章節(jié)序號(hào)命名。
四、運(yùn)行效果
假設(shè)原 PDF 文件名為 input.pdf,執(zhí)行腳本后,會(huì)在 ./output_manual_split 目錄下生成:
chapter_1_pages_1-34.pdf
chapter_2_pages_35-50.pdf
chapter_3_pages_51-73.pdf
...
chapter_11_pages_231-251.pdf
每個(gè)文件對(duì)應(yīng)你自定義的頁(yè)碼范圍。
五、總結(jié)
通過(guò) pypdf,我們可以非常方便地按自定義頁(yè)碼拆分 PDF 文件,無(wú)需復(fù)雜操作,適合電子書(shū)分章節(jié)、資料拆分等場(chǎng)景。
到此這篇關(guān)于Python使用pypdf實(shí)現(xiàn)按自定義頁(yè)碼拆分PDF文件的文章就介紹到這了,更多相關(guān)Python自定義拆分PDF內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解python內(nèi)置常用高階函數(shù)(列出了5個(gè)常用的)
這篇文章主要介紹了python內(nèi)置常用高階函數(shù)(列出了5個(gè)常用的),通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02
Python Tkinter創(chuàng)建GUI應(yīng)用程序的示例
Tkinter提供了豐富的功能和靈活的接口,讓開(kāi)發(fā)者能夠輕松地構(gòu)建出各種各樣的圖形用戶界面,本文介紹了使用Python的Tkinter庫(kù)創(chuàng)建圖形用戶界面GUI應(yīng)用程序,感興趣的可以了解一下2024-12-12
Python集成測(cè)試提高軟件質(zhì)量關(guān)鍵步驟探究
Python是一門強(qiáng)大的編程語(yǔ)言,提供了眾多工具和庫(kù),用于執(zhí)行高效的集成測(cè)試,本文將深入介紹Python集成測(cè)試的概念、方法和最佳實(shí)踐,并通過(guò)豐富的示例代碼演示如何提高軟件質(zhì)量和減少潛在的缺陷2024-01-01
在Python的web框架中編寫創(chuàng)建日志的程序的教程
這篇文章主要介紹了在Python的web框架中編寫創(chuàng)建日志的程序的教程,示例代碼基于Python2.x版本,需要的朋友可以參考下2015-04-04
Python獲取當(dāng)前頁(yè)面內(nèi)所有鏈接的四種方法對(duì)比分析
這篇文章主要介紹了Python獲取當(dāng)前頁(yè)面內(nèi)所有鏈接的方法,結(jié)合實(shí)例形式對(duì)比分析了Python常用的四種獲取頁(yè)面鏈接的方法,并附帶了iframe框架內(nèi)鏈接的獲取方法,需要的朋友可以參考下2017-08-08

