云中圣 發表於 2025-10-20 13:45:00

PDF处理控件Aspose.PDF教程:在C#中将PDF转换为Base64

<p><img src="https://image.evget.com/attachment/keditor/image/20251020/111756_6.png"></p>
<p>开发人员经常需要以基于文本的格式(例如JSON、XML或HTML属性)共享或存储PDF内容。Base64 编码也用于通过 API 传输文件或将其安全地保存在数据库中。Base64 编码也用于通过 API 传输文件或将其安全地保存在数据库中。它提供了一种可靠的方法,将二进制 PDF 数据表示为纯文本,同时保留每个字节以便稍后进行精确重建。在本教程中,您将学习如何借助<strong>Aspose.PDF</strong>使用C#将PDF转换为Base64编码,并将其解码回 PDF 文件。</p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>Aspose.PDF官方试用版下载,请联系Aspose官方授权代理商慧都科技</strong></span></p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong><em>加入Aspose技术交流QQ群(1041253375),与更多小伙伴一起探讨提升开发技能。</em></strong></span></p>
<h2 id="asposepdf-for-net--a-powerful-pdf-to-base64-converter-in-c">Aspose.PDF for .NET — 一款强大的 C# PDF 转 Base64 转换器</h2>
<p>在本文中,我们使用&nbsp;<strong>Aspose.PDF for .NET</strong>,这是一个功能强大的 C# 库,用于创建、读取、编辑和转换 PDF 文件。它无需 Adobe Acrobat 或任何外部工具,即可完全控制 PDF 的内容和结构。使用&nbsp;<strong>Aspose.PDF</strong>,您可以轻松加载现有 PDF 文档、进行修改、应用安全设置,并将其导出为各种格式,包括 Base64 编码的文本。</p>
<p>请从<strong>慧都网下载&nbsp;Aspose.PDF for .NET</strong>。您也可以使用以下命令从NuGet安装它:</p>
<pre class="prettyprint highlighter-hljs"><code>PM&gt; Install-Package Aspose.PDF</code></pre>
<h2 id="convert-pdf-to-base64-in-c">在 C# 中将 PDF 转换为 Base64</h2>
<p>当您需要在编码前处理 PDF 文件时,可以直接从内存中将其转换为 Base64 编码。此方法允许您使用该类打开 PDF&nbsp;Aspose.Pdf.Document,进行任何更改,然后将其保存到MemoryStream。最后,您可以将流转换为 Base64 字符串,以便轻松通过 API 传输或存储在数据库中。</p>
<p>按照以下步骤在 C# 中将 PDF 文件转换为 base64 字符串:</p>
<ol>
<li>使用该类加载 PDF&nbsp;Document。</li>
<li>将文档保存为MemoryStream.</li>
<li>使用该方法将字节数组转换为Base64字符串Convert.ToBase64String()。</li>
<li>使用或返回 Base64 字符串。</li>
</ol>
<p>以下代码示例显示如何将 PDF 转换为 Base64 字符串。</p>
<p>&nbsp;</p>
<pre class="prettyprint lang-cs highlighter-hljs"><code>using Aspose.Pdf;
using Aspose.Pdf.Text;

// 1) Load the PDF
using var doc = new Document("sample_pdf.pdf");

// Optionally perform edits here, e.g., optimize, redact, secure, etc.

// 2) Save to memory
using var ms = new MemoryStream();
doc.Save(ms);
var bytes = ms.ToArray();

// 3) Convert to Base64
var base64 = Convert.ToBase64String(bytes);

Console.WriteLine(base64.Substring(0, Math.Min(base64.Length, 120)) + "...");</code></pre>
<h2 id="convert-specific-pages-of-pdf-to-base64-in-c">使用 C# 将 PDF 的特定页面转换为 Base64</h2>
<p>当您需要发送 PDF 文档的一小部分(例如单页或选定的几页)时,可以仅将部分内容转换为 Base64 编码。此方法有助于减少通过 API 或其他基于文本的渠道传输数据时的有效负载大小。</p>
<p>按照以下步骤将 PDF 的特定页面转换为 Base64 字符串:</p>
<ol>
<li>使用该类加载 PDF 文件Document。</li>
<li>创建一个新的Document类对象来保存提取的页面。</li>
<li>将所需页面复制到新文档中。</li>
<li>保存MemoryStream并编码为 Base64。</li>
</ol>
<pre class="prettyprint lang-cs highlighter-hljs"><code>using System;
using System.IO;
using Aspose.Pdf;

// Open the source PDF from a file path
using var src = new Document("sample_pdf.pdf");

// Create a new empty PDF that will contain only the selected page(s)
using var sub = new Document();

// Copy the requested page into the new document
sub.Pages.Add(src.Pages);

// Save the one-page PDF to memory instead of disk
using var ms = new MemoryStream();
sub.Save(ms);

// Convert the in-memory PDF bytes to a Base64 string
var base64 = Convert.ToBase64String(ms.ToArray());

// Print a short preview of the Base64 text to the console
Console.WriteLine(base64.Substring(0, Math.Min(base64.Length, 120)) + "...");</code></pre>
<h2 id="create-a-new-pdf-document-and-convert-to-base64">创建新的 PDF 文档并转换为 Base64</h2>
<p>您可以在内存中构建一个新的 PDF,并将其转换为 Base64 编码,而无需访问磁盘。当您动态生成文档并需要通过 API 发送、嵌入 JSON 或 HTML 格式,或将其存储在数据库中时,此功能非常有用。在此方法中,您需要创建一个Aspose.Pdf.Document,添加内容,将其保存到MemoryStream,然后将字节转换为 Base64 字符串。</p>
<p>按照以下步骤创建一个新的 PDF 文档并将其转换为 Base64:</p>
<ol>
<li>创建一个空的Document。</li>
<li>添加页面并放置一些文本TextFragment。</li>
<li>将文档保存为MemoryStream.</li>
<li>将流字节转换为 Base64 字符串。</li>
</ol>
<pre class="prettyprint lang-cs highlighter-hljs"><code>using System;
using System.IO;
using Aspose.Pdf;

// 1) Create a new PDF document in memory
var pdf = new Document();

// 2) Add a page and some sample content
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) Save to a MemoryStream
using var ms = new MemoryStream();
pdf.Save(ms);
byte[] bytes = ms.ToArray();

// 4) Convert to Base64 string
string base64 = Convert.ToBase64String(bytes);

// 5) Optionally prepare a data URI for browsers or embed in 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)) + "...");</code></pre>
<h2 id="convert-base64-to-pdf-in-c">在 C# 中将 Base64 转换为 PDF</h2>
<p>当您的应用程序从客户端或 API 接收编码数据时,您可以将 Base64 字符串转换回 PDF 文件。当您需要恢复原始文档、将其保存到磁盘或将其加载到Aspose.Pdf.Document类中进行进一步处理(例如编辑、保护或提取内容)时,此功能非常有用。</p>
<p>按照以下步骤将 Base64 字符串转换为 PDF 文档:</p>
<ol>
<li>加载编码的字符串(例如,从文件或 API)。</li>
<li>将字符串转换为原始 PDF 字节。</li>
<li>Document使用带有解码字节的类对象创建 PDF 文档。</li>
<li>保存 PDF 文档。</li>
</ol>
<p>以下代码示例显示如何使用 C# 将 Base64 字符串转换回 PDF 文档:</p>
<pre class="prettyprint lang-cs highlighter-hljs"><code>using System;
using System.IO;
using Aspose.Pdf;

// Read Base64 text from a file and trim extra whitespace or newlines
using System;
using System.IO;
using Aspose.Pdf;

// Read the text file
string base64 = File.ReadAllText("sample-base64.txt").Trim();

// Optional: handle data URI input like "data:application/pdf;base64,AAAA..."
// Detect and strip the prefix so only the raw Base64 remains
const string prefix = "data:application/pdf;base64,";
if (base64.StartsWith(prefix, StringComparison.OrdinalIgnoreCase))
    base64 = base64.Substring(prefix.Length);

// Decode the Base64 string into a byte array
byte[] pdfBytes = Convert.FromBase64String(base64);

// Validate by loading the bytes into Aspose.PDF; this throws if bytes are not a valid PDF
using var doc = new Document(new MemoryStream(pdfBytes));

// Persist the recovered PDF to disk
doc.Save("output.pdf");</code></pre>
<h2 id="pdf-to-base64-faqs">PDF 转 Base64:常见问题解答</h2>
<p><strong>1. 什么是 Base64 编码,为什么它用于 PDF 文件?</strong></p>
<p>Base64 编码将二进制数据(例如 PDF 文件)转换为纯文本。它通常用于通过 JSON、XML 或 API 等基于文本的系统传输文件,且不会造成数据损坏。</p>
<p><strong>2. 我可以只将 PDF 的特定页面转换为 Base64 吗?</strong></p>
<p>是的。<strong>Aspose.PDF for .NET</strong>&nbsp;允许您提取任意页面或一定范围的页面,并仅将该部分转换为 Base64,以减少文件大小和传输时间。</p>
<p><strong>3. 如何在 C# 中将 Base64 字符串解码回 PDF 文件?</strong></p>
<p>您可以使用该Convert.FromBase64String()方法获取字节数组,然后将其加载到Aspose.Pdf.Document类中或将其作为文件直接保存到磁盘.pdf。</p>
<p><strong>4. 将大型 PDF 转换为 Base64 时是否有大小限制?</strong></p>
<p><strong>Aspose.PDF</strong>&nbsp;没有固定的限制,但大文件需要足够的内存。使用流而不是将整个文件加载到内存中有助于提高性能。</p>
<p><strong>5. 我可以使用此方法通过 API 或 Web 服务发送 PDF 吗?</strong></p>
<p>是的。通过 API 或 Web 应用程序传输文件时,Base64 字符串非常适合将 PDF 数据嵌入 JSON 或 XML 负载。</p>
<p><strong>6.Base64编码会影响PDF质量或内容吗?</strong></p>
<p>不会。Base64 编码只会改变数据的表示方式。解码后的文件将与原始 PDF 完全相同,不会有任何质量或信息损失。</p>
<p><strong>7. 如何一次性将多个 PDF 文件转换为 Base64?</strong></p>
<p>您可以循环遍历每个文件,使用 加载Aspose.Pdf.Document,然后将每个文件分别转换为 Base64 编码。这种方法非常适合批量处理。</p>
<p><strong>8. 我可以生成一个新的 PDF 并直接将其转换为 Base64 而不将其保存到磁盘吗?</strong></p>
<p>是的。您可以Document在内存中创建一个新的文件,添加内容,将其保存到文件中MemoryStream,然后将其编码为Base64,无需创建物理文件。</p>
<h2 id="conclusion">结论</h2>
<p>在本文中,您学习了如何使用<strong>&nbsp;Aspose.PDF for .NET</strong>&nbsp;在 C# 中将 PDF 文件转换为 Base64 字符串并将其解码回 PDF。该库提供了可靠且功能丰富的 API 来处理 PDF 文档,使得 Base64 编码和解码在任何 .NET 应用程序中都易于实现。</p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>Aspose.PDF官方试用版下载,请联系Aspose官方授权代理商慧都科技</strong></span></p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong><em>加入Aspose技术交流QQ群(1041253375),与更多小伙伴一起探讨提升开发技能。</em></strong></span></p><br><br>
来源:https://www.cnblogs.com/software-Development/p/19152467
頁: [1]
查看完整版本: PDF处理控件Aspose.PDF教程:在C#中将PDF转换为Base64