C#でPDFの添付ファイルを追加および削除する方法

IronPDFを使ってC#でPDFの添付ファイルを追加・削除する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDFは、AddAttachment()RemoveAttachment()のようなシンプルなC#メソッドを使用して、PDFドキュメントに添付ファイルをプログラムで追加、取得、削除することができます。

PDF ドキュメントの添付ファイルは、PDF ファイル自体に埋め込まれたファイルや追加データを指します。 これは、PDF を表示するときに表示されるテキスト、画像、および書式設定を含む通常の PDF コンテンツとは異なります。 これらの添付ファイルは、画像、ドキュメント、スプレッドシート、その他の形式を含むさまざまなファイル形式を取ることができます。 通常、添付ファイルは、PDF を開いたときにユーザーがアクセスできる追加の参考資料や補足データを提供するために使用されます。 この機能は、包括的なPDFレポートを作成する場合や、複数のPDFをサポートドキュメントとマージする必要がある場合に特に役立ちます。

クイックスタート: PDF への添付ファイルの追加

IronPDFを使用してPDFドキュメントに添付ファイルを追加します。 この簡単な例では、ファイルを添付ファイルとして PDF に埋め込む方法を示します。 既存のPDFを読み込み、AddAttachmentメソッドを使用し、更新されたドキュメントを保存します。 このプロセスにより、補足資料がPDFに含まれ、どのPDFビューアからも直接アクセスできるようになります。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronPDF をインストールします

    PM > Install-Package IronPdf

  2. このコード スニペットをコピーして実行します。

    var pdf = IronPdf.PdfDocument.FromFile("example.pdf");
    pdf.Attachments.AddAttachment("file.txt", System.IO.File.ReadAllBytes("file.txt"));
    pdf.SaveAs("updated.pdf");
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronPDF を使い始めましょう
    arrow pointer


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");
$vbLabelText   $csharpLabel

AddAttachment関数はPdfAttachmentオブジェクトを出力します。 このアプローチは、PDFに画像を追加したりその他のPDF資産を管理したりする方法に似ています。

PDF を保存した後、PDF ビューアのツールバーから添付ファイルを開くことができます。 下の画像は、Google ChromeのPDFビューアでこの機能がどこにあるかを示しています:

ナビゲーション コントロールとサイドバー パネルを備えた Hello World ドキュメントを表示する 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);
    }
}
$vbLabelText   $csharpLabel

このプロセスは、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");
$vbLabelText   $csharpLabel

取得した添付ファイルにはどのようなプロパティがありますか?

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();
$vbLabelText   $csharpLabel

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");
$vbLabelText   $csharpLabel

添付ファイルを削除して PDF ビューアで結果のファイルを開いた後、添付ファイルが表示されなくなります:

添付ファイル パネルを開いた PDF ビューアで、Hello World ドキュメントと [添付ファイルを表示] ボタンを表示しています

添付ファイルを削除するとどうなりますか?

添付ファイルを削除する場合 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());
}
$vbLabelText   $csharpLabel

添付ファイルが正常に削除されたことを確認するにはどうすればよいですか?

添付ファイルの削除は、いくつかの方法で確認できます:

// 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");
$vbLabelText   $csharpLabel

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ビューアでは、添付ファイルのアイコンまたはパネルが表示され、そこに埋め込まれたファイルを開いたり保存したりすることができます。

Jordi Bardia
ソフトウェアエンジニア
Jordiは、最も得意な言語がPython、C#、C++であり、Iron Softwareでそのスキルを発揮していない時は、ゲームプログラミングをしています。製品テスト、製品開発、研究の責任を分担し、Jordiは継続的な製品改善において多大な価値を追加しています。この多様な経験は彼を挑戦させ続け、興味を持たせており、Iron Softwareで働くことの好きな側面の一つだと言います。Jordiはフロリダ州マイアミで育ち、フロリダ大学でコンピュータサイエンスと統計学を学びました。
準備はできましたか?
Nuget ダウンロード 17,012,929 | バージョン: 2025.12 リリース