云开发人员的又一个消息! GroupDocs 推出了文档元数据操作云 API。这丰富了GroupDocs的文档元数据管理解决方案。该解决方案已经为 .NET 和 Java 开发人员提供服务,作为开发人员的 On-Premise API,以及任何类型的用户查看和编辑文档元数据的 免费在线文档元数据编辑器应用程序

元数据操作云API

GroupDocs.云元数据

GroupDocs.Metadata Cloud API 以及 SDK 允许开发人员操作(添加、删除、更新、提取和查看)50 多种文件格式的元数据。

GroupDocs.Metadata 允许以不同的方式访问和处理文件的元数据,例如:

  • 可能的标签名称
  • 物业名称
  • 适当的价值
  • 精确匹配短语
  • 匹配正则表达式
  • 整个元数据树
  • 标签

要更好地了解功能和产品,您可以随时访问 文档 部分中的开发人员指南。

支持的文档格式

您可以对任何文字处理文档、电子表格、演示文稿、音频和视频文件、图像、PDF、电子书、绘图等文档执行操作。下面列出了 GroupDocs API 当前支持的文件格式,希望能满足您的要求。您可以随时访问文档以了解所有支持的文档格式或任何类型的指南。

元数据 - SDK 和示例

除了用于云的元数据编辑REST API之外,GroupDocs还提供开源SDK,因此,可以根据需求进行自定义。开发人员可以使用cURL与GroupDocs.Metadata Cloud API进行交互,也可以使用相关的SDK来加快开发速度。这有助于开发人员不再担心发出请求和处理响应的低级细节。 GitHub 上提供了下面提到的 SDK 以及代码示例:

在这个博客中。我使用 Java 代码来展示如何使用文档的元数据属性。此外,我将仅展示提取、添加、删除和修改元数据的方法之一。您还可以从 文档 和相关 GitHub 存储库中详细查看 C# 示例和其他方式。

从 Java 或 .NET 文件中提取元数据

该 API 允许您使用不同的选项提取文档的元数据,其中包括:

  • 整个元数据属性树
  • 按指定的标签、名称或值

为了给您提供帮助,可以在 GitHub 上获取运行示例。 我上传了 groupdocs.app示例,其中显示了您可以使用 C# 和 Java 提取和创建自己的元数据应用程序。

在 Java 中提取整个元数据属性树

设置与云存储的连接后,您可以借助下面提到的几行代码提取整个元数据属性树。在这里,我使用 Java SDK for Cloud 提取 Excel 电子表格的属性树。您可以使用任何其他可用的 SDK 轻松实现此目的。

// Set File Path
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("documents"+ File.separator +"input.xlsx");
// Set Options to extract the metadata from any file.
ExtractOptions options = new ExtractOptions();
options.setFileInfo(fileInfo);
// Send a Request with options to extract metadata and received the response.
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);

用 Java 打印整个元数据树

// That's it. You have received the whole Metadata Tree. Now you can use it the way you like.
for (MetadataProperty entry : response.getMetadataTree().getInnerPackages().get(0).getPackageProperties()){
	System.out.println("\\n" + entry.getName() + ": " + entry.getValue());
	if (entry.getTags() == null)
		continue;
	// Print Tags
	for (Tag tagItem : entry.getTags()) {
		System.out.println("=== Tag for Property ===");
		System.out.println("Name :" + tagItem.getName());
		System.out.println("Category: " + tagItem.getCategory());
	}
}

输出

FileFormat: 2
=== Tag for Property ===
Name :FileFormat
Category: Content

MimeType: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
=== Tag for Property ===
Name :FileFormat
Category: Content
 
SpreadsheetFileFormat: 3
=== Tag for Property ===
Name :FileFormat
Category: Content

所有其他不同的元数据提取方法都可以在以下任何资源中查看:

使用 Java 或 .NET 添加元数据

GroupDocs 元数据 REST API 允许您通过以下功能将元数据添加到文档中:

  • 元数据属性可能包含不同类型的值,例如字符串、日期时间、整数、双精度、布尔值
  • 可以通过以下不同方式添加属性:
    • 按名称添加元数据属性:
      • 姓名的一部分
      • 准确的短语
      • 正则表达式匹配
    • 按标签添加元数据属性:
      • 精确标签
      • 可能的标签名称

在 Java 中通过精确标记添加元数据属性

下面,您可以看到通过精确标记添加元数据属性的源代码示例:

AddOptions options = new AddOptions();
ArrayList<AddProperty> properties = new ArrayList<AddProperty>();
AddProperty property = new AddProperty();
SearchCriteria searchCriteria = new SearchCriteria();
TagOptions tagOptions = new TagOptions();
// Set Tag name and category
Tag tag = new Tag();
tag.setName("Printed");
tag.setCategory("Time");
// Set Tag
tagOptions.setExactTag(tag);
searchCriteria.setTagOptions(tagOptions);
//Set Date for Value
Date date = new Date();
DateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy hh:mm:ss");
// Setting the Add Property
property.setSearchCriteria(searchCriteria);
property.setValue(dateFormat.format(date));
property.setType("datetime");
properties.add(property);
// Set Properties of AddOptions
options.setProperties(properties);
// Select the document to add metadata property
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("documents/input.docx");
options.setFileInfo(fileInfo);
// Sending the request and fetch response after adding the metadata property
AddRequest request = new AddRequest(options);
AddResult response = apiInstance.add(request);
// Printing the Changes Count and Path of changed file.
System.out.println("Count of changes: " + response.getAddedCount());
System.out.println("Resultant file path: " + response.getPath());

输出:按标签添加元数据后

Count of changes: 1
Resultant file path: metadata/add\_metadata/documents/input\_docx/input.docx

添加元数据的所有其他不同方法可以在以下任何资源中查看:

使用 Java 或 .NET 删除元数据

几乎使用类似的添加元数据属性的选项,您还可以从文档中删除元数据属性。

  • 元数据属性可能包含不同类型的值,例如字符串、日期时间、整数、双精度、布尔值.
  • 可以通过以下不同方式删除/移除元数据属性:
    • 按名称删除元数据属性:
      • 姓名的一部分
      • 准确的短语
      • 匹配正则表达式
    • 按标签删除元数据属性:
      • 精确标签
      • 可能的标签名称

在 Java 中使用正则表达式 (Regex) 删除元数据

下面,您可以看到用于删除与提供的正则表达式匹配的元数据属性的源代码示例:

// Name Options
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("^\[N\]ame\[A-Z\].\*");
// Match Options
MatchOptions matchOptions = new MatchOptions();
matchOptions.setIsRegex(true);
nameOptions.setMatchOptions(matchOptions);
// Remove Metadata Options and Search Criteria
RemoveOptions options = new RemoveOptions();
SearchCriteria searchCriteria = new SearchCriteria();
// Search Criteria
searchCriteria.setNameOptions(nameOptions);
options.setSearchCriteria(searchCriteria);
// Set fileInfo for the source document
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("documents/input.docx");
options.setFileInfo(fileInfo);
// Send request to remove and receive the response
RemoveRequest request = new RemoveRequest(options);
RemoveResult response = apiInstance.remove(request);
// In response, you can get the path of the updated document with the removed properies.
System.out.println("Count of changes: " + response.getRemovedCount());
System.out.println("Resultant file path: " + response.getPath());

输出:通过正则表达式删除元数据后

Count of changes: 1
Resultant file path: metadata/remove\_metadata/documents/input\_docx/input.docx 

可以在以下任意资源中查看删除元数据的所有其他不同方法:

使用 Java 或 .NET 更新元数据

除了添加、删除和提取元数据之外,REST API 还允许以不同的方式更新现有元数据属性。下面我将展示如何通过提供属性可能的标签名称来使用 Java 代码更新任何文档的元数据属性。我使用 Excel 电子表格来更新其创建者元数据标签。您可以使用 .NET API 在 C# 中实现相同的目的。

使用 Java 按可能的标签名称更新元数据

SetOptions options = new SetOptions();
ArrayList<SetProperty> properties = new ArrayList<SetProperty>();
SetProperty property = new SetProperty();
SearchCriteria searchCriteria = new SearchCriteria();
// Set Tag Options and Possible Tag Name
TagOptions tagOptions = new TagOptions();
tagOptions.setPossibleName("creator");
searchCriteria.setTagOptions(tagOptions);
//Set the new Value and Type and then add the property
property.setSearchCriteria(searchCriteria);
property.setNewValue("GroupDocs");
property.setType("string");
properties.add(property);
options.setProperties(properties);
// Select the file to update its metadata properties
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("documents/input.xlsx");
options.setFileInfo(fileInfo);
// Send Request and catch the Response
SetRequest request = new SetRequest(options);
SetResult response = apiInstance.set(request);
// Print the Response Fields
System.out.println("Changes count: " + response.getSetCount());
System.out.println("Resultant file path: " + response.getPath());

输出:通过可能的标签名称修改元数据后

 Count of changes: 1
 Resultant file path: metadata/set\_metadata/documents/input\_xlsx/input.xlsx 

您可以从响应中返回的路径下载更新的文档。此外,您可以通过添加和删除元数据等类似方式更新现有属性。示例和说明可以在 GroupDocs.Metadata Cloud API 的以下资源中查看。

让我们谈谈

这总结了 GroupDocs.Metadata Cloud API 的概述。现在您可以使用上述功能构建您自己的应用程序。如果您在论坛上联系我们讨论、解决问题或分享您的反馈,我们将非常高兴。谢谢。

资源