我试图创建代码以从一堆小的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()
下面是错误消息:
回溯(最近通话最近): 文件“ \ 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(流,键) writeToStream中的文件“ \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ PyPDF2 \ generic.py”,第549行 value.writeToStream(流,加密密钥) writeToStream中的文件“ \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ PyPDF2 \ generic.py”,第472行 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)中