使用pypdf提取PDF页面生成无内容PDF的问题求助
问题原因与解决方法
核心错误:错误地将方法赋值而非调用
你的代码存在关键语法错误:output.add_page = page 这行是把page对象直接赋值给了PdfWriter的add_page方法属性,而非调用添加页面的方法。这导致PdfWriter实例中没有任何页面内容,最终生成的PDF只有基础头部结构,大小仅311字节。
修正后的代码
将赋值语句改为调用add_page方法,传入page对象作为参数:
from pypdf import PdfReader, PdfWriter input_pdf = PdfReader('testpdf.pdf') page = input_pdf.pages[0] print(len(page.extract_text())) output = PdfWriter() # 修正:调用add_page方法,而非赋值 output.add_page(page) with open('testpdf_1.pdf', 'wb') as output_stream: output.write(output_stream)
关于交互式会话中的输出
你看到的False, <_io.BufferedWriter name='testpdf_1.pdf'>是output.write(output_stream)方法的返回值:
- 第一个元素
False表示写入操作未生成有效内容(因当时未添加任何页面) - 第二个元素是输出流对象本身
这不是报错信息,只是方法返回的状态元组,修正代码后,返回值的第一个元素会变为True。
内容的提问来源于stack exchange,提问作者user3657298
相关产品推荐
相关产品推荐

