当前位置: 首页 > news >正文

营销型网站建设怎么收费服务之家做网站简单吗

营销型网站建设怎么收费,服务之家做网站简单吗,平台营销,电商外贸有什么平台PDF工具应用程序是一个使用wxPython和PyMuPDF库编写的简单工具,用于合并和分拆PDF文件。它提供了一个用户友好的图形界面,允许用户选择源文件夹和目标文件夹,并对PDF文件进行操作。 C:\pythoncode\blog\pdfmergandsplit.py 功能特点 选择文…

PDF工具应用程序是一个使用wxPython和PyMuPDF库编写的简单工具,用于合并和分拆PDF文件。它提供了一个用户友好的图形界面,允许用户选择源文件夹和目标文件夹,并对PDF文件进行操作。
C:\pythoncode\blog\pdfmergandsplit.py
在这里插入图片描述

功能特点

  • 选择文件夹:用户可以通过应用程序界面轻松选择源文件夹和目标文件夹。
  • 合并PDF文件:应用程序允许用户选择要合并的PDF文件,并将它们合并成一个单独的PDF文件。
  • 分拆PDF文件:用户可以选择一个PDF文件,将其分拆成多个单独的PDF文件,每个文件包含一个页面。

程序实现

该应用程序使用了以下库和模块:

  • wxPython:用于创建应用程序的图形用户界面。
  • PyMuPDF:用于处理PDF文件的库。

应用程序的主要部分是一个继承自wxPython的wx.Frame类的主窗口。窗口包含以下组件:

  • 选择源文件夹和目标文件夹的按钮。
  • PDF文件列表框,显示源文件夹中的PDF文件。
  • 合并和分拆按钮,用于执行相应的操作。

当用户点击选择源文件夹按钮时,应用程序显示一个文件夹选择对话框,用户可以选择源文件夹。选择后,应用程序获取文件夹路径,并列出文件夹中的PDF文件。然后,合并和分拆按钮变为可用状态,用户可以执行相应的操作。

合并按钮的点击事件会弹出一个文本输入对话框,要求用户输入合并后的文件名。用户输入后,应用程序调用PyMuPDF库合并选定的PDF文件,并将合并后的PDF文件保存到目标文件夹中。

分拆按钮的点击事件会遍历选定的PDF文件,并使用PyMuPDF库将每个页面保存为单独的PDF文件。

代码示例

以下是应用程序的代码示例:

import os
import wx
import fitzclass PDFToolApp(wx.Frame):def __init__(self, parent, title):super(PDFToolApp, self).__init__(parent, title=title, size=(400, 400))self.panel = wx.Panel(self)self.source_folder_btn = wx.Button(self.panel, -1, "选择源文件夹")self.target_folder_btn = wx.Button(self.panel, -1, "选择目标文件夹")self.pdf_list = wx.CheckListBox(self.panel, -1, choices=[], style=wx.LB_MULTIPLE)self.merge_btn = wx.Button(self.panel, -1, "合并")self.split_btn = wx.Button(self.panel, -1, "分拆")self.merge_btn.Disable()self.split_btn.Disable()self.source_folder_btn.Bind(wx.EVT_BUTTON, self.on_select_source_folder)self.target_folder_btn.Bind(wx.EVT_BUTTON, self.on_select_target_folder)self.merge_btn.Bind(wx.EVT_BUTTON, self.on_merge)self.split_btn.Bind(wx.EVT_BUTTON, self.on_split)sizer = wx.BoxSizer(wx.VERTICAL)sizer.Add(self.source_folder_btn, 0, wx.ALIGN_CENTER | wx.ALL, 10)sizer.Add(self.target_folder_btn, 0, wx.ALIGN_CENTER | wx.ALL, 10)sizer.Add(self.pdf_list, 1, wx.EXPAND | wx.ALL, 10)sizer.Add(self.merge_btn, 0, wx.ALIGN_CENTER | wx.ALL, 10)sizer.Add(self.split_btn, 0, wx.ALIGN_CENTER | wx.ALL, 10)self.panel.SetSizer(sizer)self.Show()def on_select_source_folder(self, event):dlg = wx.DirDialog(self, "选择源文件夹", style=wx.DD_DEFAULT_STYLE)if dlg.ShowModal() == wx.ID_OK:source_folder_path = dlg.GetPath()self.pdf_list.Set(self.get_pdf_files(source_folder_path))self.merge_btn.Enable()self.split_btn.Enable()dlg.Destroy()def on_select_target_folder(self, event):dlg = wx.DirDialog(self, "选择目标文件夹", style=wx.DD_DEFAULT_STYLE)if dlg.ShowModal() == wx.ID_OK:self.target_folder_path = dlg.GetPath()dlg.Destroy()def on_merge(self, event):selected_items = self.pdf_list.GetCheckedItems()if len(selected_items) > 0:dlg = wx.TextEntryDialog(self, "请输入合并后的文件名(不带扩展名):", "合并文件")if dlg.ShowModal() == wx.ID_OK:output_filename = dlg.GetValue()output_filepath = os.path.join(self.target_folder_path, output_filename + ".pdf")self.merge_pdfs(selected_items, output_filepath)wx.MessageBox("PDF文件合并完成!", "完成", wx.OK | wx.ICON_INFORMATION)dlg.Destroy()def on_split(self, event):selected_items = self.pdf_list.GetCheckedItems()if len(selected_items) > 0:for index in selected_items:pdf_filename = self.pdf_list.GetString(index)pdf_filepath = os.path.join(self.target_folder_path, pdf_filename)self.split_pdf(pdf_filename, pdf_filepath)wx.MessageBox("PDF文件分拆完成!", "完成", wx.OK | wx.ICON_INFORMATION)def merge_pdfs(self, selected_items, output_filepath):pdf_merger = fitz.open()for index in selected_items:pdf_filename = self.pdf_list.GetString(index)pdf_filepath = os.path.join(self.target_folder_path, pdf_filename)pdf = fitz.open(pdf_filepath)pdf_merger.insert_pdf(pdf)pdf_merger.save(output_filepath)pdf_merger.close()def split_pdf(self, pdf_filename, pdf_filepath):pdf = fitz.open(pdf_filepath)num_pages = pdf.page_countfor i in range(num_pages):output_filename = f"{pdf_filename[:-4]}_{i+1}.pdf"output_filepath = os.path.join(self.target_folder_path, os.path.basename(output_filename) )print("output_filename:"+output_filename)page = pdf[i]new_pdf = fitz.open()new_pdf.insert_pdf(pdf, from_page=i, to_page=i)new_pdf.save(output_filepath)print("self.target_folder_path:"+self.target_folder_path)print("output_filepath:"+output_filepath)new_pdf.close()pdf.close()def get_pdf_files(self, folder_path):pdf_files = []for filename in os.listdir(folder_path):if filename.endswith(".pdf"):pdf_files.append(folder_path+'/'+filename)return pdf_filesif __name__ == "__main__":app = wx.App()PDFToolApp(None, "PDF工具")app.MainLoop()

总结

PDF工具应用程序是一个使用wxPython和PyMuPDF库编写的简单实用工具,可用于合并和分拆PDF文件。它提供了一个直观的图形界面,使用户能够轻松选择文件夹和执行操作。无论是处理大量PDF文件还是简单的分拆操作,该应用程序都能满足用户的需求。

http://www.yayakq.cn/news/697211/

相关文章:

  • 12380网站建设存在的问题高清视频服务器
  • 菠菜网站的代理怎么做的网站建设公司北京华网天下实惠
  • 经营网站备案信息专业免费网站建设
  • 网站文章列表和图片列表排版切换代码wordpress导航调用代码
  • 网站建站工具有哪些企业查询宝在线查询
  • 易讯网站建设兰州网站建设索q479185700
  • 雄安建站服务深圳龙华有几个区
  • 做嗳啪啪 网站网站搭建教室
  • 做标签网站是干嘛的内江 网站建设
  • 网站做适配定西市建设厅官方网站
  • 企业网站开发韵茵建站牛商网做网站要多少钱
  • 做网站首选什么语言浙江省建设厅继续教育网站首页
  • 搜索引擎友好的网站有哪些特点吉林市 网站建设
  • 房地产企业网站开发加强学校网站建设的必要性
  • 网站sem托管下载免费ppt模板
  • 医院加强网站建设综合社区网站开发费用
  • 公司网站设计与制百度收录提交查询
  • 免费做直播网站网站服务器空间不足
  • 制作购物网站需要多少钱深圳个性化网站建设公司电话
  • 学校网站建设项目需求报告建设摩托车官网旗舰店
  • 手机怎么搭建属于自己的网站wordpress的文章多重筛选
  • WordPress渗透思路wordpress 分页seo
  • 静安免费网站制作网站收录网
  • 河北高端网站设计公司创建网站基本流程
  • 网站建设的基础知识与维护织梦做的网站织梦修改网页
  • 怎么创建免费的个人网站企业门户网站运营推广
  • 自助建网站哪个好163cm邮箱登录入口
  • 什么网站可以做期货电子商务创建网站
  • 免费建站有哪些哪些网站可以做问卷
  • 九江有哪些免费推广网站资格证网站怎么做