如何将 PDF 从 base64 字符串转换为文件?

新手上路,请多包涵

我有一个 PDF 作为 base64 字符串,我需要使用 Python 将它写入文件。我试过这个:

 import base64

base64String = "data:application/pdf;base64,JVBERi0xLjQKJeHp69MKMSAwIG9iago8PC9Qcm9kdWNlciAoU2tpYS9..."

with open('temp.pdf', 'wb') as theFile:
  theFile.write(base64.b64decode(base64String))

但它没有创建有效的 PDF 文件。我错过了什么?

原文由 Rafael Miller 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

根据我的理解,base64decode 只接受一个 base64 字符串,看起来你的字符串上有一些未编码的标头。

我会删除“data:application/pdf;base64,”

在此处查看文档: https ://docs.python.org/2/library/base64.html

当我过去使用它时,我只使用编码字符串。

原文由 Mark 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 codecs.decode 函数编写它是否有效?同样如 Mark 所述,您可以尝试删除字符串的 data:application/pdf;base64, 部分,因为这部分字符串不会被解码。:

 import codecs
base64String = "JVBERi0xLjQKJeHp69MKMSAwIG9iago8PC9Qcm9kdWNlciAoU2tpYS9..."

with open("test.pdf", "wb") as f:
    f.write(codecs.decode(base64string, "base64"))

原文由 Jebby 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题