如何在 Python 中对 PDF 文件进行 base64 编码
Posted
技术标签:
【中文标题】如何在 Python 中对 PDF 文件进行 base64 编码【英文标题】:How to base64 encode a PDF file in Python 【发布时间】:2010-09-17 13:22:47 【问题描述】:我应该如何对 PDF 文件进行 base64 编码,以便在 Python 中通过 XML-RPC 进行传输?
【问题讨论】:
这真的不是问题,因为 xmlrpclib 会为你做这件事 事实上,事实证明就是答案。当我问这个问题时,我只是不知道。 【参考方案1】:如果你不想使用 xmlrpclib 的 Binary 类,你可以使用字符串的 .encode() 方法:
a = open("pdf_reference.pdf", "rb").read().encode("base64")
【讨论】:
这不是在编码之前通过调用read()
读取整个文件吗?这是它应该如何工作的吗?我无法想象用这个编码一个多 MB 或更大的文件。
@Shurane 这是一个使用字符串编码方法的单行示例。优化性能将是特定于应用程序的,留作练习。
这不再适用于 Python 3,试试这个:base64.b64encode(open('path/to/your.pdf', 'rb').read())
信用:***.com/a/43084065/5125264【参考方案2】:
实际上,经过更多挖掘,看起来xmlrpclib
模块可能有我需要的部分,它是Binary
辅助类:
这是来自Trac XML-RPC documentation的示例
import xmlrpclib
server = xmlrpclib.ServerProxy("http://athomas:password@localhost:8080/trunk/login/xmlrpc")
server.wiki.putAttachment('WikiStart/t.py', xmlrpclib.Binary(open('t.py').read()))
【讨论】:
【参考方案3】:您可以使用base64 library,旧版界面来做到这一点。
【讨论】:
【参考方案4】:看来您可以使用binascii 模块
binascii.b2a_base64(数据)
将二进制数据转换为base64编码的一行ASCII字符。返回值是转换后的行,包括换行符。数据长度最多为 57 以符合 base64 标准。
【讨论】:
以上是关于如何在 Python 中对 PDF 文件进行 base64 编码的主要内容,如果未能解决你的问题,请参考以下文章
在 Typescript 中对嵌入的 PDF 进行 Base64 解码
如何在 netsuite/freemarker 的高级 pdf/html 工作表中对列表进行分组?