IronPDFを使ってC#でPDF 編集 — 添付ファイルの追加・削除方法
IronPDF を使用すると、AddAttachment() や RemoveAttachment() などのシンプルな C# メソッドを使用して、PDF ドキュメント内のファイル添付ファイルをプログラムで追加、取得、削除することができ、補足ファイルを PDF に直接埋め込むことができます。
PDF ドキュメントの添付ファイルは、PDF ファイル自体に埋め込まれたファイルや追加データを指します。 これは、PDF を表示するときに表示されるテキスト、画像、および書式設定を含む通常の PDF コンテンツとは異なります。 これらの添付ファイルは、画像、ドキュメント、スプレッドシート、その他の形式を含むさまざまなファイル形式を取ることができます。 通常、添付ファイルは、PDF を開いたときにユーザーがアクセスできる追加の参考資料や補足データを提供するために使用されます。 この機能は、包括的なPDFレポートを作成する場合や、複数のPDFをサポートドキュメントとマージする必要がある場合に特に役立ちます。
クイックスタート: PDF への添付ファイルの追加
IronPDFを使用してPDFドキュメントに添付ファイルを追加します。 この簡単な例では、ファイルを添付ファイルとして PDF に埋め込む方法を示します。 既存の PDF を読み込み、AddAttachment メソッドを使用して、更新されたドキュメントを保存します。 このプロセスにより、補足資料がPDFに含まれ、どのPDFビューアからも直接アクセスできるようになります。
-
IronPDF をNuGetパッケージマネージャでインストール
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を読み込むか、新しいPDFをレンダリングします
- File.ReadAllBytesを使用して、ファイルを**byte[]**としてインポートします。
- PDFに添付するには、`AddAttachment`を使用してください。
- `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ドキュメントに添付することができます。 一般的な添付ファイルの種類は以下のとおりです:
- オフィス文書(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 オブジェクトはどうなりますか?
AddAttachment() を呼び出すと、 IronPDF は次の内容を含むPdfAttachmentオブジェクトを作成します。
- 名前:添付ファイルの表示名
- データ: 添付ファイルのバイナリコンテンツ
- 説明:添付ファイルに関するオプションのメタデータ
このオブジェクトは PDF の内部添付ファイル コレクションに追加され、明示的に削除されるまで Attachments プロパティを通じてアクセス可能なままになります。
既存の PDF から添付ファイルを取得するにはどうすればよいですか?
PDFの添付ファイルは、PdfDocumentオブジェクトのAttachmentsプロパティにアクセスすることで、バイナリデータとして取り出すことができます。 バイナリデータを使用して、添付ファイルをそれぞれのファイル形式で 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 オブジェクトは以下を提供します:
- 名前:添付ファイルの表示名
- データ: バイト配列としてのバイナリコンテンツ
- 説明:オプションの説明メタデータ(設定されている場合)
これらのプロパティを使用して、要件に基づいて添付ファイルを識別、フィルタリング、処理することができます。
名前またはタイプで添付ファイルをフィルタするにはどうすればよいですか?
添付ファイルは表示名で保存されるため、文字列操作を使ってフィルタリングすることができます:
// 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 ビューアの添付ファイル パネルが開き、Hello World ドキュメントと [添付ファイルの表示] ボタンが表示されています。](/static-assets/pdf/how-to/add-remove-attachments/removeattachment-example.png)
添付ファイルを削除するとどうなりますか?
添付ファイルを削除する場合 1.添付データはPDFファイルから完全に削除されます。 2.ファイルサイズは、削除された添付ファイルのサイズ分小さくなります。 3.PDF構造内のその添付ファイルへの参照はすべてクリーンアップされます。 4.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 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の添付ファイルを扱う際には、以下のベストプラクティスを考慮してください:
1.ファイルサイズの管理:添付ファイルのサイズは、PDFファイルのサイズを直接増加させるので、注意してください。 2.命名規則:ユーザーが識別しやすいように、添付ファイルには明確で説明的な名前を使用してください。 3.セキュリティの考慮:機密性の高い添付ファイルを扱うときは、PDFパスワードとアクセス許可の適用を検討してください。 4.パフォーマンス:大きな添付ファイルや多数のファイルについては、async操作を使用してアプリケーションの応答性を維持することを検討してください。
次に何ができるのかを見てみましょうか? こちらのチュートリアルページをご覧ください: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ビューアでは、添付ファイルのアイコンまたはパネルが表示され、そこに埋め込まれたファイルを開いたり保存したりすることができます。

