1.首先,實作功能源碼
#!/usr/bin/env python
# coding=utf-8
import tkinter.messagebox
from tkinter import *
from PyPDF2 import PdfFileReader, PdfFileWriter
import re
# 設定全局變量
filename=""
pdf_input=""
fp_read_file=""
page_count=0
# PDF檔案分割
def split_pdf( out_detail):
try:
with open(out_detail, 'r', True, 'utf-8')as fp:
# print(fp)
txt = fp.readlines()
# print(txt)
for detail in txt: # 打開分割标準檔案
# print(type(detail))
# print(detail)
# 如果取到的内容包括“the file to be split is :”
line_wold = "the file to be split is :"
if line_wold in detail:
# 切割擷取檔案名:
rule = r'the file to be split is :(.*?.pdf)'
filename = re.findall(rule, detail)[0].strip()
print(filename)
fp_read_file = open(filename, 'rb')
pdf_input = PdfFileReader(fp_read_file) # 将要分割的PDF内容格式話
page_count = pdf_input.getNumPages() # 擷取PDF頁數
print("該檔案一共"+str(page_count)+"頁") # 列印頁數
print(filename)
print("擷取檔案名完成,開始分割")
continue
pages, write_file = detail.split() # 空格分組
# write_file, write_ext = os.path.splitext(write_file) # 用于傳回檔案名和擴充名元組
pdf_file = f'{write_file}.pdf'
# liststr=list(map(int, pages.split('-')))
# print(type(liststr))
try:
start_page, end_page = list(map(int, pages.split('-'))) # 将字元串數組轉換成整形數組
print(start_page)
except :
tkinter.Tk().withdraw()
tkinter.messagebox.showwarning("配置檔案", "頁數為空或不是正整數,請檢查配置檔案")
return
if start_page < 1:
# 隐藏主視窗
tkinter.Tk().withdraw()
# 消息框提示消息
tkinter.messagebox.showwarning("配置檔案","起始頁面不能為0!請重新編輯頁面")
return
start_page -= 1
# 如果輸入頁數大于最大頁數,則最大頁數
if end_page > page_count:
end_page=page_count
# 隐藏主視窗
tkinter.Tk().withdraw();
tkinter.messagebox.showwarning("配置檔案", "分割頁數超過了PDF的頁數,已調整為結束頁為最後一頁"+str(page_count))
try:
print(f'開始分割{start_page}頁-{end_page}頁,儲存為{pdf_file}......')
pdf_output = PdfFileWriter() # 執行個體一個 PDF檔案編寫器
for i in range(start_page, end_page):
pdf_output.addPage(pdf_input.getPage(i))
with open(pdf_file, 'wb') as sub_fp:
pdf_output.write(sub_fp)
print(f'完成分割{start_page}頁-{end_page}頁,儲存為{pdf_file}!')
except IndexError:
print(f'分割頁數超過了PDF的頁數') # 這個部分其實可以不用try,前面已經處理過了
except Exception as e:
print(e)
finally:
fp_read_file.close()
split_pdf( 'configure.txt')
2.實作打包成脫離python環境的.EXE程式
我的代碼路徑,在這個路徑下,按住shift+滑鼠右鍵,進入指令視窗
輸入指令實作打包,pyinstaller包自行用pip install 去下載下傳就好
打包成功之後會在目錄下生成build和dist檔案夾,exe檔案在dist檔案夾下
3.如何使用
這個工具需要傳入參數,你要分割 的PDF檔案全稱,配置分割頁數,分割後的檔案名稱,在配置檔案中寫好
4.輕按兩下exe檔案,即可分割
作為初學者自己搞出這個東西還是蠻開心,分享給各位,希望對你有幫助!!!