百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

8行代码搞定PDF切分的问题(pdf文件切割)

itomcoil 2025-04-08 15:11 21 浏览

上次写了30行代码把会计朋友的周常工作安排明白了,这周又遇到问题了。下午给发消息说,栋哥借用下你的网盘会员下载个CPA资料。我的10k每秒,等着下载完,我估计也考完试了。

好家伙,把链接给我,我下载下来,一看足足450页242M的PDF文件。准备微信转发过去,结果最大发送文件不能超过200M。

那就用QQ吧,结果这个好家伙,n年不登录,密码都忘了。我说算了,直接在网上搜一下pdf在线切分工具,分成两个就可以了。


没想到这家伙得寸进尺,跟我说,那这样更好,你直接把第9章的内容发给我吧,我现在正好学习这里。


刚想说这都是小事,但问题来了,随便点开了两个在线pdf切分,一个限制不能超过40M,一个限制不能超过50M。再大了就要开会员,我能为了这点事情再注册个会员,暴露我的信息,整天的接收广告?肯定不可以!

不过想想也是,200多M,上传下载都是占用人家带宽,人家也是花钱的。

这个时候如果说没办法了,那就是对一个资深调库程序员的最大的侮辱。


打开PyCharm,安装上PyPDF2库。


第1步,把源文件以二进制数据方式读取到内存

第2步,使用PdfFileReader把二进制数据格式化

第3步,创建一个PDF编写器PdfFileWriter

第4步,循环读取第67到78页的内容,依次添加到PdfFileWriter

第5步,PDF编写器把内容写到数据文件中,毕竟命名第9章.PDF

至此加上引入表的语句,一共8行代码。


当然为了更加方便的时候,符合代码封装的特性,把相关参数提取出来,并添加main函数。

完成示例代码如下:

# -- coding: utf-8 --
# 导入PYPDF2库
from PyPDF2 import PdfFileReader, PdfFileWriter


def split_single_pdf(read_file, start_page, end_page, pdf_file):
    # 1. 获取原始pdf文件
    fp_read_file = open(read_file, 'rb')
    # 2. 将要分割的PDF内容格式化
    pdf_input = PdfFileReader(fp_read_file)
    # 3. 实例一个 PDF文件编写器
    pdf_output = PdfFileWriter()
    # 4. 把67到78页放到PDF文件编写器
    for i in range(start_page, end_page):
        pdf_output.addPage(pdf_input.getPage(i))
    # 5. PDF文件输出
    with open(pdf_file, 'wb') as pdf_out:
        pdf_output.write(pdf_out)
    print(f'{read_file}分割{start_page}页-{end_page}页完成,保存为{pdf_file}!')

if __name__ == '__main__':
    # 待切分文件文件名
    in_pdf_name = "2020年CPA会计考试重难点.pdf"
    # 切分后文件文件名
    out_pdf_name = '第9章.pdf'
    # 切分开始页面
    start = 67
    # 切分结束页面
    end = 79
    split_single_pdf(in_pdf_name, start, end, out_pdf_name)


如果想更加的细化一点,在做一个可视化界面,在用pyinstaller库,打包成exe可执行文件。这样可以随时随地使用,并不依赖Python环境。


要注意书写的文件位置,不然容易报错,找不到该文件。


就这少说又能混一顿饭了,好了,今天的分享就到这里,感兴趣的朋友按照我说的可以试试,然后打包成一个工具,然后挂在网上销售,10块钱一个,巧了还能赚个奶茶钱。


我是马拉松程序员,可不止于代码。

相关推荐

Python Qt GUI设计:将UI文件转换Python文件三种妙招(基础篇—2)

在开始本文之前提醒各位朋友,Python记得安装PyQt5库文件,Python语言功能很强,但是Python自带的GUI开发库Tkinter功能很弱,难以开发出专业的GUI。好在Python语言的开放...

Connect 2.0来了,还有Nuke和Maya新集成

ftrackConnect2.0现在可以下载了--重新设计的桌面应用程序,使用户能够将ftrackStudio与创意应用程序集成,发布资产等。这个新版本的发布中还有两个Nuke和Maya新集成,...

Magicgui:不会GUI编程也能轻松构建Python GUI应用

什么是MagicguiMagicgui是一个Python库,它允许开发者仅凭简单的类型注解就能快速构建图形用户界面(GUI)应用程序。这个库基于Napari项目,利用了Python的强大类型系统,使得...

Python入坑系列:桌面GUI开发之Pyside6

阅读本章之后,你可以掌握这些内容:Pyside6的SignalsandSlots、Envents的作用,如何使用?PySide6的Window、DialogsandAlerts、Widgets...

Python入坑系列-一起认识Pyside6 designer可拖拽桌面GUI

通过本文章,你可以了解一下内容:如何安装和使用Pyside6designerdesigner有哪些的特性通过designer如何转成python代码以前以为Pyside6designer需要在下载...

pyside2的基础界面(pyside2显示图片)

今天我们来学习pyside2的基础界面没有安装过pyside2的小伙伴可以看主页代码效果...

Python GUI开发:打包PySide2应用(python 打包pyc)

之前的文章我们介绍了怎么使用PySide2来开发一个简单PythonGUI应用。这次我们来将上次完成的代码打包。我们使用pyinstaller。注意,pyinstaller默认会将所有安装的pack...

使用PySide2做窗体,到底是怎么个事?看这个能不能搞懂

PySide2是Qt框架的Python绑定,允许你使用Python创建功能强大的跨平台GUI应用程序。PySide2的基本使用方法:安装PySide2pipinstallPy...

pycharm中conda解释器无法配置(pycharm安装的解释器不能用)

之前用的好好的pycharm正常配置解释器突然不能用了?可以显示有这个环境然后确认后可以conda正在配置解释器,但是进度条结束后还是不成功!!试过了pycharm重启,pycharm重装,anaco...

Conda使用指南:从基础操作到Llama-Factory大模型微调环境搭建

Conda虚拟环境在Linux下的全面使用指南:从基础操作到Llama-Factory大模型微调环境搭建在当今的AI开发与数据分析领域,conda虚拟环境已成为Linux系统下管理项目依赖的标配工具。...

Python操作系统资源管理与监控(python调用资源管理器)

在现代计算环境中,对操作系统资源的有效管理和监控是确保应用程序性能和系统稳定性的关键。Python凭借其丰富的标准库和第三方扩展,提供了强大的工具来实现这一目标。本文将探讨Python在操作系统资源管...

本地部署开源版Manus+DeepSeek创建自己的AI智能体

1、下载安装Anaconda,设置conda环境变量,并使用conda创建python3.12虚拟环境。2、从OpenManus仓库下载代码,并安装需要的依赖。3、使用Ollama加载本地DeepSe...

一文教会你,搭建AI模型训练与微调环境,包学会的!

一、硬件要求显卡配置:需要Nvidia显卡,至少配备8G显存,且专用显存与共享显存之和需大于20G。二、环境搭建步骤1.设置文件存储路径非系统盘存储:建议将非安装版的环境文件均存放在非系统盘(如E盘...

使用scikit-learn为PyTorch 模型进行超参数网格搜索

scikit-learn是Python中最好的机器学习库,而PyTorch又为我们构建模型提供了方便的操作,能否将它们的优点整合起来呢?在本文中,我们将介绍如何使用scikit-learn中的网格搜...

如何Keras自动编码器给极端罕见事件分类

全文共7940字,预计学习时长30分钟或更长本文将以一家造纸厂的生产为例,介绍如何使用自动编码器构建罕见事件分类器。现实生活中罕见事件的数据集:背景1.什么是极端罕见事件?在罕见事件问题中,数据集是...