掌握Python的X篇_32_使用python编辑pdf文件_pdfrw

本篇介绍利用python操作pdf文件,我们平时也会有合并和拆分pdf的需求,此时我们就可以使用本节内容。

文章目录

  • 1. pdfrw的安装
  • 2. 切分pdf文件
  • 3. pdfrw官网及实现一版四面的实例

1. pdfrw的安装

pip install pdfrw

官网地址:https://github.com/pmaupin/pdfrw

2. 切分pdf文件

import pdfrw
inputpdf = pdfrw.PdfReader("AbstractAlgebra.pdf") 
outputpdf = pdfrw.PdfWriter("index.pdf")
  • PdfReader:打开pdf文件,返回一个可以读的pdf对象。
  • PdfWriter:打开(创造)一个pdf文件,返回可以写的pdf对象(只是在内存中打开,并未写文件,调用保存方法之后就会写入)

在以上的pd对象中,包含了各种方法,用于对应操作pdf文件。

  • pages属性:页码
  • addpages方法:可以往页面内添加东西
In [1]: import pdfrw
In [3]: cd E:\MyselfCode\ShellMad\Python
E:\MyselfCode\ShellMad\PythonIn [4]: pwd
Out[4]: 'E:\\MyselfCode\\ShellMad\\Python'In [5]: inputpdf = pdfrw.PdfReader("AbstractAlgebra.pdf")
In [7]: outputpdf = pdfrw.PdfWriter("index.pdf")
In [8]: outputpdf.addpages(inputpdf.pages[0:2]) #将inputpdf的第1页开始的2页添加到outputpdf中
Out[8]: <pdfrw.pdfwriter.PdfWriter at 0x2b206763f70>In [9]: outputpdf.write() #写入磁盘,此时才会真的有新的pdf文件生成

以上代码运行结果:
在这里插入图片描述

3. pdfrw官网及实现一版四面的实例

上面只是pdfrw的冰山一角,官网中给出了更多的例子,以下是官网中给出的例子
在这里插入图片描述
以下是4up.py(将指定的pdf变成一页中集成4页内容-一版四页)的脚本内容,这是在linux中使用的,在wind的使用也是比较简单的,就不讨论了

#!/usr/bin/env python'''
usage:   4up.py my.pdfCreates 4up.my.pdf with a single output page for every
4 input pages.
'''import sys
import osfrom pdfrw import PdfReader, PdfWriter, PageMergedef get4(srcpages):scale = 0.5srcpages = PageMerge() + srcpagesx_increment, y_increment = (scale * i for i in srcpages.xobj_box[2:])for i, page in enumerate(srcpages):page.scale(scale)page.x = x_increment if i & 1 else 0page.y = 0 if i & 2 else y_incrementreturn srcpages.render()inpfn, = sys.argv[1:]
outfn = '4up.' + os.path.basename(inpfn)
pages = PdfReader(inpfn).pages
writer = PdfWriter(outfn)
for index in range(0, len(pages), 4):writer.addpage(get4(pages[index:index + 4]))
writer.write()

我直接拷贝到vscode中运行没有成功,后期使用到了再细究把,整体效果如下:
在这里插入图片描述
4. 学习视频地址:使用python编辑pdf文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/66772.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Amazon EMR Hudi 性能调优——Clustering

随着数据体量的日益增长&#xff0c;人们对 Hudi 的查询性能也提出更多要求&#xff0c;除了 Parquet 存储格式本来的性能优势之外&#xff0c;还希望 Hudi 能够提供更多的性能优化的技术途径&#xff0c;尤其当对 Hudi 表进行高并发的写入&#xff0c;产生了大量的小文件之后&…

痞子衡嵌入式:AppCodeHub - 一站网罗恩智浦MCU应用程序

近日&#xff0c;恩智浦官方隆重上线了应用程序代码中心(Application Code Hub&#xff0c;简称 ACH)&#xff0c;这是恩智浦 MCUXpresso 软件生态的一个重要组成部分。痞子衡之所以要如此激动地告诉大家这个好消息&#xff0c;是因为 ACH 并不是又一个恩智浦官方 github proje…

大数据课程J1——Scala的概述

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 了解Scala的特点&#xff1b; ⚪ 了解Scala的开发环境搭建&#xff1b; ⚪ 了解Scala的开发工具&#xff1b; 一、概述 1.简介 Scala既是面向对象的语言&#xff0c;…

Qt5.14.2+QtCreator+PDB 查看源码

1. 在Creator添加源码 2. 安装PDB文件 Qt下载时没有整合最新的PDB文件下载&#xff0c;如果没有安装PDB文件&#xff0c;即使安装了src也无法调试。 双击MaintenanceTool.exe->设置->资料档案库->临时资料档案库->添加按钮&#xff0c;添加如下下载源&#xff1a…

【视频笔记】解密RWKV线性注意力的进化过程

from&#xff1a; https://www.bilibili.com/video/BV1zW4y1D7Qg/?spm_id_from333.999.0.0&vd_source21cce77bb69d40a81e0d37999f2da0c2 文章目录 向量版 Self-attentionAFT 的线性AttentionRWKV的线性Attention 向量版 Self-attention 手动实现&#xff0c;可以看出 时间…

Go学习-Day1

Go学习-Day1 个人博客&#xff1a;CSDN博客 打卡。 Go语言的核心开发团队&#xff1a; Ken Thompson (C语言&#xff0c;B语言&#xff0c;Unix的发明者&#xff0c;牛人)Rob Pike(UTF-8发明人)Robert Griesemer(协助HotSpot编译器&#xff0c;Js引擎V8) Go语言有静态语言的…

如何给Linux开启swap虚拟内存

查看系统内存资源 free -h 创建swap分区 dd if/dev/zero of/swapfile bs1024 count4194304dev/zero&#xff1a;是Linux的一种特殊字符设备(输入设备)&#xff0c;可以用来创建一个指定长度用于初始化的空文件&#xff0c;如临时交换文件&#xff0c;该设备无穷尽地提供0&…

使用 VScode 开发 ROS 的Python程序(简例)

一、任务介绍 本篇作为ROS学习的第二篇&#xff0c;是关于如何在Ubuntu18.04中使用VSCode编写一个Python程序&#xff0c;输出“Hello&#xff01;”的内容介绍。 首先我们来了解下ROS的文件系统&#xff0c;ROS文件系统级指的是在硬盘上ROS源代码的组织形式&#xff0c;其结构…

41、可靠传输——停等ARQ

前面两节内容我们学习了传输层的基本概况的一些知识&#xff0c;包括传输层在TCP/IP协议栈中负责的任务、传输层的两大协议&#xff0c;以及端口号、套接字等一些基本的概念。从这一节开始&#xff0c;我们将开启两大协议中TCP协议的学习。 但是&#xff0c;经过之前的学习&am…

安装elasticsearch

一、docker安装elasticsearch 1、下载镜像 docker pull elasticsearch:6.5.4 2、启动容器 docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \ -e "discovery.typesingle-node" \ -e "cluster.nameelasticsearch" \ -e "ES_JAVA_OPTS-Xm…

Mac 新手10个小窍门

即便你是 Mac 新手&#xff0c;也会发现它易学好用。你可以点按程序坞上的访达&#xff0c;快速查看到所有文件&#xff1b;把你喜爱的文件夹拖入边栏&#xff1b;你可以自定义查看文件的方式&#xff0c;甚至可以按下空格键&#xff0c;就能一键预览文档&#xff1b;还能在多台…

AKStream+ZLM简单配置

下载AKStream源代码 下载AKStream源代码 git clone https://gitee.com/chatop2020/AKStreamVS2022打开AKStream&#xff0c;低于.net6的版本无法编译通过 打开 .sln 解决方案 如下配置AKStreamWeb 数据库配置&#xff1a; MySQL AKStreamWeb.json中配置 port 是MySQL的端口…