python-3.x - 由于包含中文字符的内容,PdfFileWriter 不起作用
问题描述
我试图创建一个代码来从一堆小的 pdf 文件中生成一个组合的 pdf,而我发现脚本因 UnicodeEncodeError 错误而失败。
我还尝试使用 open("Combined.pdf", "w",encoding='utf-8-sig') 作为 outputStream: 包含编码参数:但编译器说它需要是二进制 'wb' 模式。所以这行不通。下面是代码:
writer = PdfFileWriter()
input_stream = []
for f2 in f_re:
inputf_file = str(mypath+'\\'+f2[2])
input_stream.append(open(inputf_file,'rb'))
for reader in map(PdfFileReader, input_stream):
for n in range(reader.getNumPages()):
writer.addPage(reader.getPage(n))
with open("Combined.pdf", "wb") as outputStream:
writer.write(outputStream)
writer.save()
for f in input_stream:
f.close()
以下是错误信息:
Traceback(最近一次调用最后):文件“\Workspace\Python\py_CombinPDF\py_combinePDF.py”,第 89 行,在 writer.write(outputStream) 文件“\AppData\Local\Programs\Python\Python36\lib\site-packages \PyPDF2\pdf.py”,第 501 行,写入 obj.writeToStream(stream, key) 文件“\AppData\Local\Programs\Python\Python36\lib\site-packages\PyPDF2\generic.py”,第 549 行,在 writeToStream value.writeToStream(stream, encryption_key) File "\AppData\Local\Programs\Python\Python36\lib\site-packages\PyPDF2\generic.py",第 472 行,在 writeToStream stream.write(b_(self))文件“\AppData\Local\Programs\Python\Python36\lib\site-packages\PyPDF2\utils.py”,第 238 行,在 b_r = s.encode('latin-1') UnicodeEncodeError: 'latin-1'编解码器无法对位置 8-9 中的字符进行编码:序数不在范围内(256)
解决方案
推荐阅读
- docker - GNU make 创建 Docker 容器并使用 Image id
- java - Scala jar:错误:无法找到或加载主类
- python - 如何在不使用包的情况下按第二个值然后第一个值对嵌套列表进行排序?
- javascript - 添加我的其他 Javascript 时,Javascript/JQuery 的一部分不起作用
- android - 如何在android中管理可能很长的列表中的内存?
- python-3.x - 如何在pyqt5应用程序中显示GIF - python
- google-cloud-platform - 无法从 Spring Boot 应用程序连接到托管在云中的 kafka
- python - 自定义 python 字典接受字符串和枚举作为键
- awk - 与 awk 进行数值比较小于或等于
- c# - 不可调用的成员“文件”不能像方法一样使用