【问题标题】:Error when trying to convert base64 into pdf (can't open file) using Python尝试使用 Python 将 base64 转换为 pdf 时出错(无法打开文件)
【发布时间】:2022-08-08 22:08:10
【问题描述】:

我正在尝试将 base64 字符串转换为 pdf 文件。

示例代码:

import base64
b64 = \'TXkgYmluYXJ5IHN0cmluZw==\\n\'
bytes = base64.b64decode(b64)
f = open(\'file.pdf\', \'wb\')
f.write(bytes)
f.close()

该文件已成功保存为pdf,但每当我尝试打开它时都会显示以下错误:

为了使文件可读,我需要采取任何其他步骤吗?谢谢

  • 如果 base64 数据实际上是 pdf 数据,那么您的代码应该可以工作。但是我可以根据给定的示例验证这一点。
  • @AbhinavMathur 感谢您建议的代码给出以下错误:需要一个类似字节的对象,而不是 \'str\'
  • @jps 同意,没有通过声明
  • @jps 嗨,感谢您的回复。可能是因为 pdf 是扫描的而不是从 doc 文件中保存的吗?似乎我的代码适用于从 ms word 文件中保存的 pdf(如我将 pdf 转换为 base64,然后使用我的代码解码并再次保存它)。不确定它是否适用于扫描的pdf...
  • 另一种解释是我拥有的base64字符串存储在MS SQL服务器中,可查看/可复制字符串的长度限制为32795。所以当我将base64字符串传递给base64.b64decode函数时,它不是完整的字符串,因此文件无法正确保存

标签: python pdf base64


【解决方案1】:

也请尝试urlsafe_b64decode 进行解码。我在 Ruby 中遇到了同样的问题,并且 url 安全解码成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    相关资源
    最近更新 更多