開發者經常需要以基於文本的格式分享或儲存 PDF 內容,例如 JSONXMLHTML 屬性。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 字串:

  1. 使用 Document 類別加載 PDF。
  2. 將文檔保存到 MemoryStream
  3. 將位元組陣列轉換為 Base64 字串,使用 Convert.ToBase64String() 方法。
  4. 使用或返回 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 字串:

  1. 使用 Document 類別加載 PDF 文件。
  2. 創建一個新的 Document 類對象以保存提取的頁面。
  3. 將所需的頁面複製到新文檔中。
  4. 保存到 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:

  1. 創建一個空的 Document
  2. 增加一頁並放置一些文字與 TextFragment
  3. 將文件保存到 MemoryStream
  4. 將串流位元組轉換為 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 文件:

  1. 加載編碼字符串(例如,來自文件或API)。
  2. Convert the string into raw PDF bytes.
  3. 使用 Document 類對象和解碼的位元組創建 PDF 文件。
  4. 保存 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 編碼的文本。不需要安裝、註冊或額外的庫。一切都在您的網頁瀏覽器中安全運行。

Image

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: 常見問題解答

  1. 什麼是 Base64 編碼,它為什麼會用於 PDF 檔案?

Base64 編碼將二進位數據,例如 PDF 文件,轉換為純文本。它通常用於通過基於文本的系統(如 JSON、XML 或 API)傳輸文件,而不會造成數據損壞。

  1. 我可以將 PDF 的特定頁面轉換為 Base64 嗎?

是的,Aspose.PDF for .NET 允許您提取任何頁面或一個範圍的頁面,並僅將這部分轉換為 Base64,以減少文件大小和傳輸時間。

  1. 我如何在 C# 中將 Base64 字串解碼回 PDF 檔案?

您可以使用 Convert.FromBase64String() 方法獲取字節數組,然後將其加載到 Aspose.Pdf.Document 類中,或直接將其保存為 .pdf 文件到磁碟。

  1. 將大型PDF轉換為Base64時是否有大小限制?

從 Aspose.PDF 並沒有固定的限制,但大型文件需要足夠的記憶體。使用串流而不是將整個文件加載到記憶體中有助於提高性能。

  1. 我可以使用這種方法通過 API 或 web 服務發送 PDF 嗎?

是的。Base64 字串非常適合在通過 API 或 Web 應用程序傳輸檔案時,將 PDF 數據嵌入 JSON 或 XML 負載中。

  1. Base64 編碼會影響 PDF 的質量或內容嗎?

不。Base64 編碼只改變數據的表示方式。解碼後的文件將與原始 PDF 完全相同,不會丟失任何質量或信息。

  1. 我該如何一次將多個 PDF 檔案轉換為 Base64?

您可以遍歷每個文件,使用 Aspose.Pdf.Document 加載它,並將每個文件單獨轉換為 Base64。這對於批量處理非常有效。

  1. 我可以生成一個新的 PDF 並直接將其轉換為 Base64 而不將其保存到磁碟上嗎?

是的。您可以在記憶體中創建一個新的 Document,添加內容,將其保存到 MemoryStream 中,然後將其編碼為 Base64,無需創建實體文件。

結論

在這篇文章中,您學會了如何將 PDF 文件轉換為 Base64 字串,以及如何在 C# 中使用 Aspose.PDF for .NET 將其解碼回 PDF。這個庫提供了一個可靠且功能豐富的 API 來處理 PDF 文檔,使 Base64 編碼和解碼在任何 .NET 應用程序中都易於實現。

如果您有任何問題或需要協助,請訪問我們的 free support forum,我們的團隊隨時可以提供幫助。

看更多