使用 C# 编辑 PDF 文件的元数据

元数据是由一组属性组成的特定数字文档的名片。这些属性包含有关文档的基本信息,例如标题、作者、主题、关键字等。可扩展元数据平台 (XMP) 是一种基于 XML 的格式,允许将文档元数据保存在键/值对中。我们可以通过编程方式在 PDF 文档中添加/编辑文档信息和 XMP 元数据。在本文中,我们将学习如何使用 C# 编辑 PDF 文件的元数据

本文将涵盖以下主题:

用于编辑 PDF 文件元数据的 C# API

要编辑 PDF 文档中的元数据信息,我们将使用 Aspose.PDF for .NET API。它允许我们在不使用 Adobe Acrobat 的情况下生成、修改、转换、渲染、保护和打印 支持的文档。请下载 API 的 DLL 或使用 NuGet 安装它。

PM> Install-Package Aspose.Pdf

在 C# 中编辑 PDF 文件的元数据

我们可以使用表示 PDF 文档元信息的 DocumentInfo 类来编辑 PDF 文档信息。我们可以按照以下步骤设置各种预定义的**properties**:

  1. 首先,使用 Document 类加载 PDF 文档。
  2. 接下来,使用 Document 类对象作为参数创建 DocumentInfo 类的实例。
  3. 然后,设置各种属性,例如_Author_、CreationDateKeywordsSubjectTitle 等。
  4. 最后,使用 Document.Save() 方法保存 PDF 文件,并将输出文件路径作为参数。

以下代码示例展示了如何使用 C# 编辑 PDF 文件的元数据

// 此代码示例演示了如何设置 PDF 文档的基本信息。
// 打开文档
Document pdfDocument = new Document("C:\\Files\\PDF\\sample.pdf");

// 初始化 DocumentInfo 对象
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");
在 C# 中编辑 PDF 文件的元数据。

在 C# 中编辑 PDF 文件的元数据。

使用 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. 都柏林核心 命名空间 URI 为“http://purl.org/dc/elements/1.1/”,其首选命名空间前缀为“dc”。
  2. XMP 的命名空间 URI 为 http://ns.adobe.com/xap/1.0/,其首选命名空间前缀为“xmp”。
  3. XMP 权限管理,命名空间 URI 为 http://ns.adobe.com/xap/1.0/rights/,其首选命名空间前缀为“xmpRights”。
  4. XMP 媒体管理 命名空间 URI 为 http://ns.adobe.com/xap/1.0/mm/,其首选命名空间前缀为“xmpMM”。

我们还可以在 PDF 文件中设置自定义命名空间 URI,而不是定义 XMP 规范。为此,API 在 Metadata 类中提供了 RegisterNamespaceUri 方法。我们可以按照以下步骤创建一个带有前缀的新元数据命名空间:

  1. 首先,使用 Document 类加载 PDF 文档。
  2. 接下来,使用前缀和命名空间 URI 作为参数调用 RegisterNamespaceUri 方法。
  3. 然后,使用 Metadata 属性设置元数据值。
  4. 最后,使用 Document.Save() 方法保存 PDF 文件,并将输出文件路径作为参数。

以下代码示例展示了如何使用 C# 在 PDF 文件中设置自定义元数据命名空间。

// 此代码示例演示如何在 PDF 文档中设置自定义命名空间 URI。
// 打开文档
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 .NET API 的信息。如有任何歧义,请随时在 论坛 上与我们联系。

也可以看看