gpt4 book ai didi

python - 在 python 中添加带有重音的 pdf 元数据

转载 作者:太空宇宙 更新时间:2023-11-03 15:42:25 25 4
gpt4 key购买 nike

我想使用这段代码更改 pdf 文件的元数据:

from PyPDF2 import PdfFileReader, PdfFileWriter

title = "Vice-présidence pour l'éducation"
fin = open(filename, 'rb')
reader = PdfFileReader(fin)
writer = PdfFileWriter()
writer.appendPagesFromReader(reader)
metadata = reader.getDocumentInfo()

metadata.update({'/Title':title})

writer.addMetadata(metadata)

fout = open(filename, 'wb')
writer.write(fout)

fin.close()
fout.close()

如果标题是英文(没有重音),它工作正常,但当它有重音时,我会收到以下错误:

TypeError: createStringObject should have str or unicode arg

如何向元数据添加带重音的标题?

谢谢

最佳答案

获得此错误消息的唯一方法是在 library 中的 createStringObject(string) 函数中使用错误类型的参数 string本身。

它在 utils.py 中使用这些函数寻找字符串或字节类型

import builtins
bytes_type = type(bytes()) # Works the same in Python 2.X and 3.X
string_type = getattr(builtins, "unicode", str)

如果我用这样一个明显错误的类型重写你的代码,我只能重现你的错误(代码是使用 with 语句重写的,但只有注释行很重要):

from PyPDF2 import PdfFileReader, PdfFileWriter


with open(inputfile, "rb") as fr, open(outputfile, "wb") as fw:
reader = PdfFileReader(fr)
writer = PdfFileWriter()

writer.appendPagesFromReader(reader)
metadata = reader.getDocumentInfo()

# metadata.update({'/Title': "Vice-présidence pour l'éducation"})
metadata.update({'/Title': [1, 2, 3]}) # <- wrong type here !
writer.addMetadata(metadata)

writer.write(fw)

您的字符串类型 title = "Vice-présidence pour l'éducation" 似乎与 bytes_typestring_type 不匹配> 已解决。要么你有一个奇怪的标题变量类型(我在你的代码中看不到,可能是因为创建了 MCVE)或者你无法将 bytes_typestring_type 作为类型库作者的意图(这可能是库中的错误或错误的安装,对我来说很难说)。

如果没有可重现的代码,就很难提供解决方案。但希望这会给你正确的方向。也许将字符串的类型设置为解析为 bytes_typestring_type 的任何类型就足够了。其他解决方案将在图书馆网站上或简单的黑客攻击。

关于python - 在 python 中添加带有重音的 pdf 元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51844665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com