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
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
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 日間有効な一時ライセンスを取得してください。