最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python如何根據(jù)頁碼處理PDF文件的內(nèi)容

 更新時間:2024年06月26日 12:18:39   作者:xsimah  
在Python中,fitz庫可以用于多種任務,如打開PDF文件、遍歷頁面、添加注釋、提取文本、旋轉(zhuǎn)頁面等,此外,它還可以用于在PDF頁面上添加高亮注釋、提取圖像等操作,這篇文章主要介紹了Python根據(jù)頁碼處理PDF文件的內(nèi)容,需要的朋友可以參考下

1.環(huán)境準備

  • pymupdf: 是wxWidgets在Python語言下的封裝,處理PDF文件的庫,提供了讀取、提取和創(chuàng)建PDF文件的功能;wxWidgets是一個跨平臺的GUI應用編程接口,使用C++編寫。
  • wxPython: 基于wxWidgets的Python包,用于創(chuàng)建跨平臺的圖形用戶界面(GUI)應用程序。
  • fitz: fitz庫是一個基于Python開發(fā)的PDF處理庫,它是PyMuPDF的前身。fitz提供了一系列的API和功能,可以用于讀取、編輯和生成PDF文件。此外,它還可以處理其他類型的圖像,如TIFF和JPEG,提供圖像處理功能,如旋轉(zhuǎn)、裁剪、縮放、調(diào)整亮度、對比度和色彩平衡等。
  • 在Python中,fitz庫可以用于多種任務,如打開PDF文件、遍歷頁面、添加注釋、提取文本、旋轉(zhuǎn)頁面等。此外,它還可以用于在PDF頁面上添加高亮注釋、提取圖像等操作。
pip install PIL
pip install fitz
pip install pymupdf
pip install wxpython
# pip install 庫包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
# pip install wxpython -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com       

2.Python參考代碼

創(chuàng)建1個簡單的GUI應用程序,它將允許用戶選擇要打開的PDF文件,并輸入開始頁碼和結(jié)束頁碼。然后,點擊"Extract"按鈕將提取指定范圍內(nèi)的頁面并將其保存為新的PDF文件

import fitz
import wx
class PDFExtractor(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"PDF Extractor", pos=wx.DefaultPosition,
                          size=wx.Size(500, 254), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL,
                          name=u"PDF Extractor")
        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
        self.SetForegroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW))
        self.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_ACTIVECAPTION))
        bSizer2 = wx.BoxSizer(wx.VERTICAL)
        self.m_filePicker2 = wx.FilePickerCtrl(self, wx.ID_ANY, wx.EmptyString, u"Select a file", u"*.*",
                                               wx.DefaultPosition, wx.DefaultSize, wx.FLP_DEFAULT_STYLE)
        self.m_filePicker2.SetFont(wx.Font(9, 74, 90, 92, False, "微軟雅黑"))
        self.m_filePicker2.SetForegroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT))
        self.m_filePicker2.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT))
        bSizer2.Add(self.m_filePicker2, 0, wx.ALL | wx.EXPAND, 5)
        self.m_staticText5 = wx.StaticText(self, wx.ID_ANY, u"Start Page:", wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_staticText5.Wrap(-1)
        self.m_staticText5.SetFont(wx.Font(9, 74, 90, 92, True, "微軟雅黑"))
        self.m_staticText5.SetForegroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_BTNTEXT))
        bSizer2.Add(self.m_staticText5, 0, wx.ALL, 5)
        self.m_textCtrl1 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer2.Add(self.m_textCtrl1, 0, wx.EXPAND, 5)
        self.m_staticText6 = wx.StaticText(self, wx.ID_ANY, u"End Page:", wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_staticText6.Wrap(-1)
        self.m_staticText6.SetFont(wx.Font(9, 74, 90, 92, True, "微軟雅黑"))
        self.m_staticText6.SetForegroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_BTNTEXT))
        bSizer2.Add(self.m_staticText6, 0, wx.ALL, 5)
        self.m_textCtrl2 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer2.Add(self.m_textCtrl2, 0, wx.EXPAND, 5)
        self.m_button18 = wx.Button(self, wx.ID_ANY, u"Extract", wx.DefaultPosition, wx.DefaultSize, wx.NO_BORDER)
        self.m_button18.SetFont(wx.Font(12, 74, 90, 92, False, "微軟雅黑"))
        self.m_button18.SetForegroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_BTNTEXT))
        self.m_button18.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_BTNHIGHLIGHT))
        self.m_button18.Bind(wx.EVT_BUTTON, self.extract_pages)
        bSizer2.Add(self.m_button18, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.SHAPED, 5)
        self.SetSizer(bSizer2)
        self.Layout()
        self.Centre(wx.BOTH)
    def __del__(self):
        pass
    def extract_pages(self, event):
        file_path = self.m_filePicker2.GetPath()
        start_page = int(self.m_textCtrl1.GetValue())
        end_page = int(self.m_textCtrl2.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()
if __name__ == '__main__':
    app = wx.App()  # 運行wx.App()方法。認為窗體是一個獨立運行的app,所以要定義一個app的程序類來讓窗體執(zhí)行,調(diào)用wx類庫對應的App方法來生成應用程序的類對象:wx.App()
    frame = PDFExtractor(None)  # 調(diào)用Frame類,并且不指定父類,當前就成為父類
    frame.Show()  # 運行展示界面的方法Show()
    app.MainLoop()  # 進入程序wx.App()循環(huán)

wxFormBuilder配置效果

運行效果

3.其他參考

https://blog.csdn.net/winniezhang/article/details/134924216wxFormBuilder

工具下載地址【python012】

Python根據(jù)頁碼處理PDF文件的內(nèi)容

到此這篇關于Python根據(jù)頁碼處理PDF文件的內(nèi)容的文章就介紹到這了,更多相關Python頁碼處理PDF文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 使用Python的urllib和urllib2模塊制作爬蟲的實例教程

    使用Python的urllib和urllib2模塊制作爬蟲的實例教程

    這篇文章主要介紹了使用Python的urllib和urllib2模塊制作爬蟲的實例教程,展現(xiàn)了這兩個常用爬蟲制作模塊的基本用法,極度推薦!需要的朋友可以參考下
    2016-01-01
  • python3 批量獲取對應端口服務的實例

    python3 批量獲取對應端口服務的實例

    今天小編就為大家分享一篇python3 批量獲取對應端口服務的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python繪制三維立體圖詳解與繪圖填充方式

    Python繪制三維立體圖詳解與繪圖填充方式

    這篇文章主要介紹了Python繪制三維立體圖詳解與繪圖填充方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 基于django傳遞數(shù)據(jù)到后端的例子

    基于django傳遞數(shù)據(jù)到后端的例子

    今天小編就為大家分享一篇基于django傳遞數(shù)據(jù)到后端的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 利用Python統(tǒng)計每天敲了多少次鍵盤

    利用Python統(tǒng)計每天敲了多少次鍵盤

    每到年末各大App都會給你來一次年度總結(jié),最近突發(fā)奇想,鍵盤是每天必備的工具,為啥不給鍵盤也來個工作總結(jié),本文就來用Python統(tǒng)計一下每天敲了多少次鍵盤吧
    2024-04-04
  • python程序調(diào)用遠程服務的步驟詳解

    python程序調(diào)用遠程服務的步驟詳解

    這篇文章主要介紹了python程序調(diào)用遠程服務的步驟詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-03-03
  • 解析Pytorch中的torch.gather()函數(shù)

    解析Pytorch中的torch.gather()函數(shù)

    本文給大家介紹了Pytorch中的torch.gather()函數(shù),通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-11-11
  • 探索Python元類的魅力:靈活定制類的創(chuàng)建過程

    探索Python元類的魅力:靈活定制類的創(chuàng)建過程

    在Python編程中,元類(Metaclass)是一項高級特性,它允許我們在定義類的時候動態(tài)地控制類的創(chuàng)建過程。元類提供了一種強大的機制,可以對類進行定制化,擴展其功能,并在類的實例化過程中執(zhí)行額外的操作,本文將深入解析
    2023-10-10
  • matplotlib常見函數(shù)之plt.rcParams、matshow的使用(坐標軸設置)

    matplotlib常見函數(shù)之plt.rcParams、matshow的使用(坐標軸設置)

    這篇文章主要介紹了matplotlib常見函數(shù)之plt.rcParams、matshow的使用(坐標軸設置),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Python多線程并發(fā)時出現(xiàn)503錯誤的最佳處理

    Python多線程并發(fā)時出現(xiàn)503錯誤的最佳處理

    在 HTTP 協(xié)議中,503 錯誤表示服務器當前無法處理請求,通常是因為服務器暫時過載或維護,本文主要來和大家探討一下503 錯誤處理的最佳實踐,希望對大家有所幫助
    2025-07-07

最新評論

江西省| 东台市| 淮滨县| 健康| 朝阳县| 湖州市| 和林格尔县| 左云县| 白山市| 韶山市| 秦安县| 宝丰县| 静乐县| 潞西市| 奉贤区| 子长县| 沅陵县| 天峻县| 资源县| 贡嘎县| 平乡县| 晋城| 长阳| 鄂尔多斯市| 阜南县| 伽师县| 施甸县| 平武县| 鄂托克旗| 资阳市| 灵台县| 丹江口市| 怀集县| 杭锦旗| 高要市| 共和县| 荆州市| 吉木萨尔县| 高尔夫| 旌德县| 靖西县|