PDF文件头信息: Traceback (most recent call last): File "D:\Python\程序练习\修改后的程序\解析1.py", line 14, in <module> print(f'{key}: {value}') UnicodeEncodeError: 'gbk' codec can't encode character '\xae' in position 20: illegal multibyte sequence
时间: 2024-02-09 17:08:30 浏览: 149
这是因为在GBK编码下,某些特殊字符无法被正常打印。您可以将输出编码改为UTF-8,这样就可以正常输出包含特殊字符的信息了。修改后的代码示例如下:
```python
import PyPDF2
# 打开PDF文件
pdf_file = open('example.pdf', 'rb')
# 创建一个PDF读取器对象
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
# 打印PDF文件头信息
pdf_info = pdf_reader.getDocumentInfo()
print('PDF文件头信息:')
for key, value in pdf_info.items():
print(f'{key}: {value.encode("utf-8").decode("utf-8")}')
# 打印PDF文件体信息
for page_num in range(pdf_reader.getNumPages()):
page = pdf_reader.getPage(page_num)
print(f'第{page_num+1}页的内容:\n{page.extractText()}')
# 打印PDF交叉引用表信息
print('PDF交叉引用表信息:\n', pdf_reader.xref)
# 打印PDF文件尾信息
print('PDF文件尾信息:', pdf_reader.trailer)
# 关闭PDF文件
pdf_file.close()
```
在这个代码示例中,我们使用`encode("utf-8").decode("utf-8")`将每个值先编码为UTF-8,再解码为Unicode字符串,这样就可以正确输出包含特殊字符的信息了。
阅读全文