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

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

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\Python

In [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.pdf

Creates 4up.my.pdf with a single output page for every
4 input pages.
'''

import sys
import os

from pdfrw import PdfReader, PdfWriter, PageMerge


def get4(srcpages):
    scale = 0.5
    srcpages = PageMerge() + srcpages
    x_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 0
        page.y = 0 if i & 2 else y_increment
    return 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文件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PDfrw是一个Python库,用于读取和编辑PDF文件。它允许您读取和写入PDF文件中的文本、图像和其他元素。 以下是使用PDfrw编辑PDF文件的一些示例: 1. 读取PDF文件 ```python import pdfrw pdf = pdfrw.PdfReader('example.pdf') ``` 2. 写入PDF文件 ```python import pdfrw pdf = pdfrw.PdfReader('example.pdf') pdf.Info.Creator = 'John Doe' pdfrw.PdfWriter().write('example_edited.pdf', pdf) ``` 3. 添加文本框 ```python import pdfrw pdf = pdfrw.PdfReader('example.pdf') page = pdf.pages[0] # 添加文本框 text_box = pdfrw.PdfDict(Type='/Annot', Subtype='/Widget', FT='/Tx', Rect=[100, 100, 200, 120], Ff=1, T='My Text', V='') # 将文本框添加到页面 page.Annots.append(text_box) # 保存PDF文件 pdfrw.PdfWriter().write('example_edited.pdf', pdf) ``` 4. 添加图像 ```python import pdfrw pdf = pdfrw.PdfReader('example.pdf') page = pdf.pages[0] # 添加图像 image = pdfrw.PdfImageXObject.create_from_png('my_image.png') image_box = pdfrw.PdfDict(Type='/XObject', Subtype='/Image', Width=image.width, Height=image.height, BitsPerComponent=8, ColorSpace='/DeviceRGB', Filter='/DCTDecode', Length=len(image.stream), stream=image.stream) # 将图像添加到页面 page.Contents.stream += b'\n'.join([b'q', b'1 0 0 1 100 400 cm', b'/Im0 Do', b'Q']) pdf.XObject['Im0'] = image_box # 保存PDF文件 pdfrw.PdfWriter().write('example_edited.pdf', pdf) ``` 这些示例只是PDfrw的一小部分功能,您可以使用PDfrw进行更多高级编辑,例如添加表单字段、添加书签等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十月旧城

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值