下面示例代碼,是將橫向紙張旋轉為縱向(根據紙張大小判斷紙張方向)
from PyPDF2 import PdfFileWriter, PdfFileReader
def page_rotation(old_file, new_file):
"""
PDF頁面旋轉
:param old_file: 需要旋轉的PDF文件
:param new_file: 旋轉后的PDF文件
:return:
"""
pdf = PdfFileReader(old_file)
page_num = pdf.getNumPages()
pdf_writer = PdfFileWriter()
for i in range(page_num):
# orientation = pdf.getPage(i).get('/Rotate') # 獲取頁面的旋轉角度
size = pdf.getPage(i).mediaBox # 獲取頁面大小值(長、寬)
x, y = size.getUpperRight_x, size.getUpperRight_y
if x > y:
# 順時針旋轉90度 90的倍數
page = pdf.getPage(i).rotateClockwise(90)
# 逆時針旋轉90度 90的倍數
# page = pdf.getPage(i).rotateCounterClockwise(90)
pdf_writer.addPage(page)
else:
# 不旋轉
page = pdf.getPage(i).rotateClockwise(0)
pdf_writer.addPage(page)
with open(new_file, 'wb') as f:
pdf_writer.write(f)