如何使用 IronPDF 在 C# 中新增與移除 PDF 附件
IronPDF 讓您能夠透過簡單的 C# 方法(例如 AddAttachment() 和 RemoveAttachment())以程式化方式在 PDF 文件中新增、擷取及移除檔案附件,讓您能將補充檔案直接嵌入 PDF 文件中。
PDF 文件中的附件,指的是嵌入在 PDF 檔案本身內的檔案或附加資料。 這與 PDF 的常規內容有所不同,後者包含您檢視 PDF 時可見的文字、圖片及格式設定。 這些附件可能包含多種檔案類型,例如圖片、文件、試算表或其他格式。 通常,附件是用來提供額外的參考資料或補充資料,使用者在開啟 PDF 時即可存取這些內容。 此功能在製作全面的 PDF 報告,或需要將多個 PDF 與支援文件合併時,特別實用。
快速入門:在 PDF 中加入附件
使用 IronPDF 為您的 PDF 文件添加附件。 此簡短範例示範如何將檔案嵌入 PDF 作為附件。 載入現有的 PDF 檔案,使用 AddAttachment 方法,並儲存更新後的文件。 此流程可確保您的補充資料隨 PDF 檔案一併包含,讓使用者能透過任何 PDF 檢視器直接存取這些資料。
-
using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronPdf
PM > Install-Package IronPdf -
請複製並執行此程式碼片段。
var pdf = IronPdf.PdfDocument.FromFile("example.pdf"); pdf.Attachments.AddAttachment("file.txt", System.IO.File.ReadAllBytes("file.txt")); pdf.SaveAs("updated.pdf"); -
部署至您的生產環境進行測試
立即透過免費試用,在您的專案中開始使用 IronPDF
簡化工作流程(5 個步驟)
- 從 NuGet 下載 IronPDF C# 函式庫
- 載入現有 PDF 或渲染新文件
- 使用
File.ReadAllBytes將檔案匯入為byte[] - 請使用
AddAttachment將其附加至 PDF 檔案 - 使用
RemoveAttachment移除附件
如何將檔案附加至 PDF 文件中?
若要將檔案新增為附件,請先將其載入為 byte[]。 最簡便的做法是採用 File.ReadAllBytes 方法。 將檔案載入為 byte[] 後,請使用 AddAttachment 方法將該物件作為附件加入 PDF 中:
:path=/static-assets/pdf/content-code-examples/how-to/add-remove-attachments-add-attachment.cs
using IronPdf;
using System.IO;
// Import attachment file
byte[] fileData = File.ReadAllBytes(@"path/to/file");
// Open existing PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
// Add attachment to the PDF
pdf.Attachments.AddAttachment("Example", fileData);
pdf.SaveAs("addAttachment.pdf");
Imports IronPdf
Imports System.IO
' Import attachment file
Private fileData() As Byte = File.ReadAllBytes("path/to/file")
' Open existing PDF
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Add attachment to the PDF
pdf.Attachments.AddAttachment("Example", fileData)
pdf.SaveAs("addAttachment.pdf")
AddAttachment 函式會輸出一個 PdfAttachment 物件,您可以保留該物件以供日後參考,或於日後視需要移除。 此方法類似於您向 PDF 添加圖片或管理其他 PDF 資產的方式。
儲存 PDF 檔案後,您可透過 PDF 檢視器的工具列開啟該附件。 下圖示範如何在 Google Chrome 的 PDF 檢視器中找到此功能:

接著,您可以點擊該連結並將附件儲存至您的儲存空間。
我可以將哪些檔案類型附加到 PDF 檔案中?
IronPDF 支援將幾乎任何檔案類型附加至 PDF 文件中。 常見的附件類型包括:
- Office 文件 (DOCX、XLSX、PPTX)
- 圖片 (JPG、PNG、GIF、SVG)
- 文字檔案 (TXT、CSV、XML)
- 檔案庫 (ZIP, RAR)
- 其他 PDF 檔案
附件系統支援二進位資料,因此任何可作為位元組讀取的檔案皆可附加。 在處理特定文件類型時,您亦可考慮 IronPDF 的內建轉換功能,例如將 DOCX 轉換為 PDF,或將圖片轉換為 PDF。
PDF 檢視器中的附件會顯示在何處?
不同的 PDF 檢視器會將附件顯示在不同的位置:
- Adobe Acrobat:在導覽窗格中顯示迴紋針圖示
- Chrome PDF Viewer:點擊時會在左側邊欄顯示附件
- Firefox PDF 檢視器:在專用面板中顯示附件
- Microsoft Edge:與 Chrome 類似,具備側邊欄附加視圖
大多數現代 PDF 檢視器皆支援附件功能,儘管各應用程式之間的介面可能略有差異。
新增後,PdfAttachment 物件會發生什麼變化?
當您呼叫 AddAttachment() 時,IronPDF 會建立一個 PdfAttachment 物件,其中包含:
- 名稱:附件的顯示名稱
- 資料:附件檔案的二進位內容
- 描述:關於附件的可選元資料
此物件將新增至 PDF 的內部附件集合中,並可透過 Attachments 屬性存取,直至被明確移除為止。
Attachments
如何從現有的 PDF 檔案中擷取附件?
PDF 中的附件可透過存取 Attachments 物件的 PdfDocument 屬性,以二進位資料的形式擷取。 透過二進位資料,您可以將 PDF 中的附件以各自的檔案格式匯出。
:path=/static-assets/pdf/content-code-examples/how-to/add-remove-attachments-retrieve-attachment.cs
using IronPdf;
using System.IO;
// Open existing PDF
PdfDocument pdf = PdfDocument.FromFile("addAttachment.pdf");
// Iterate through all attachments
foreach (var attachment in pdf.Attachments)
{
if (attachment.Name.Contains("Example"))
{
// Save byte to file
File.WriteAllBytes($"{attachment.Name}.doc", attachment.Data);
}
}
Imports IronPdf
Imports System.IO
' Open existing PDF
Private pdf As PdfDocument = PdfDocument.FromFile("addAttachment.pdf")
' Iterate through all attachments
For Each attachment In pdf.Attachments
If attachment.Name.Contains("Example") Then
' Save byte to file
File.WriteAllBytes($"{attachment.Name}.doc", attachment.Data)
End If
Next attachment
此流程在您需要從 PDF 檔案中擷取內容,或透過程式化方式處理附件文件時,特別有用。
如何存取 PDF 中的多個附件?
Attachments 屬性會傳回一個集合,您可以透過 LINQ 對其進行迭代或查詢:
// Get all attachments as a list
var allAttachments = pdf.Attachments.ToList();
// Filter attachments by size (e.g., files larger than 1MB)
var largeAttachments = pdf.Attachments
.Where(a => a.Data.Length > 1024 * 1024)
.ToList();
// Find specific attachment by exact name
var specificAttachment = pdf.Attachments
.FirstOrDefault(a => a.Name == "report.xlsx");
// Get all attachments as a list
var allAttachments = pdf.Attachments.ToList();
// Filter attachments by size (e.g., files larger than 1MB)
var largeAttachments = pdf.Attachments
.Where(a => a.Data.Length > 1024 * 1024)
.ToList();
// Find specific attachment by exact name
var specificAttachment = pdf.Attachments
.FirstOrDefault(a => a.Name == "report.xlsx");
' Get all attachments as a list
Dim allAttachments = pdf.Attachments.ToList()
' Filter attachments by size (e.g., files larger than 1MB)
Dim largeAttachments = pdf.Attachments _
.Where(Function(a) a.Data.Length > 1024 * 1024) _
.ToList()
' Find specific attachment by exact name
Dim specificAttachment = pdf.Attachments _
.FirstOrDefault(Function(a) a.Name = "report.xlsx")
已擷取的附件有哪些可用屬性?
每個 PdfAttachment 物件提供:
Name:附件的顯示名稱Data:以位元組陣列形式呈現的二進位內容Description:可選的描述元資料(若已設定)
您可以利用這些屬性,根據需求來識別、篩選及處理附件。
如何根據名稱或類型篩選附件?
由於附件是以其顯示名稱儲存的,您可以透過字串運算來篩選它們:
// Filter by file extension (assuming names include extensions)
var imageAttachments = pdf.Attachments
.Where(a => a.Name.EndsWith(".jpg") ||
a.Name.EndsWith(".png") ||
a.Name.EndsWith(".gif"))
.ToList();
// Filter by name pattern
var reportsOnly = pdf.Attachments
.Where(a => a.Name.StartsWith("Report_"))
.ToList();
// Filter by file extension (assuming names include extensions)
var imageAttachments = pdf.Attachments
.Where(a => a.Name.EndsWith(".jpg") ||
a.Name.EndsWith(".png") ||
a.Name.EndsWith(".gif"))
.ToList();
// Filter by name pattern
var reportsOnly = pdf.Attachments
.Where(a => a.Name.StartsWith("Report_"))
.ToList();
' Filter by file extension (assuming names include extensions)
Dim imageAttachments = pdf.Attachments _
.Where(Function(a) a.Name.EndsWith(".jpg") OrElse _
a.Name.EndsWith(".png") OrElse _
a.Name.EndsWith(".gif")) _
.ToList()
' Filter by name pattern
Dim reportsOnly = pdf.Attachments _
.Where(Function(a) a.Name.StartsWith("Report_")) _
.ToList()
如何從 PDF 中移除附件?
若要移除附件,請使用 RemoveAttachment 函式。 此方法需要引用附件,該附件可從 Attachments 屬性中取得。 以下是使用上述儲存檔進行翻譯的方法:
:path=/static-assets/pdf/content-code-examples/how-to/add-remove-attachments-remove-attachment.cs
using IronPdf;
using System.Linq;
// Open existing PDF
PdfDocument pdf = PdfDocument.FromFile("addAttachment.pdf");
// Add attachment to the PDF
PdfAttachmentCollection retrieveAttachments = pdf.Attachments;
// Remove attachment from PDF
pdf.Attachments.RemoveAttachment(retrieveAttachments.First());
pdf.SaveAs("removeAttachment.pdf");
Imports IronPdf
Imports System.Linq
' Open existing PDF
Private pdf As PdfDocument = PdfDocument.FromFile("addAttachment.pdf")
' Add attachment to the PDF
Private retrieveAttachments As PdfAttachmentCollection = pdf.Attachments
' Remove attachment from PDF
pdf.Attachments.RemoveAttachment(retrieveAttachments.First())
pdf.SaveAs("removeAttachment.pdf")
移除附件並在 PDF 檢視器中開啟生成的檔案後,您會發現附件已不再顯示:

刪除附件後會發生什麼情況?
當您移除附件時:
- PDF 檔案中的附件資料已完全移除
- 檔案大小將減少約等同於已移除附件的大小
- PDF 結構中所有對該附件的引用均已清理
- 儲存 PDF 後,變更即為永久性
我可以一次移除多個附件嗎?
是的,您可以透過單一操作移除多個附件。 以下為範例:
// Remove all attachments that match a pattern
var attachmentsToRemove = pdf.Attachments
.Where(a => a.Name.StartsWith("temp_"))
.ToList();
foreach (var attachment in attachmentsToRemove)
{
pdf.Attachments.RemoveAttachment(attachment);
}
// Or remove all attachments at once
while (pdf.Attachments.Count > 0)
{
pdf.Attachments.RemoveAttachment(pdf.Attachments.First());
}
// Remove all attachments that match a pattern
var attachmentsToRemove = pdf.Attachments
.Where(a => a.Name.StartsWith("temp_"))
.ToList();
foreach (var attachment in attachmentsToRemove)
{
pdf.Attachments.RemoveAttachment(attachment);
}
// Or remove all attachments at once
while (pdf.Attachments.Count > 0)
{
pdf.Attachments.RemoveAttachment(pdf.Attachments.First());
}
Imports System.Linq
' Remove all attachments that match a pattern
Dim attachmentsToRemove = pdf.Attachments _
.Where(Function(a) a.Name.StartsWith("temp_")) _
.ToList()
For Each attachment In attachmentsToRemove
pdf.Attachments.RemoveAttachment(attachment)
Next
' Or remove all attachments at once
While pdf.Attachments.Count > 0
pdf.Attachments.RemoveAttachment(pdf.Attachments.First())
End While
如何確認附件已成功移除?
您可以透過以下幾種方式驗證附件是否已移除:
// Check the attachment count
int attachmentCountBefore = pdf.Attachments.Count;
pdf.Attachments.RemoveAttachment(targetAttachment);
int attachmentCountAfter = pdf.Attachments.Count;
// Verify the count decreased
if (attachmentCountAfter < attachmentCountBefore)
{
Console.WriteLine("Attachment successfully removed");
}
// Check if specific attachment exists
bool attachmentExists = pdf.Attachments
.Any(a => a.Name == "specificFile.txt");
// Check the attachment count
int attachmentCountBefore = pdf.Attachments.Count;
pdf.Attachments.RemoveAttachment(targetAttachment);
int attachmentCountAfter = pdf.Attachments.Count;
// Verify the count decreased
if (attachmentCountAfter < attachmentCountBefore)
{
Console.WriteLine("Attachment successfully removed");
}
// Check if specific attachment exists
bool attachmentExists = pdf.Attachments
.Any(a => a.Name == "specificFile.txt");
' Check the attachment count
Dim attachmentCountBefore As Integer = pdf.Attachments.Count
pdf.Attachments.RemoveAttachment(targetAttachment)
Dim attachmentCountAfter As Integer = pdf.Attachments.Count
' Verify the count decreased
If attachmentCountAfter < attachmentCountBefore Then
Console.WriteLine("Attachment successfully removed")
End If
' Check if specific attachment exists
Dim attachmentExists As Boolean = pdf.Attachments _
.Any(Function(a) a.Name = "specificFile.txt")
PDF 附件的最佳實踐
在 IronPDF 中處理 PDF 附件時,請遵循以下最佳實務:
- 檔案大小管理:請留意附件大小,因為它們會直接增加 PDF 檔案的大小
- 命名規範:為附件使用清晰且具描述性的名稱,以協助使用者辨識
- 安全性考量:處理敏感附件時,請考慮設定 PDF 密碼與權限
- 效能:對於大型附件或大量檔案,建議使用非同步操作以維持應用程式的回應能力
準備好探索更多可能性了嗎? 請參閱我們的教學頁面:整理 PDF 檔案
常見問題
如何在 C# 中透過程式碼將檔案附加至 PDF?
IronPDF 提供了一個簡單的 AddAttachment() 方法,用於將檔案嵌入 PDF 中。首先,使用 File.ReadAllBytes() 將您的檔案載入為位元組陣列,然後在您的 PdfDocument 物件上使用 AddAttachment 方法。該方法接受檔案名稱和位元組陣列作為參數。
PDF 檔案可以附加哪些類型的檔案?
IronPDF 允許您將各種檔案類型附加至 PDF 文件中,包括圖片、文件、試算表及其他格式。這些附件會直接嵌入 PDF 檔案中,並可透過任何標準 PDF 檢視器的附件面板進行存取。
如何載入現有的 PDF 檔案以新增附件?
您可以透過 IronPDF 的 PdfDocument.FromFile() 方法載入現有的 PDF 檔案。載入後,您可以使用 Attachments 屬性來管理附件,包括透過 AddAttachment() 新增附件,或移除現有的附件。
PDF 內容與 PDF 附件有何區別?
PDF 內容包含您檢視 PDF 時所見的可見文字、圖片及格式設定。附件則是嵌入 PDF 中的獨立檔案,不會顯示於主文件檢視畫面中。透過 IronPDF,可透過 PDF 檢視器的附件面板存取附件,這些附件用作補充資料。
如何從 PDF 中移除附件?
IronPDF 提供 RemoveAttachment() 方法,用於透過程式碼從 PDF 中移除嵌入的檔案。AddAttachment 函式會傳回一個 PdfAttachment 物件,您日後可透過此物件執行移除操作。
使用者可以在 PDF 檢視器中的哪裡找到附件?
使用者透過 IronPDF 加入附件後,可透過 PDF 檢視器的工具列存取這些附件。大多數 PDF 檢視器(包括 Google Chrome 的內建檢視器)都會顯示附件圖示或面板,使用者可透過該處開啟或儲存嵌入的檔案。

