开发人员经常需要以基于文本的格式分享或存储 PDF 内容,例如 JSON,XML,或 HTML 属性。Base64 编码也用于通过 API 传输文件或安全地将它们保存到数据库中。它提供了一种可靠的方式将二进制 PDF 数据表示为纯文本,同时保留每个字节以便后期准确重建。在本指南中,您将学习如何在 C# 中将 PDF 转换为 Base64 并解码回 PDF 文件。
Aspose.PDF for .NET — 一款强大的 PDF 转 Base64 的 C# 转换器
在这篇文章中,我们使用 Aspose.PDF for .NET,这是一个强大的库,用于在 C# 中创建、阅读、编辑和转换 PDF 文件。它提供了对 PDF 内容和结构的完全控制,无需 Adobe Acrobat 或任何外部工具。使用 Aspose.PDF,您可以轻松加载现有的 PDF 文档,修改它们,应用安全设置,并将它们导出为各种格式,包括 Base64 编码的文本。
请从 releases 下载 Aspose.PDF for .NET。您也可以使用以下命令从 NuGet 安装它:
PM> Install-Package Aspose.PDF
将 PDF 转换为 Base64 的 C# 代码
您可以在需要处理文件之前直接从内存将 PDF 文件转换为 Base64。此方法让您可以使用 Aspose.Pdf.Document 类打开 PDF,进行任何更改,然后将其保存到 MemoryStream。最后,您可以将流转换为可以通过 API 轻松传输或存储在数据库中的 Base64 字符串。
按照以下步骤将 PDF 文件转换为 C# 中的 base64 字符串:
- 使用
Document类加载 PDF。 - 将文档保存到
MemoryStream。 - 将字节数组转换为 Base64 字符串,使用
Convert.ToBase64String()方法。 - 使用或返回 Base64 字符串。
以下代码示例演示如何将 PDF 转换为 Base64 字符串。
using Aspose.Pdf;
using Aspose.Pdf.Text;
// 1. 加载 PDF
using var doc = new Document("sample_pdf.pdf");
// Optionally perform edits here, e.g., optimize, redact, secure, etc.
// 2. 保存到内存
using var ms = new MemoryStream();
doc.Save(ms);
var bytes = ms.ToArray();
// 3. 转换为 Base64
var base64 = Convert.ToBase64String(bytes);
Console.WriteLine(base64.Substring(0, Math.Min(base64.Length, 120)) + "...");
在 C# 中将 PDF 的特定页面转换为 Base64
您可以仅将 PDF 文档的部分转换为 Base64,当您需要发送文档的较小部分时,例如单个页面或几个选定的页面。该方法有助于在通过 API 或其他基于文本的通道传输数据时减小有效负载大小。
按照以下步骤将 PDF 的特定页面转换为 Base64 字符串:
- 使用
Document类加载 PDF 文件。 - 创建一个新的
Document类对象来保存提取的页面。 - 将所需的页面复制到新文档中。
- 保存到
MemoryStream并编码为 Base64。
using System;
using System.IO;
using Aspose.Pdf;
// 打开来自文件路径的源 PDF
using var src = new Document("sample_pdf.pdf");
// 创建一个新的空PDF,只包含选定的页面。
using var sub = new Document();
// 将请求的页面复制到新文档中
sub.Pages.Add(src.Pages[1]);
// 将一页PDF保存到内存而不是磁盘
using var ms = new MemoryStream();
sub.Save(ms);
// 将内存中的 PDF 字节转换为 Base64 字符串
var base64 = Convert.ToBase64String(ms.ToArray());
// 打印 Base64 文本的简短预览到控制台
Console.WriteLine(base64.Substring(0, Math.Min(base64.Length, 120)) + "...");
创建新 PDF 文档并转换为 Base64
您可以在内存中构建一个新的 PDF 并将其转换为 Base64,而无需接触磁盘。这在您动态生成文档并需要通过 API 发送它们、嵌入到 JSON 或 HTML 中或将其存储在数据库中时很有用。在此方法中,您创建一个 Aspose.Pdf.Document,添加内容,将其保存到 MemoryStream 中,然后将字节转换为 Base64 字符串。
按照下面的步骤创建一个新的 PDF 文档并将其转换为 Base64:
- 创建一个空的
Document。 - 添加一个页面并使用
TextFragment放置一些文本。 - 将文档保存到
MemoryStream。 - 将流字节转换为 Base64 字符串。
using System;
using System.IO;
using Aspose.Pdf;
// 1. 在内存中创建一个新的 PDF 文档
var pdf = new Document();
// 2. 添加一个页面和一些示例内容
var page = pdf.Pages.Add();
var header = new TextFragment("Hello from Aspose.PDF");
header.TextState.FontSize = 18;
header.TextState.FontStyle = FontStyles.Bold;
page.Paragraphs.Add(header);
var body = new TextFragment("This PDF was generated in memory and then converted to Base64.");
body.TextState.FontSize = 12;
page.Paragraphs.Add(body);
// 3. 保存到 MemoryStream
using var ms = new MemoryStream();
pdf.Save(ms);
byte[] bytes = ms.ToArray();
// 4.转换为 Base64 字符串
string base64 = Convert.ToBase64String(bytes);
// 5. 可选地为浏览器准备数据 URI 或嵌入 JSON
string dataUri = $"data:application/pdf;base64,{base64}";
// Output for demo purposes
Console.WriteLine("Base64 length: " + base64.Length);
Console.WriteLine("Data URI sample (truncated): " + dataUri.Substring(0, Math.Min(dataUri.Length, 80)) + "...");
在 C# 中将 Base64 转换为 PDF
您可以在应用程序接收到来自客户端或 API 的编码数据时将 Base64 字符串转换回 PDF 文件。这在您需要恢复原始文档、将其保存到磁盘或加载到 Aspose.Pdf.Document 类中以进行进一步处理(例如编辑、保护或提取内容)时很有帮助。
按照以下步骤将 Base64 字符串转换为 PDF 文档:
- 加载编码的字符串(例如,从文件或 API)。
- 将字符串转换为原始 PDF 字节。
- 使用
Document类对象和解码后的字节创建 PDF 文档。 - 保存PDF文档。
以下代码示例显示了如何使用 C# 将 Base64 字符串转换回 PDF 文档:
// 从文件中读取 Base64 文本并修剪额外的空格或换行符
using System;
using System.IO;
using Aspose.Pdf;
// 读取文本文件
string base64 = File.ReadAllText("sample-base64.txt").Trim();
// 可选:处理数据 URI 输入,如 "data:application/pdf;base64,AAAA..."
// 检测并去除前缀,以便仅保留原始的 Base64 内容
const string prefix = "data:application/pdf;base64,";
if (base64.StartsWith(prefix, StringComparison.OrdinalIgnoreCase))
base64 = base64.Substring(prefix.Length);
// 将 Base64 字符串解码为字节数组
byte[] pdfBytes = Convert.FromBase64String(base64);
// 通过将字节加载到 Aspose.PDF 来验证;如果字节不是有效的 PDF,则会抛出异常。
using var doc = new Document(new MemoryStream(pdfBytes));
// 将恢复的 PDF 保存到磁盘
doc.Save("output.pdf");
获得免费许可证
您可以申请免费的临时许可证,毫无限制地探索 Aspose.PDF for .NET 的所有功能。访问 临时许可证页面 获取您的许可证,体验 API 的全部功能。
免费在线将 PDF 转换为 Base64
如果您需要立即将PDF文件转换为Base64,而无需编写任何代码,请尝试这个 free online PDF to Base64 converter。这个基于浏览器的工具让您可以上传PDF并在几秒钟内获得其Base64编码的文本。无需安装、注册或额外的库。所有操作都在您的网页浏览器中安全运行。

PDF 文件到 Base64 字符串:附加资源
欲了解有关使用 Aspose.PDF for .NET 处理 PDF 文件和 Base64 编码的更多信息,请查阅以下有用的指南和工具:
- 了解支持的文件格式、高级 PDF 操作功能以及使用 Aspose.PDF for .NET Documentation 的详细 API 使用示例。
- 审查完整的类库、方法和属性,以便开发人员在使用 Aspose.PDF API Reference 进行 PDF 创建、转换和编码时使用。
- 尝试使用 Aspose PDF Apps 的基于浏览器的 PDF 转换器、合并器、压缩器和查看器。
- 探索实用示例、操作指南和深入的编程指南,访问 Aspose.PDF Blog。
PDF 转 Base64:常见问题解答
- 什么是 Base64 编码,它为什么与 PDF 文件一起使用?
Base64 编码将二进制数据,例如 PDF 文件,转换为纯文本。它通常用于通过基于文本的系统(如 JSON、XML 或 API)传输文件,而不会导致数据损坏。
- 我可以只将 PDF 的特定页面转换为 Base64 吗?
是的。Aspose.PDF for .NET 允许您提取任何页面或页面范围,并仅将该部分转换为 Base64,以减少文件大小和传输时间。
- 我该如何在C#中将Base64字符串解码回PDF文件?
你可以使用 Convert.FromBase64String() 方法来获取字节数组,然后将其加载到 Aspose.Pdf.Document 类中,或者直接保存为 .pdf 文件到磁盘。
- 将大型 PDF 转换为 Base64 时是否有大小限制?
从 Aspose.PDF 没有固定的限制,但大文件需要足够的内存。使用流而不是将整个文件加载到内存中可以帮助提高性能。
- 我可以使用这种方法通过 API 或 Web 服务发送 PDF 吗?
是的。Base64 字符串非常适合在通过 API 或 Web 应用程序传输文件时,将 PDF 数据嵌入到 JSON 或 XML 负载中。
- Base64 编码会影响 PDF 的质量或内容吗?
不。Base64 编码仅改变数据的表示方式。解码后的文件与原始 PDF 完全相同,没有质量或信息的损失。
- 如何一次性将多个 PDF 文件转换为 Base64?
您可以遍历每个文件,使用 Aspose.Pdf.Document 加载它,并将每个文件单独转换为 Base64。这对于批处理非常有效。
- 我可以生成一个新的 PDF 并直接将其转换为 Base64,而不将其保存到磁盘吗?
是的。您可以在内存中创建一个新的 Document,添加内容,将其保存到 MemoryStream,然后编码为 Base64,无需创建物理文件。
结论
在本文中,您学习了如何使用 Aspose.PDF for .NET 将 PDF 文件转换为 Base64 字符串,并将其解码回 PDF。该库提供了一个可靠且功能丰富的 API,便于处理 PDF 文档,使得在任何 .NET 应用程序中实现 Base64 编码和解码变得简单。
如果您有任何问题或需要帮助,请访问我们的 free support forum,我们的团队随时乐意提供帮助。
