文檔元數據是存儲在文檔內部的關於文檔的信息,例如作者、編輯時間等。作為 C# 開發人員,您可以在雲端以編程方式輕鬆編輯 PDF 文檔的元數據信息。在本文中,您將學習如何在 C# 中使用 REST API 編輯 PDF 文件的元數據。

本文應涵蓋以下主題:

文檔元數據操作 REST API 和 .NET SDK

groupdocsmetadata-for-cloud

為了編輯 PDF 文檔的元數據,我將使用 GroupDocs.Metadata Cloud 的 .NET SDK API。它允許您從幾乎所有行業標准文件格式中添加、編輯、檢索和刪除元數據。您可以對 PDF、Microsoft Word、Excel 電子表格、PowerPoint 演示文稿、Outlook 電子郵件、Visio、OneNote、Project、音頻、視頻、AutoCAD、存檔、JPEG、BMP、PNG 和 TIFF 執行此類操作。它還為 Cloud API 提供 Java SDK 作為其文檔元數據操作家族成員

您可以從 NuGet 包管理器將適用於 .NET 的 GroupDocs.Metadata Cloud SDK 安裝到您的 Visual Studio 項目,如下所示:

通過 NuGet 包管理器安裝 GroupDocs.Metadata Cloud

通過 NuGet 包管理器安裝 GroupDocs.Metadata Cloud

您還可以在包管理器控制台中使用以下命令安裝 NuGet 包:

Install-Package GroupDocs.Metadata-Cloud

在開始執行步驟和可用代碼示例之前,請從 dashboard 獲取您的 Client ID 和 Client Secret。獲得客戶端 ID 和密碼後,添加如下所示的代碼:

string clientID = "112f0f38-9dae-42d5-b4fc-cc84ae644972";
string clientSecret = "16ad3fe0bdc39c910f57d2fd48a5d618";
string myStorage = "";

Configuration configuration = new Configuration(clientID, clientSecret);
configuration.ApiBaseUrl = "https://api.groupdocs.cloud";

在 C# 中使用 REST API 編輯 PDF 文件的元數據

您可以按照以下簡單步驟設置 PDF 文檔的元數據:

上傳文件

首先,使用下面給出的代碼示例將 PDF 文件上傳到雲端:

# 接口初始化
FileApi fileApi = new FileApi(configuration);
string path = @"C:\Files";

var file = Directory.GetFiles(path, "input.pdf", SearchOption.AllDirectories).FirstOrDefault();
if (file.Length != 0)
{
    var relativeFilePath = file.Replace(path, string.Empty).Trim(Path.DirectorySeparatorChar);

    var fileStream = File.Open(file, FileMode.Open);

    fileApi.UploadFile(new UploadFileRequest(relativeFilePath, fileStream, myStorage));
    fileStream.Close();
}

因此,上傳的 PDF 文件 (input.pdf) 將在雲端儀表板的 文件部分 中可用。

使用 C# 更新 PDF 文件的元數據

您可以按照下面給出的步驟以編程方式更新 PDF 文件的元數據。

  • 創建 MetadataApi 實例
  • 在FileInfo模型中設置PDF文件路徑
  • 定義設置選項
  • 為 SetPropert 提供新值和類型
  • 定義 SearchCriteria,提供要為其更新值的 NameOptions
  • 使用 SetOptions 創建 SetRequest
  • 通過調用MetadataApi.Set()方法獲取結果

以下代碼示例顯示瞭如何使用 REST API 通過 PDF 文檔的屬性名稱設置元數據。

# 接口初始化
var apiInstance = new MetadataApi(configuration);

try
{
    var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
    {
        FilePath = "input.pdf",
        StorageName = myStorage
    };
    
    // 定義設置選項
    var options = new SetOptions
    {
        FileInfo = fileInfo,
        Properties = new List<SetProperty>
        {
            new SetProperty
            {
                NewValue = "hello",
                Type = "String",
                SearchCriteria = new SearchCriteria
                {
                    NameOptions = new NameOptions
                    {
                        Value = "Keywords"
                    }
                },
            }
        }
    };
    
    // 定義設置請求
    var request = new SetRequest(options);

    var response = apiInstance.Set(request);
    Console.WriteLine($"Count of changes: {response.SetCount}");
    Console.WriteLine("Resultant file path: " + response.Path);
}
catch (Exception e)
{
    Console.WriteLine("Exception while calling MetadataApi: " + e.Message);
}
在 C# 中使用 REST API 編輯 PDF 文檔的元數據

按屬性名稱設置元數據

以下代碼片段顯示瞭如何通過將 ExactPhrase 屬性設置為 True 來匹配準確的屬性名稱:

# 接口初始化
var apiInstance = new MetadataApi(configuration);
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.pdf",
    StorageName = myStorage
};

// 定義設置選項
var options = new SetOptions
{
    FileInfo = fileInfo,
    Properties = new List<SetProperty>
    {
        new SetProperty
        {
            NewValue = "This is title",
            Type = "String",
            SearchCriteria = new SearchCriteria
            {
                NameOptions = new NameOptions
                {
                    Value = "Title",
                    MatchOptions = new MatchOptions
                    {
                        ExactPhrase = true
                    }
                }
            },
        }
    }
};

// 定義設置請求
var request = new SetRequest(options);

var response = apiInstance.Set(request);
通過在 C# 中使用 REST API 匹配 PDF 文檔中的確切屬性名稱來編輯元數據

通過匹配準確的屬性名稱設置元數據

以下代碼片段顯示瞭如何使用正則表達式定義搜索條件以提供 MatchOptions:

# 接口初始化
var apiInstance = new MetadataApi(configuration);
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.pdf",
    StorageName = myStorage
};

// 定義設置選項
var options = new SetOptions
{
    FileInfo = fileInfo,
    Properties = new List<SetProperty>
    {
        new SetProperty
        {
            NewValue = "new value",
            Type = "String",
            SearchCriteria = new SearchCriteria
            {
                NameOptions = new NameOptions
                {
                    Value = "^Tit.*",
                    MatchOptions = new MatchOptions
                    {
                        IsRegex = true
                    }
                }
            },
        }
    }
};

// 定義設置請求
var request = new SetRequest(options);

var response = apiInstance.Set(request);
在 C# 中使用 REST API 通過在 PDF 文檔中使用正則表達式匹配屬性名稱來編輯元數據

通過將屬性名稱與正則表達式匹配來設置元數據

以下代碼片段顯示瞭如何通過提供屬性值來更新元數據:

# 接口初始化
var apiInstance = new MetadataApi(configuration);
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.pdf",
    StorageName = myStorage
};

// 定義設置選項
var options = new SetOptions
{
    FileInfo = fileInfo,
    Properties = new List<SetProperty>
    {
        new SetProperty
        {
            NewValue = "Simply set by Property Value",
            Type = "String",
            SearchCriteria = new SearchCriteria
            {
                ValueOptions = new ValueOptions
                {
                    Value = "Windows User",
                    Type = "String"
                }
            },
        }
    }
};

// 定義設置請求
var request = new SetRequest(options);

var response = apiInstance.Set(request);
在 C# 中使用 REST API 通過匹配 PDF 文檔中的屬性值來編輯元數據

通過匹配屬性值設置元數據

下載更新文件

上述代碼示例將更新後的 PDF 文件保存在雲端,可以使用以下代碼示例下載:

# 接口初始化
var fileApi = new FileApi(configuration);
var file = "metadata\\set_metadata\\input_pdf\\input.pdf";
var downloadRequest = new DownloadFileRequest(file, myStorage);

Stream downloadResponse = fileApi.DownloadFile(downloadRequest);
using (var fileStream = File.Create("C:\\Files\\sample_input.pdf"))
{
    downloadResponse.Seek(0, SeekOrigin.Begin);
    downloadResponse.CopyTo(fileStream);
}

在線試用

請試用以下使用上述 API 開發的免費在線 PDF 元數據操作工具。

https://products.groupdocs.app/metadata/pdf

結論

在本文中,您學習瞭如何在雲端編輯 PDF 文檔的元數據。本文還介紹瞭如何以編程方式將 PDF 文件上傳到雲端,然後從雲端下載更新後的文件。您可以使用 文檔 了解有關 GroupDocs.Metadata Manipulation Cloud API 的更多信息。我們還提供了一個 API 參考 部分,讓您可以直接通過瀏覽器可視化我們的 API 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看