在跨 API 交换文件、将文档嵌入到 JSONXML 中,或确保在仅文本环境中安全地传输二进制数据时,使用 Base64 编码是一项常见要求。PDF 也不例外。在本博文中,您将学习如何将 PDF 文件转换为 Base64 字符串,并在 Python 中将其恢复为 PDF。

我们将涵盖两个方向:

  • 将 PDF 转换为 Base64
  • 将 Base64 转换回 PDF

让我们深入探讨,提供完整的代码示例和逐步解释。

为什么将 PDF 转换为 Base64?

Base64 编码将二进制数据(例如 PDF 文件)转换为 ASCII 字符串格式。这在以下情况下特别有用:

  • 直接在 JSON、XML 或 HTML 中嵌入 PDF。
  • 通过仅支持文本的 API 发送 PDF 数据。
  • 将 PDF 存储在基于文本的存储系统中,例如数据库。
  • 避免在传输过程中数据损坏。

Aspose.PDF for Python via .NET 使这个过程简单、可靠且快速。

为什么使用 Aspose.PDF for Python 将 PDF 转换为 Base64?

Aspose.PDF for Python via .NET 是一个强大的 PDF 处理库,使开发人员能够以编程方式创建、编辑、转换和保护 PDF 文档。它远远超出了简单的解析,通过提供企业级功能,例如

  • PDF 转换:将 PDF 转换为 Base64、图像、HTML、DOCX 等。
  • 文档编辑:添加、删除或修改页面和内容。
  • 数据提取:精确提取文本、表格、图像和元数据。
  • 安全特性:应用加密、水印和数字签名。
  • 跨平台性能:在 Windows、Linux 和 macOS 上可靠运行。

与基本的 Python 库不同,Aspose.PDF 不需要 Adobe Acrobat 或任何外部工具。它是一个独立的解决方案,专为高性能应用程序设计,非常适合在实际项目中需要将 PDF 转换为 Base64 或从 Base64 转换回 PDF 的场景。

您可以 download Aspose.PDF from releases 或使用 pip 安装:

pip install aspose-pdf

在 Python 中将 PDF 转换为 Base64

您可以轻松加载现有的 PDF 文件,选择性地添加页面,并使用 Aspose.PDF for Python 将其编码为 Base64 字符串。

请按照以下步骤将 PDF 文件转换为 Base64 字符串:

  1. 使用 Document 类加载 PDF 文件。
  2. 使用 io.BytesIO 将文件保存在内存流中。
  3. 将内存流转换为字节数组。
  4. 使用内置的 base64.b64encode() 方法将字节数组编码为 Base64 字符串。
  5. 打印 Base64 字符串或将其传递给您的 API/数据库。

以下代码示例演示了如何使用 Python 将 PDF 转换为 Base64 字符串:

import aspose.pdf as ap
import base64
import io

# 加载 PDF 文档
document = ap.Document("document.pdf")

# 将 PDF 保存到内存流中
memory_stream = io.BytesIO()
document.save(memory_stream)

# 将内存流转换为字节数组
byte_array = memory_stream.getvalue()

# 将其转换为 Base64 字符串
base64_result = base64.b64encode(byte_array).decode("utf-8")

# 打印 Base64 结果
print(base64_result)

创建新的 PDF 并在 Python 中将其转换为 Base64

除了加载现有文件外,Aspose.PDF for Python 还允许您从头开始创建新的 PDF 文档。生成 PDF 后,您可以轻松将其编码为 Base64 字符串。当您需要动态生成文档(例如发票、报告或收据)并通过 API 发送或将其存储在基于文本的系统中时,这非常有用。

遵循以下步骤:

  1. 使用 Document 类创建一个新的 PDF 文档。
  2. 添加新页面
  3. 插入带有 TextFragment 的文本内容。
  4. 将 PDF 保存到内存流中。
  5. 转换为字节,然后编码为 Base64 字符串。
  6. 显示或根据需要使用 Base64 字符串。
import aspose.pdf as ap
import base64
import io

# 步骤 1:创建一个新的 PDF 文档
document = ap.Document()
page = document.pages.add()

# 步骤 2:添加一些文本内容
text_fragment = ap.text.TextFragment("Hello, this is a newly created PDF document.")
page.paragraphs.add(text_fragment)

# 步骤 3:将 PDF 保存到内存流中
memory_stream = io.BytesIO()
document.save(memory_stream)

# 步骤 4:将 PDF 字节转换为 Base64
byte_array = memory_stream.getvalue()
base64_result = base64.b64encode(byte_array).decode("utf-8")

# 步骤 5:打印或使用 Base64 结果
print(base64_result)

这种方法在您以编程方式生成 PDF 并需要立即将其作为 Base64 传递而不将其保存到磁盘时特别有效。

将 Base64 转换为 PDF 在 Python 中

一旦您拥有一个 Base64 字符串,您可能想将其恢复为 PDF 文件。Aspose.PDF 使解码同样简单。

请遵循以下步骤将 Base64 字符串转换为 PDF 文档:

  1. 加载编码字符串(例如,从文件或 API 中)。
  2. 将字符串转换为原始 PDF 字节。
  3. 使用解码字节创建一个 PDF 文档,使用 Document 类对象。
  4. 将文档导出为标准的 .pdf 文件。

以下代码示例演示了如何使用 Python 将 Base64 字符串转换回 PDF 文档:

import aspose.pdf as ap
import base64
import io

# 从文本文件中读取 Base64 字符串
with open("sample-base64.txt", "r", encoding="utf-8") as f:
    base64_string = f.read()

# 将Base64解码回字节
pdf_bytes = base64.b64decode(base64_string)

# 从内存中加载 PDF 
memory_stream = io.BytesIO(pdf_bytes)
document = ap.Document(memory_stream)

# 保存回PDF文件
document.save("Restored.pdf")

获取免费许可证

您可以通过应用免费的临时许可证,无限制地尝试 Aspose.PDF for Python via .NET 的所有功能。访问 temporary license page 以获取临时许可证,并释放 API 的全部潜力。

在线免费将 PDF 转换为 Base64

如果您想快速将PDF文件转换为Base64而不编写任何代码,可以使用 免费在线PDF转Base64转换器。该工具直接在您的浏览器中运行,因此您无需安装任何软件或库。

Image

额外资源

使用这些资源来加深您的知识,并通过 Aspose.PDF 探索现实世界的场景:

结论

在这篇文章中,您学习了如何在 Python 中将 PDF 文件转换为 Base64 字符串,然后将 Base64 字符串解码回 PDF 文件。通过使用 Aspose.PDF for Python via .NET,您获得了一个可靠且强大的 API,使得在 Python 应用程序中处理 PDF 文档的编码和解码变得简单。无论您需要在 API 中嵌入 PDF,将其作为文本存储在数据库中,还是在平台间安全传输,该库都让您完全控制整个过程。

如果您有疑问或需要帮助,请访问我们的 Aspose.PDF free support forum,我们的团队随时准备为您提供帮助。

另见