チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル».NET»Spire.PDF for .NET»添付ファイル»C#/VB.NET:PDF に添付ファイルを追加または削除する方法
2023-03-07

C#/VB.NET:PDF に添付ファイルを追加または削除する方法

PDF ファイルには、テキストや図形の他に、添付ファイルとしてファイルを含めることができます。これにより、一連のドキュメントの送信をより簡単に、より確実に行うことができます。Spire.PDF for .NET では、2つの方法でファイルを添付することができます。

  • ドキュメントレベルの添付ファイル:ドキュメントレベルで PDF に添付されたファイルは、ページには表示されず、PDF リーダーの「添付ファイル」パネルでのみ表示することができます。
  • 注釈の添付ファイル:注釈の添付ファイルは、ページの特定の位置に追加されます。ページ上にペーパークリップのアイコンで表示され、閲覧者はそのアイコンをダブルクリックしてファイルを開くことができます。

この記事では、C# と VB.NET で Spire.PDF for .NET を使用して、PDF ドキュメントにこれらの2種類の添付ファイルを追加または削除する方法について説明します。

Spire.PDF for.NET をインストールします

まず、Spire.PDF for.NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.PDF

PDF に添付ファイルを追加する

PdfDocument.Attachments.Add() メソッドを使用すると、「添付ファイル」パネルに添付ファイルを簡単に追加することができます。以下は、その詳細な手順です。

  • PdfDocument のオブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • 外部ファイルに基づいて PdfAttachment のオブジェクトを作成します。
  • PdfDocument.Attachments.Add() メソッドを使用して、PDF に添付ファイルを追加します。
  • PdfDocument.SaveToFile() メソッドを使用してドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Pdf;
using Spire.Pdf.Attachments;

namespace AttachFilesToPDF
{
    class Program
    {
        static void Main(string[] args)
        {
            //PdfDocumentのオブジェクトを作成する
            PdfDocument pdf = new PdfDocument();

            //PDFファイルを読み込む
            pdf.LoadFromFile("報告書.pdf");

            //外部ファイルを元にPdfAttachmentのオブジェクトを作成する
            PdfAttachment attachment = new PdfAttachment("研究者の手配表.xlsx");

            //PDFに添付ファイルを追加する
            pdf.Attachments.Add(attachment);

            //ファイルを保存する
            pdf.SaveToFile("添付ファイル.pdf");
        }
    }
}
Imports Spire.Pdf
Imports Spire.Pdf.Attachments

Namespace AttachFilesToPDF
    Class Program
        Shared Sub Main(ByVal args() As String)
            'PdfDocumentのオブジェクトを作成する
            Dim pdf As PdfDocument = New PdfDocument()

            'PDFファイルを読み込む
            pdf.LoadFromFile("報告書.pdf")

            '外部ファイルを元にPdfAttachmentのオブジェクトを作成する
            Dim attachment As PdfAttachment = New PdfAttachment("研究者の手配表.xlsx")

            'PDFに添付ファイルを追加する
            pdf.Attachments.Add(attachment)

            'ファイルを保存する
            pdf.SaveToFile("添付ファイル.pdf")
        End Sub
    End Class
End Namespace

C#/VB.NET:PDF に添付ファイルを追加または削除する方法

PDF に注釈の添付ファイルを追加する

注釈の添付は、特定のページだけでなく、「添付ファイル」パネルでも見つけることができます。以下は、Spire.PDF for .NET を使用して PDF に注釈の添付ファイルを追加する手順です。

  • PdfDocument のオブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • PdfDocument.Pages[] プロパティを使用して、注釈を追加する特定のページを取得します。
  • 外部ファイルに基づいて PdfAttachmentAnnotation のオブジェクトを作成します。
  • PdfPageBase.AnnotationsWidget.Add() メソッドを使用して、ページに注釈添付ファイルを追加します。
  • PdfDocument.SaveToFile() メソッドを使用してドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.Graphics;
using System;
using System.Drawing;
using System.IO;

namespace AnnotationAttachment
{
    class Program
    {
        static void Main(string[] args)
        {
            //PdfDocumentオブジェクトを作成する
            PdfDocument pdf = new PdfDocument();

            //PDFファイルを読み込む
            pdf.LoadFromFile("報告書.pdf");

            //特定のページを取得する
            PdfPageBase page = pdf.Pages[1];

            //PDFにラベルを描画する
            String label = "研究者の手配表:";
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Mincho", 13f, FontStyle.Bold), true);
            float x = page.ActualSize.Width/2 - 50;
            float y = page.ActualSize.Height - 150;
            page.Canvas.DrawString(label, font, PdfBrushes.Red, x, y);

            //	外部ファイルに基づいてPdfAttachmentAnnotationのオブジェクトを作成する
            String filePath = "研究者の手配表.xlsx";
            byte[] data = File.ReadAllBytes(filePath);
            SizeF size = font.MeasureString(label);
            RectangleF bounds = new RectangleF((float)(x + size.Width + 5), (float)y, 10, 15);
            PdfAttachmentAnnotation annotation = new PdfAttachmentAnnotation(bounds, "研究者の手配表.xlsx", data);
            annotation.Color = Color.Purple;
            annotation.Flags = PdfAnnotationFlags.Default;
            annotation.Icon = PdfAttachmentIcon.Graph;
            annotation.Text = "ファイルを開くにはこちらをクリックしてください。";

            //PDFに添付ファイルのアノテーションを追加する
            page.AnnotationsWidget.Add(annotation);

            //ファイルを保存する
            pdf.SaveToFile("注釈の添付ファイル.pdf");
        }
    }
}
Imports Spire.Pdf
Imports Spire.Pdf.Annotations
Imports Spire.Pdf.Graphics
Imports System
Imports System.Drawing
Imports System.IO

Namespace AnnotationAttachment
    Class Program
        Shared Sub Main(ByVal args() As String)
            'PdfDocumentオブジェクトを作成する
            Dim pdf As PdfDocument = New PdfDocument()

            'PDFファイルを読み込む
            pdf.LoadFromFile("報告書.pdf")

            '特定のページを取得する
            Dim page As PdfPageBase = pdf.Pages(1)

            'PDFにラベルを描画する
            Dim label As String = "研究者の手配表:"
            Dim font As PdfTrueTypeFont = New PdfTrueTypeFont(New Font("Yu Mincho", 13.0F, FontStyle.Bold), True)
            Dim x As Single = page.ActualSize.Width / 2 - 50
            Dim y As Single = page.ActualSize.Height - 150
            page.Canvas.DrawString(label, font, PdfBrushes.Red, x, y)

            '	外部ファイルに基づいてPdfAttachmentAnnotationのオブジェクトを作成する
            Dim filePath As String = "研究者の手配表.xlsx"
            Dim data() As Byte = File.ReadAllBytes(filePath)
            Dim size As SizeF = font.MeasureString(label)
            Dim bounds As RectangleF = New RectangleF(CType((x + size.Width + 5), (Single)y, 10, 15, Single)) 
            Dim annotation As PdfAttachmentAnnotation = New PdfAttachmentAnnotation(bounds, "研究者の手配表.xlsx", data)
            annotation.Color = Color.Purple
            annotation.Flags = PdfAnnotationFlags.Default
            annotation.Icon = PdfAttachmentIcon.Graph
            annotation.Text = "ファイルを開くにはこちらをクリックしてください。"

            'PDFに添付ファイルのアノテーションを追加する
            page.AnnotationsWidget.Add(annotation)

            'ファイルを保存する
            pdf.SaveToFile("注釈の添付ファイル.pdf")
        End Sub
    End Class
End Namespace

C#/VB.NET:PDF に添付ファイルを追加または削除する方法

PDF から添付ファイルを削除する

PDF ドキュメントの添付ファイルは、PdfDocument.Attachments プロパティでアクセスでき、PdfAttachmentCollection オブジェクトの RemoveAt() メソッドまたは Clear() メソッドを使用することで削除することが可能です。詳細な手順は以下の通りです。

  • PdfDocument のオブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • PdfDocument.Attachments プロパティを使用して、ドキュメントから添付ファイルの集合を取得します。
  • PdfAttachmentCollection.RemoveAt() メソッドを使用して、特定の添付ファイルを削除します。すべての添付ファイルを一度に削除するには、PdfAttachmentCollection.Clear() メソッドを使用します。
  • PdfDocument.SaveToFile() メソッドを使用してドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Pdf;
using Spire.Pdf.Attachments;

namespace RemoveAttachments
{
    class Program
    {
        static void Main(string[] args)
        {
            //PdfDocumentのオブジェクトを作成する
            PdfDocument pdf = new PdfDocument();

            //PDFファイルを読み込む
            pdf.LoadFromFile("添付ファイル.pdf");

            //添付ファイルのコレクションを取得する
            PdfAttachmentCollection attachments = pdf.Attachments;

            //特定の添付ファイルを削除する
            attachments.RemoveAt(0);

            //すべての添付ファイルを削除する
            //attachments.Clear();

            //ファイルを保存する
            pdf.SaveToFile("添付ファイルの削除.pdf");
        }
    }
}
Imports Spire.Pdf
Imports Spire.Pdf.Attachments

Namespace RemoveAttachments
    Class Program
        Shared Sub Main(ByVal args() As String)
            'PdfDocumentのオブジェクトを作成する
            Dim pdf As PdfDocument = New PdfDocument()

            'PDFファイルを読み込む
            pdf.LoadFromFile("添付ファイル.pdf")

            '添付ファイルのコレクションを取得する
            Dim attachments As PdfAttachmentCollection = pdf.Attachments

            '特定の添付ファイルを削除する
            attachments.RemoveAt(0)

            'すべての添付ファイルを削除する
            'attachments.Clear();

            'ファイルを保存する
            pdf.SaveToFile("添付ファイルの削除.pdf")
        End Sub
    End Class
End Namespace

PDF から注釈の添付ファイルを削除する

注釈はページごとの要素です。ドキュメントからすべての注釈を取得するためには、ページをたどり、各ページから注釈を取得する必要があります。次に、ある注釈が注釈添付であるかどうかを判断します。最後に、Remove() メソッドを使用して、注釈の集合から注釈の添付ファイルを削除します。以下はその詳細な手順です。

  • PdfDocument のオブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを用いて PDF ドキュメントを読み込みます。
  • ドキュメント内のページをループし、PdfDocument.Pages[].AnnotationsWidget プロパティを使用して特定のページから注釈集を取得します。
  • 注釈が PdfAttachmentAnnotationWidget のインスタンスであるかどうかを判断します。もしそうであれば、PdfAnnotationCollection.Remove() メソッドを使用して注釈の添付を削除します。
  • PdfDocument.SaveToFile() メソッドを使用して、ドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Pdf;
using Spire.Pdf.Annotations;

namespace RemoveAnnotationAttachments
{
    class Program
    {
        static void Main(string[] args)
        {
            //PdfDocumentのオブジェクトを作成する
            PdfDocument pdf = new PdfDocument();

            //PDFファイルを読み込む
            pdf.LoadFromFile("注釈の添付ファイル.pdf");

            //ページをループする
            for (int i = 0; i < pdf.Pages.Count; i++)
            {
                //注釈集を取得する
                PdfAnnotationCollection annotationCollection = pdf.Pages[i].AnnotationsWidget;

                //注釈をループする
                for (int j = 0; j < annotationCollection.Count; j++)
                {
                    //注釈がPdfAttachmentAnnotationWidgetのインスタンスであるかどうかを判定する
                    if (annotationCollection[j] is PdfAttachmentAnnotationWidget)
                    {
                        //注釈の添付ファイルを削除する
                        annotationCollection.Remove((PdfAnnotation)annotationCollection[j]);
                    }
                }
            }

            //ファイルを保存する
            pdf.SaveToFile("注釈の添付ファイルの削除.pdf");
        }
    }
}
Imports Spire.Pdf
Imports Spire.Pdf.Annotations

Namespace RemoveAnnotationAttachments
    Class Program
        Shared Sub Main(ByVal args() As String)
            'PdfDocumentのオブジェクトを作成する
            Dim pdf As PdfDocument = New PdfDocument()

            'PDFファイルを読み込む
            pdf.LoadFromFile("注釈の添付ファイル.pdf")

            'ページをループする
            Dim i As Integer
            For i = 0 To pdf.Pages.Count - 1 Step i + 1
                '注釈集を取得する
                Dim annotationCollection As PdfAnnotationCollection = pdf.Pages(i).AnnotationsWidget

                '注釈をループする
                Dim j As Integer
                For j = 0 To annotationCollection.Count - 1 Step j + 1
                    '注釈がPdfAttachmentAnnotationWidgetのインスタンスであるかどうかを判定する
                    If TypeOf annotationCollection(j) Is PdfAttachmentAnnotationWidget Then
                        '注釈の添付ファイルを削除する
                        annotationCollection.Remove(CType(annotationCollection(j), PdfAnnotation))
                    End If
                Next
            Next

            'ファイルを保存する
            pdf.SaveToFile("注釈の添付ファイルの削除.pdf")
        End Sub
    End Class
End Namespace

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 579 times