当前位置: 技术文章>> python操作PDF之旋转页面功能实现

文章标题:python操作PDF之旋转页面功能实现
  • 文章分类: 后端
  • 27752 阅读

PageObject对象有一个rotate()方法可以用于对自身进行旋转,旋转角度取值是0、90、270、180等,即90的倍数,正数是顺时针,负数是逆时针。现在有一个需求是要把一个PDF文件的奇数页逆时针旋转90度,偶数页顺时针旋转90度。

我们可以使用rotate()方法旋转页面,所以这个问题的关键是怎么判断当前页面对应页数的奇偶呢?肯定是需要获取文档的总页数,之后遍历所有页面,把当前页数对2取余,结果为0则为偶数,否则是奇数。不过要注意,如果是使用range()方法生成下标,计算奇偶之前记得加上1,因为range()默认是从0开始的,代码如下:

from PyPDF2
import PdfReader, PdfWriterreader = PdfReader( "./pdf_ files/练习文档.pdf")
writer = PdfWriter() for i in range(reader.getNumPages()): if(i + 1) % 2 == 0: page = reader.getPage(i).rotate(90)
    else :page = reader.getPage(i).rotate(-90) writer.addPage(page) with open("./pdf_ files/test.pdf", "wb") as f: writer.write(f)

既然讲到这里了,那就趁机再讲一下怎么知道某个PageObject对象对应的下标。PdfReader对象有一个get_page_number()方法,调用时只要把一个PageObject对象传进去就会返回该PageObject是第几页了,所以上面的旋转需求我们也可以这样写:

from PyPDF2
import PdfReader, PdfWriterreader = PdfReader( "./pdf_ files/练习文档.pdf")
writer = PdfWriter() for page in reader.pages: page_num = reader.get_page_number(page) page = page.rotate(90) if(page_num + 1) % 2 == 0
    else page.rotate(-90) writer.addPage(page) with open("./pdf_ files/test.pdf", "wb") as f: writer.write(f)


推荐文章