接下来介绍使用PyPDF2包实现PDF文件指定页面的旋转,可以指定旋转角度,一般都是旋转90度。原来的页面是横向版式,宽度比高度高,旋转90度以后,高度就比宽度高了,页面就变成竖向立起来的版式。
示例文件test.pdf,现在的版式是宽度比高度高,要做的是先获取第一页,把它旋转90度,旋转后高度比宽度高,页面变成竖向,然后把这一页单独保存到“0-0.pdf”文件里。这个操作既有读也有写,读取用PdfReader类,写入用PdfWriter类,读出来做旋转,旋转后再写入到新文件里,所以两个类都会用到。
读取部分我们已经知道怎么做了,写入首先用PdfWriter类的构造函数生成一个PdfWriter对象。旋转的时候,使用页对象的rotate方法,指定旋转角度实现旋转,生成一个旋转后的页对象,然后通过PdfWriter对象的add_page方法,把旋转后的页面添加到PdfWriter对象里,最后保存PdfWriter对象的内容到文件。
下面的代码先读取PDF文件,用PdfWriter的构造函数得到PdfWriter对象,获取第一页旋转90度,然后用PdfWriter对象的add_page方法把旋转后的页面添加到p_writer对象里,然后写入到D盘的“0-0.pdf”文件,用二进制写入模式。
code.python
>>> from PyPDF2 import PdfReader,PdfWriter
>>> pdf_reader=PdfReader('D:\\test.pdf')
>>> pdf_writer=PdfWriter()
>>>
>>> pg0=pdf_reader._get_page(0)
>>> pg0=pg0.rotate(90)
>>> pdf_writer.add_page(pdf_reader.pages[0])
>>> with open('D:\\pdfs\\0-0.pdf','wb') as pdf:
pdf_writer.write(pdf)
生成的PDF文件打开后如下图所示。