for page in range(pdfReader.numPages):
pageObj = pdfReader.getPage(page)
pageObj.rotateClockwise(rotation)
pdfWriter.addPage(pageObj)
现在,我们迭代原始pdf的每一页。我们通过pdf阅读器类的getPage()方法获取页面对象。现在,我们通过页面对象类的rotationClockwise()方法旋转页面。然后,通过传递旋转的页面对象,使用pdf writer类的addPage()方法将页面添加到pdf writer对象。
newFile = open(newFileName, 'wb')
pdfWriter.write(newFile)
pdfFileObj.close()
newFile.close()
现在,我们必须将pdf页面写入新的pdf文件。首先,我们打开新文件对象,并使用pdf writer对象的write()方法向其中写入pdf页面。最后,我们关闭原始的pdf文件对象和新的文件对象。
3、分割PDF文件
# 导入所需的模块
import PyPDF2
def PDFsplit(pdf, splits):
# 创建输入pdf文件对象
pdfFileObj = open(pdf, 'rb')
# 创建pdf阅读器对象
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
# 第一切片的起始索引
start = 0
# 最后一个切片的起始索引
end = splits[0]
for i in range(len(splits)+1):
# 为第(i + 1)个拆分创建pdf写入器对象
pdfWriter = PyPDF2.PdfFileWriter()
# 输出pdf文件名
outputpdf = pdf.split('.pdf')[0] + str(i) + '.pdf'
# 将页添加到pdf写入器对象
for page in range(start,end):
pdfWriter.addPage(pdfReader.getPage(page))
# 将分割的pdf页面写入pdf文件
with open(outputpdf, "wb") as f:
pdfWriter.write(f)
# 交换页面拆分开始位置以进行下一个拆分
start = end
try:
# 设置下一个拆分的拆分结束位置
end = splits[i+1]
except IndexError:
# 设置最后分割的分割结束位置
end = pdfReader.numPages
# 关闭输入的pdf文件对象
pdfFileObj.close()
def main():
# pdf文件分割
pdf = 'linuxidc.pdf'
# 分割页面位置
splits = [2,4]
# 调用PDFsplit函数拆分pdf
PDFsplit(pdf, splits)
if __name__ == "__main__":
# 调用main函数
main()
输出将是三个新的PDF文件,分别为拆分1(第0,1页),拆分2(第2,3页),拆分3(第4页末尾)。
上面的Python程序中没有使用新的函数或类。 使用简单的逻辑和迭代,我们根据传递的列表拆分创建了传递的pdf拆分。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx