C#を使用してPDFファイルのメタデータを編集する

メタデータは、一連のプロパティで構成される特定のデジタルドキュメントの名刺です。これらのプロパティには、タイトル、作成者、件名、キーワードなど、ドキュメントに関する基本情報が含まれています。ExtensibleMetadata Platform(XMP)は、ドキュメントのメタデータをキーと値のペアで保存できるXMLベースの形式です。プログラムでPDFドキュメントのドキュメント情報とXMPメタデータを追加/編集できます。この記事では、C#を使用してPDFファイルのメタデータを編集する方法を学習します。

この記事では、次のトピックについて説明します。

PDFファイルのメタデータを編集するためのC#API

PDFドキュメントのメタデータ情報を編集するには、Aspose.PDF for .NETAPIを使用します。これにより、Adobe Acrobatを使用せずに、サポートされているドキュメントを生成、変更、変換、レンダリング、保護、および印刷することができます。 APIのDLLをダウンロードするか、NuGetを使用してインストールしてください。

PM> Install-Package Aspose.Pdf

C#でPDFファイルのメタデータを編集する

PDFドキュメントのメタ情報を表すDocumentInfoクラスを使用して、PDFドキュメント情報を編集できます。以下の手順に従って、さまざまな事前定義されたプロパティを設定できます。

  1. まず、Documentクラスを使用してPDFドキュメントをロードします。
  2. 次に、Documentクラスオブジェクトを引数としてDocumentInfoクラスのインスタンスを作成します。
  3. 次に、作成者、作成日、キーワード、件名、タイトルなどのさまざまなプロパティを設定します。
  4. 最後に、Document.Save()メソッドを使用して、出力ファイルのパスを引数としてPDFファイルを保存します。

次のコードサンプルは、C#を使用してPDFファイルのメタデータを編集する方法を示しています。

// このコード例は、PDFドキュメントの基本情報を設定する方法を示しています。
// ドキュメントを開く
Document pdfDocument = new Document("C:\\Files\\PDF\\sample.pdf");

// InitializaDocumentInfoオブジェクト
DocumentInfo docInfo = new DocumentInfo(pdfDocument);

// ドキュメント情報のプロパティを指定する
docInfo.Author = "Aspose";
docInfo.CreationDate = DateTime.Now;
docInfo.Keywords = "Aspose.Pdf, DOM, API";
docInfo.ModDate = DateTime.Now;
docInfo.Subject = "PDF Information";
docInfo.Title = "Setting PDF Document Information";

// ドキュメントを保存
pdfDocument.Save("C:\\Files\\PDF\\sample_metadata.pdf");
PDFファイルのメタデータをC#で編集します。

PDFファイルのメタデータをC#で編集します。

C#を使用してPDFファイルのメタデータを取得する

以下の手順に従って、PDFドキュメントの基本情報を読み取ることができます。

  1. まず、Documentクラスを使用してPDFドキュメントをロードします。
  2. 次に、Documentクラスオブジェクトを引数としてDocumentInfoクラスのインスタンスを作成します。
  3. 最後に、メタデータプロパティの値を読み取って、ドキュメント情報を表示します。

次のコードサンプルは、C#を使用してPDFファイルのメタデータを取得する方法を示しています。

// このコード例は、PDFドキュメントの基本情報を取得する方法を示しています。
// ドキュメントを開く
Document pdfDocument = new Document("C:\\Files\\PDF\\sample_metadata.pdf");

// ドキュメント情報を取得する
DocumentInfo docInfo = pdfDocument.Info;

// ドキュメント情報を表示する
Console.WriteLine("Author: {0}", docInfo.Author);
Console.WriteLine("Creation Date: {0}", docInfo.CreationDate);
Console.WriteLine("Keywords: {0}", docInfo.Keywords);
Console.WriteLine("Modify Date: {0}", docInfo.ModDate);
Console.WriteLine("Subject: {0}", docInfo.Subject);
Console.WriteLine("Title: {0}", docInfo.Title);
Author: Aspose
Creation Date: 2/9/2022 9:47:00 AM
Keywords: Aspose.Pdf, DOM, API
Modify Date: 2/9/2022 9:47:00 AM
Subject: PDF Information
Title: Setting PDF Document Information

C#を使用してPDFファイルのXMPメタデータを取得する

以下の手順に従って、PDFドキュメントのXMPメタデータを読み取ることができます。

  1. まず、Documentクラスを使用してPDFドキュメントをロードします。
  2. 最後に、Metadataプロパティを読み取り、情報を抽出します。

次のコードサンプルは、C#を使用してPDFファイルのXMPメタデータを取得する方法を示しています。

// このコード例は、PDFドキュメントのXMPメタデータを取得する方法を示しています。
// ドキュメントを開く
Document pdfDocument = new Document("C:\\Files\\PDF\\sample_xmp.pdf");

// XMP情報を表示する
Console.WriteLine("xmp:CreateDate : " + pdfDocument.Metadata["xmp:CreateDate"]);
Console.WriteLine("xmp:Nickname : " + pdfDocument.Metadata["xmp:Nickname"]);
Console.WriteLine("xmp:CustomProperty : " + pdfDocument.Metadata["xmp:CustomProperty"]);
xmp:CreateDate: 2022-02-09T08:57:00.7+05:00
xmp:Nickname: Nickname
xmp:CustomProperty: Custom Value

C#を使用してPDFファイルにXMPメタデータを設定する

以下の手順に従って、DocumentクラスのMetadataプロパティを使用して、PDFファイルにXMPメタデータを設定できます。

  1. まず、Documentクラスを使用してPDFドキュメントをロードします。
  2. 次に、Metadataプロパティを使用してメタデータ値を設定します。
  3. 最後に、Document.Save()メソッドを使用して、出力ファイルのパスを引数としてPDFファイルを保存します。

次のコードサンプルは、C#を使用してPDFファイルのXMPメタデータを設定する方法を示しています。

// このコード例は、PDFドキュメントのXMPメタデータを設定する方法を示しています。
// ドキュメントを開く
Document pdfDocument = new Document("C:\\Files\\PDF\\sample.pdf");

// プロパティを設定する
pdfDocument.Metadata["xmp:CreateDate"] = DateTime.Now;
pdfDocument.Metadata["xmp:Nickname"] = "Nickname";
pdfDocument.Metadata["xmp:CustomProperty"] = "Custom Value";

// ドキュメントを保存
pdfDocument.Save("C:\\Files\\PDF\\sample_xmp.pdf");

PDFファイルのXMPメタデータ名前空間をカスタマイズする

Adobe XMP仕様では、通常使用する次の4つのコア名前空間を定義しています。

  1. Dublin Core、名前空間URIは「http://purl.org/dc/elements/1.1/」であり、優先される名前空間プレフィックスは「dc」です。
  2. 名前空間URIがhttp://ns.adobe.com/xap/1.0/であり、その優先名前空間プレフィックスが「xmp」であるXMP
  3. XMP Rights Management名前空間URIをhttp://ns.adobe.com/xap/1.0/rights/とし、その優先名前空間プレフィックスは「xmpRights」です。
  4. XMP Media Management名前空間URIをhttp://ns.adobe.com/xap/1.0/mm/とし、その優先名前空間プレフィックスは「xmpMM」です。

PDFファイルで定義されたXMP仕様の代わりに、カスタマイズされた名前空間URIを設定することもできます。この目的のために、APIはMetadataクラスのRegisterNamespaceUriメソッドを提供します。以下の手順に従って、プレフィックス付きの新しいメタデータ名前空間を作成できます。

  1. まず、Documentクラスを使用してPDFドキュメントをロードします。
  2. 次に、プレフィックスと名前空間URIを引数としてRegisterNamespaceUriメソッドを呼び出します。
  3. 次に、Metadataプロパティを使用してメタデータ値を設定します。
  4. 最後に、Document.Save()メソッドを使用して、出力ファイルのパスを引数としてPDFファイルを保存します。

次のコードサンプルは、C#を使用してPDFファイルにカスタムメタデータ名前空間を設定する方法を示しています。

// このコード例は、PDFドキュメントでカスタムnamepsaceURIを設定する方法を示しています。
// ドキュメントを開く
Document pdfDocument = new Document("C:\\Files\\PDF\\sample.pdf");

// プロパティを設定する
pdfDocument.Metadata.RegisterNamespaceUri("myown", "http:// myown.xyz.com/xap/1.0/");
pdfDocument.Metadata["myown:ModifyDate"] = DateTime.Now;
pdfDocument.Metadata["myown:CreateDate"] = DateTime.Now;
pdfDocument.Metadata["myown:DeveloperName"] = "Developer Name";
pdfDocument.Metadata["myown:MyProperty"] = "My Custom Value";


// ドキュメントを保存
pdfDocument.Save("C:\\Files\\PDF\\sample_myown.pdf");

前述の手順に従うことで、カスタマイズされたXMPメタデータプロパティを読み取ることができます。

myown:ModifyDate: 2022-02-09T10:38:26.8+05:00
myown:CreateDate: 2022-02-09T10:38:26.8+05:00
myown:DeveloperName: Developer Name
myown:MyProperty: My Custom Value

無料のAPIライセンスを取得する

無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。

結論

この記事では、次の方法を学びました。

  • C#を使用してPDFドキュメントの基本情報を追加/編集します。
  • C#を使用してPDFファイルでXMPメタデータを設定/取得します。
  • プレフィックスを使用してカスタムメタデータ名前空間URIを設定します。

さらに、ドキュメントを使用して、Aspose.PDF for.NETAPIの詳細を学ぶことができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目