PyPDF2裁剪PDF报错TypeError: 'tuple' object is not callable的解决方法
解决PyPDF2裁剪PDF时的TypeError问题
错误原因分析
page.cropbox.lower_left和page.cropbox.upper_right是元组类型的属性,不是可调用的方法,不能用括号传值,需要直接赋值。- 存在变量名和方法名错误:
write.addPage(page)应为writer.add_page(page),PyPDF2的方法采用小写下划线的命名规范,且变量名是writer而非write。 PdfReader初始化无需传入'r'参数,该类仅接受文件路径或文件对象作为参数。
修正后的代码
from PyPDF2 import PdfReader, PdfWriter reader = PdfReader('Flipkart_Test.pdf') writer = PdfWriter() print("Total PDF Pages", len(reader.pages)) page = reader.pages[4] # 查看原页面的尺寸参数 print(page.mediabox.left) print(page.mediabox.right) print(page.mediabox.top) print(page.mediabox.bottom) crop_left = (180.0, 0) print(crop_left[0]) for i in range(len(reader.pages)): page = reader.pages[i] # 直接为裁剪框坐标属性赋值 page.cropbox.lower_left = crop_left page.cropbox.upper_right = (100, 120) writer.add_page(page) # 使用with语句自动管理文件流 with open('Flipkart_Crop.pdf', 'wb') as outstream: writer.write(outstream)
内容的提问来源于stack exchange,提问作者Hasti Ghelani
相关产品推荐
相关产品推荐

