開發者經常需要以基於文本的格式分享或儲存 PDF 內容,例如 JSON、XML 或 HTML 屬性。Base64 編碼也用於通過 API 傳輸檔案或安全地將其儲存於資料庫中。它提供了一種可靠的方法來將二進位 PDF 數據表示為純文本,同時保留每個位元組以便稍後準確重建。在本指南中,您將學習如何在 C# 中將 PDF 轉換為 Base64 並將其解碼回 PDF 檔案。
Aspose.PDF for .NET — 一個強大的 C# PDF 到 Base64 轉換器
在本文中,我們使用 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)) + "...");
將 PDF 的特定頁面轉換為 Base64 的 C# 程式碼
您可以僅將 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)) + "...");
將 Base64 轉換為 PDF 的 C# 代碼如下:
您可以在應用程序從客戶端或 API 接收編碼數據時,將 Base64 字串轉換回 PDF 檔案。當您需要恢復原始文檔、將其保存到磁碟或將其加載到 Aspose.Pdf.Document 類中以進行進一步處理(例如編輯、安全性或內容提取)時,這是很有幫助的。
遵循以下步驟將 Base64 字串轉換為 PDF 文件:
- 加載編碼字符串(例如,來自文件或API)。
- Convert the string into raw PDF bytes.
- 使用
Document類對象和解碼的位元組創建 PDF 文件。 - 保存 PDF 文件。
以下代碼示例顯示如何使用 C# 將 Base64 字串轉換回 PDF 文件:
// 從文件中讀取 Base64 文字並修剪多餘的空格或換行符
using System;
using System.IO;
using Aspose.Pdf;
// Read the text file
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 的所有功能。請訪問 temporary license page 以獲取您的許可證,並體驗 API 的全部功能。
免費在線將 PDF 轉換為 Base64
如果您需要立即將 PDF 文件轉換為 Base64,而不需要編寫任何代碼,請嘗試這個 免費的在線 PDF 到 Base64 轉換器。這個基於瀏覽器的工具讓您可以上傳 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,無需創建實體文件。
結論
在這篇文章中,您學會了如何將 PDF 文件轉換為 Base64 字串,以及如何在 C# 中使用 Aspose.PDF for .NET 將其解碼回 PDF。這個庫提供了一個可靠且功能豐富的 API 來處理 PDF 文檔,使 Base64 編碼和解碼在任何 .NET 應用程序中都易於實現。
如果您有任何問題或需要協助,請訪問我們的 free support forum,我們的團隊隨時可以提供幫助。
