IronPDFを使ってC#でPDFの添付ファイルを追加・削除する方法
IronPDFは、プログラムによってPDF文書にファイル添付を追加、取得、削除することを可能にし、RemoveAttachment()のようなシンプルなC#メソッドを使用して、補足ファイルをPDFに直接埋め込むことができます。
PDF ドキュメントの添付ファイルは、PDF ファイル自体に埋め込まれたファイルや追加データを指します。 これは、PDF を表示するときに表示されるテキスト、画像、および書式設定を含む通常の PDF コンテンツとは異なります。 これらの添付ファイルは、画像、ドキュメント、スプレッドシート、その他の形式を含むさまざまなファイル形式を取ることができます。 通常、添付ファイルは、PDF を開いたときにユーザーがアクセスできる追加の参考資料や補足データを提供するために使用されます。 この機能は、包括的なPDFレポートを作成する場合や、複数のPDFをサポートドキュメントとマージする必要がある場合に特に役立ちます。
クイックスタート: PDF への添付ファイルの追加IronPDFを使用してPDFドキュメントに添付ファイルを追加します。 この簡単な例では、ファイルを添付ファイルとして PDF に埋め込む方法を示します。 既存のPDFを読み込み、AddAttachmentメソッドを使用して、更新した文書を保存します。 このプロセスにより、補足資料がPDFに含まれ、どのPDFビューアからも直接アクセスできるようになります。
-
1Install IronPDF with NuGet Package Manager
-
2このコード スニペットをコピーして実行します。
var pdf = IronPdf.PdfDocument.FromFile("example.pdf"); pdf.Attachments.AddAttachment("file.txt", System.IO.File.ReadAllBytes("file.txt")); pdf.SaveAs("updated.pdf");Dim pdf = IronPdf.PdfDocument.FromFile("example.pdf") pdf.Attachments.AddAttachment("file.txt", System.IO.File.ReadAllBytes("file.txt")) pdf.SaveAs("updated.pdf")Dim pdf = IronPdf.PdfDocument.FromFile("example.pdf") pdf.Attachments.AddAttachment("file.txt", System.IO.File.ReadAllBytes("file.txt")) pdf.SaveAs("updated.pdf") -
3実際の環境でテストするためにデプロイする
今日プロジェクトで IronPDF を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- NuGetからIronPDF C#ライブラリをダウンロードする。
- 既存のPDFを読み込むか、新しいPDFをレンダリングします
File.ReadAllBytesを使用してbyte[]としてファイルをインポートします- PDFに添付するには、
AddAttachmentを使用してください。 RemoveAttachmentで添付ファイルを削除します。
PDFにファイルを添付するにはどうすればよいですか?
ファイルを添付として追加するには、まずそれをbyte[]として読み込みます。 これを行う最も簡単な方法は、File.ReadAllBytesメソッドを使用することです。 ファイルがAddAttachmentメソッドを使用してオブジェクトを添付文書としてPDFに追加します。
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");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")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")PdfAttachmentオブジェクトを出力します。 このアプローチは、PDFに画像を追加したり、その他のPDF資産を管理したりする方法に似ています。
PDF を保存した後、PDF ビューアのツールバーから添付ファイルを開くことができます。 下の画像は、Google ChromeのPDFビューアでこの機能がどこにあるかを示しています:

そこから、クリックして添付ファイルをストレージに保存することができます。
PDFに添付できるファイル形式は何ですか?
IronPDFは事実上どんなファイルタイプでもPDFドキュメントに添付することができます。 一般的な添付ファイルの種類は以下のとおりです:
- オフィス文書(DOCX、XLSX、PPTX)
- 画像 (JPG, PNG, GIF, SVG)
- テキストファイル(TXT、CSV、XML)
- アーカイブ(ZIP、RAR)
- その他のPDF
添付システムはバイナリデータで動作するため、バイトとして読み取れるファイルであれば添付可能です。 特定のドキュメントタイプを扱う場合、DOCXからPDFへの変換や画像からPDFへの変換のようなIronPDFのビルトイン変換機能を考慮することもできます。
PDFビューアのどこに添付ファイルが表示されますか
PDFビューアによって、添付ファイルはさまざまな場所に表示されます:
- Adobe Acrobat: ナビゲーションペインにペーパークリップのアイコンが表示されます。
- ChromePDFビューア:クリックすると左サイドバーに添付ファイルを表示します。
- Firefox PDF Viewer: 添付ファイルを専用パネルに表示します。
- Microsoft Edge: Chromeに似ており、サイドバーにアタッチメントが表示されます。
最近のPDFビューアのほとんどは添付ファイルをサポートしていますが、インターフェースはアプリケーションによって若干異なる場合があります。
追加後、PdfAttachment オブジェクトはどうなりますか?
PdfAttachmentオブジェクトを作成します。
- 名前:添付ファイルの表示名
- データ: 添付ファイルのバイナリコンテンツ
- 説明:添付ファイルに関するオプションのメタデータ
このオブジェクトはPDFの内部添付コレクションに追加され、Attachmentsプロパティを通じて明示的に削除されるまでアクセス可能です。
Attachments
既存の PDF から添付ファイルを取得するにはどうすればよいですか?
PDFの添付ファイルは、Attachmentsプロパティにアクセスすることでバイナリデータとして取得できます。 バイナリデータを使用して、添付ファイルをそれぞれのファイル形式で PDF からエクスポートできます。
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);
}
}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 attachmentImports 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")' 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()' 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プロパティから取得できます。 上記で保存したファイルを使用する方法は次のとおりです:
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");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")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 ビューアで結果のファイルを開いた後、添付ファイルが表示されなくなります:

添付ファイルを削除するとどうなりますか?
添付ファイルを削除する場合 1.添付データはPDFファイルから完全に削除されます。 2.ファイルサイズは、削除された添付ファイルのサイズ分小さくなります。 3.PDF構造内のその添付ファイルへの参照はすべてクリーンアップされます。 4.PDFを保存すると、変更は永続的に行われます。
これは、ページの削除やコンテンツの再編集のような他のPDF修正操作に似ています。
一度に複数の添付ファイルを削除できますか?
はい、1回の操作で複数の添付ファイルを削除できます。 以下は例です:
// 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 WhileImports 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")' 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はPDFにファイルを埋め込むためのシンプルなAddAttachment()メソッドを提供します。まず、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はプログラムでPDFから埋め込みファイルを削除するRemoveAttachment()メソッドを提供します。AddAttachment関数はPdfAttachmentオブジェクトを返します。
PDFビューアの添付ファイルはどこにありますか?
IronPDFを使用して添付ファイルを追加した後、ユーザーはPDFビューアのツールバーから添付ファイルにアクセスすることができます。Google Chromeのビルトインビューアを含むほとんどのPDFビューアでは、添付ファイルのアイコンまたはパネルが表示され、そこに埋め込まれたファイルを開いたり保存したりすることができます。
Is it possible to filter PDF attachments by type or name in IronPDF?
Yes, you can filter attachments using the Attachments collection based on file extensions or specific name patterns.
What are the best practices for managing PDF attachments in IronPDF?
Some best practices include managing file sizes, using descriptive naming conventions, securing sensitive content with passwords, and leveraging asynchronous operations for better performance.
How can I verify if an attachment was successfully removed?
You can verify attachment removal by checking the number of attachments before and after removal or confirming the absence of the specific attachment by name in the Attachments collection.
What happens to the PDF file size when attachments are removed using IronPDF?
Removing attachments with IronPDF reduces the file size roughly by the size of the attachment, as the attachment data is completely removed from the PDF file.
Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。