做视频网站需要哪些手续,本溪seo优化,三亚学做网站培训,德州百度推广公司由于Claude虽然可以分析整个文件#xff0c;但是对文件的大小以及字数是有限制的#xff0c;为了将pdf文件分批传入Claude人工智能分析和总结文章内容#xff0c;才有了这篇博客#xff1a; 在本篇博客中#xff0c;我们将介绍一个基于 wxPython 和 PyMuPDF 库编写的简易的…由于Claude虽然可以分析整个文件但是对文件的大小以及字数是有限制的为了将pdf文件分批传入Claude人工智能分析和总结文章内容才有了这篇博客 在本篇博客中我们将介绍一个基于 wxPython 和 PyMuPDF 库编写的简易的 PDF 页面内容提取应用程序。该应用程序允许用户选择一个 PDF 文件并指定起始页和结束页然后提取这些页面之间的文本内容并显示在应用程序窗口中。 C:\pythoncode\new\pdfbeginendcontent.py
环境配置
在开始之前请确保已经安装了以下两个库
wxPython用于创建 GUI 窗口和交互界面。PyMuPDF用于解析和提取 PDF 文件的内容。
你可以使用以下命令来安装这两个库
pip install wxPython PyMuPDF代码实现
下面是完整的 Python 代码实现
import wx
import fitz
import wx.lib.masked as maskedclass MyFrame(wx.Frame):def __init__(self):super().__init__(None, title提取PDF页面内容, size(400, 300))panel wx.Panel(self)vbox wx.BoxSizer(wx.VERTICAL)select_button wx.Button(panel, label选择PDF文件)select_button.Bind(wx.EVT_BUTTON, self.on_select_pdf)vbox.Add(select_button, proportion0, flagwx.ALIGN_CENTER | wx.ALL, border10)page_label wx.StaticText(panel, label开始页码)vbox.Add(page_label, proportion0, flagwx.LEFT, border10)self.start_page_input wx.TextCtrl(panel)vbox.Add(self.start_page_input, proportion0, flagwx.EXPAND | wx.ALL, border10)page_label2 wx.StaticText(panel, label结束页码)vbox.Add(page_label2, proportion0, flagwx.LEFT, border10)self.end_page_input wx.TextCtrl(panel)vbox.Add(self.end_page_input, proportion0, flagwx.EXPAND | wx.ALL, border10)extract_button wx.Button(panel, label提取内容)extract_button.Bind(wx.EVT_BUTTON, self.on_extract_content)vbox.Add(extract_button, proportion0, flagwx.ALIGN_CENTER | wx.ALL, border10)content_label wx.StaticText(panel, label内容)vbox.Add(content_label, proportion0, flagwx.LEFT, border10)self.content_text wx.TextCtrl(panel, stylewx.TE_MULTILINE | wx.TE_READONLY)vbox.Add(self.content_text, proportion1, flagwx.EXPAND | wx.ALL, border10)panel.SetSizer(vbox)def on_select_pdf(self, event):dialog wx.FileDialog(self, message选择PDF文件, wildcardPDF files (*.pdf)|*.pdf, stylewx.FD_OPEN)if dialog.ShowModal() wx.ID_OK:self.pdf_path dialog.GetPath()dialog.Destroy()def on_extract_content(self, event):doc fitz.open(self.pdf_path)start_page int(self.start_page_input.GetValue())end_page int(self.end_page_input.GetValue())if start_page 1 or end_page doc.page_count:wx.MessageBox(无效的页码, 错误, wx.OK | wx.ICON_ERROR)return# for page_num in range(start_page - 1, end_page):# page doc.load_page(page_num)# text page.get_text()# self.content_text.SetValue(text)content # 定义一个空字符串用于存储拼接的内容for page_num in range(start_page - 1, end_page):page doc.load_page(page_num)text page.get_text()content text # 将获取的文本添加到content中self.content_text.SetValue(content) # 设置content_text的值为拼接后的字符串doc.close()if __name__ __main__:app wx.App()frame MyFrame()frame.Show()app.MainLoop()
运行应用程序
保存以上代码为 pdf_extractor.py 文件然后在终端中运行以下命令启动应用程序
python pdf_extractor.py应用程序窗口将显示出来你可以点击 “选择PDF文件” 按钮选择一个 PDF 文件然后在起始页码和结束页码输入框中输入相应的页码最后点击 “提取内容” 按钮应用程序将提取选定页面范围内的文本内容并将其显示在文本框中。
总结
本篇博客介绍了一个使用 wxPython 和 PyMuPDF 库编写的简易的 PDF 页面内容提取应用程序。通过该应用程序用户可以方便地选择一个 PDF 文件并指定起始页和结束页提取这些页面之间的文本内容并在应用程序窗口中显示。