在日常工作和學習中,我們經常需要從PDF文件中提取特定頁面的內容。在本篇文章中,我們將介紹如何使用Python編程語言和兩個強大的庫——pymupdf
和wxPython
,來實現這個任務。
1. 準備工作
首先,確保你已經安裝了以下兩個Python庫:
pymupdf
:用于處理PDF文件的庫,提供了讀取、提取和創建PDF文件的功能。wxPython
:一個基于wxWidgets的Python包,用于創建跨平臺的圖形用戶界面(GUI)應用程序。
你可以使用以下命令通過pip安裝這兩個庫:
pip install pymupdf wxPython
2. 創建GUI應用程序
首先,我們將創建一個簡單的GUI應用程序,它將允許用戶選擇要打開的PDF文件,并輸入開始頁碼和結束頁碼。然后,點擊"Extract"按鈕將提取指定范圍內的頁面并將其保存為新的PDF文件。
D:\spiderdocs\splitPDFfromx2y.py
import fitz
import wxclass PDFExtractor(wx.Frame):def __init__(self, parent, title):super(PDFExtractor, self).__init__(parent, title=title, size=(400, 200))self.panel = wx.Panel(self)self.file_picker = wx.FilePickerCtrl(self.panel, style=wx.FLP_DEFAULT_STYLE | wx.FLP_USE_TEXTCTRL)self.start_page_input = wx.TextCtrl(self.panel)self.end_page_input = wx.TextCtrl(self.panel)self.extract_button = wx.Button(self.panel, label="Extract", size=(100, 30))self.extract_button.Bind(wx.EVT_BUTTON, self.extract_pages)self.sizer = wx.BoxSizer(wx.VERTICAL)self.sizer.Add(self.file_picker, 0, wx.EXPAND|wx.ALL, 10)self.sizer.Add(wx.StaticText(self.panel, label="Start Page:"), 0, wx.LEFT|wx.TOP, 10)self.sizer.Add(self.start_page_input, 0, wx.EXPAND|wx.ALL, 10)self.sizer.Add(wx.StaticText(self.panel, label="End Page:"), 0, wx.LEFT|wx.TOP, 10)self.sizer.Add(self.end_page_input, 0, wx.EXPAND|wx.ALL, 10)self.sizer.Add(self.extract_button, 0, wx.ALIGN_CENTER|wx.ALL, 10)self.panel.SetSizerAndFit(self.sizer)self.Show()def extract_pages(self, event):file_path = self.file_picker.GetPath()start_page = int(self.start_page_input.GetValue())end_page = int(self.end_page_input.GetValue())doc = fitz.open(file_path)output_doc = fitz.open()for page_num in range(start_page-1, end_page):output_doc.insert_pdf(doc, from_page=page_num, to_page=page_num)output_path = file_path.replace(".pdf", "_extracted.pdf")output_doc.save(output_path)output_doc.close()doc.close()wx.MessageBox("Extraction complete!", "Success", wx.OK | wx.ICON_INFORMATION)app = wx.App()
PDFExtractor(None, title="PDF Extractor")
app.MainLoop()
3. 運行程序
將以上代碼保存為一個Python腳本文件(例如pdf_extractor.py
),然后運行腳本。你將看到一個簡單的窗口,其中包含一個文件選擇器、開始頁碼和結束頁碼的輸入框,還有一個"Extract"按鈕。
- 點擊文件選擇器,選擇要打開的PDF文件。
- 在開始頁碼輸入框
4. 總結
在本篇文章中,我們學習了如何使用Python編程語言和pymupdf
、wxPython
庫來提取PDF文件中指定范圍的頁面內容。我們創建了一個簡單的GUI應用程序,讓用戶能夠選擇要打開的PDF文件,并輸入開始頁碼和結束頁碼。點擊"Extract"按鈕后,程序將提取指定范圍內的頁面,并將其保存為新的PDF文件。
這個示例展示了Python在處理PDF文件和創建GUI應用程序方面的強大能力。你可以根據需要對代碼進行擴展和定制,以滿足更具體的要求。