Метаданные документа — это часть информации о документе, такая как автор, время редактирования и т. д., хранящаяся внутри документа. Как разработчик C#, вы можете легко программно редактировать метаданные для документов PDF в облаке. В этой статье вы узнаете, как редактировать метаданные PDF-файлов с помощью REST API на C#.

В этой статье должны быть раскрыты следующие темы:

REST API и .NET SDK для управления метаданными документа

groupdocsmetadata-for-cloud

Для редактирования метаданных документа PDF я буду использовать .NET SDK of GroupDocs.Metadata Cloud API. Он позволяет добавлять, редактировать, извлекать и удалять метаданные практически из всех стандартных форматов файлов. Вы можете выполнять такие операции с PDF, Microsoft Word, электронными таблицами Excel, презентациями PowerPoint, электронной почтой Outlook, Visio, OneNote, Project, аудио, видео, AutoCAD, архивом, JPEG, BMP, PNG и TIFF. Он также предоставляет Java SDK в качестве своих членов семейства манипулирования метаданными документов для Cloud API.

Вы можете установить GroupDocs.Metadata Cloud SDK для .NET в свой проект Visual Studio из диспетчера пакетов NuGet, как показано ниже:

Установите GroupDocs.Metadata Cloud с помощью диспетчера пакетов NuGet.

Установите GroupDocs.Metadata Cloud с помощью диспетчера пакетов NuGet.

Вы также можете установить пакет NuGet с помощью следующей команды в консоли диспетчера пакетов:

Install-Package GroupDocs.Metadata-Cloud

Пожалуйста, получите свой идентификатор клиента и секрет клиента из панели управления, прежде чем приступить к выполнению шагов и доступных примеров кода. Получив идентификатор клиента и секрет, добавьте код, как показано ниже:

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

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

Редактировать метаданные PDF-файлов с помощью REST API в C#

Вы можете установить метаданные документов PDF, выполнив простые шаги, указанные ниже:

Загрузить документ

Во-первых, загрузите файл PDF в облако, используя пример кода, приведенный ниже:

# инициализация API
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) будет доступен в разделе файлов вашей панели управления в облаке.

Обновление метаданных PDF-файлов с помощью C#

Вы можете программно обновить метаданные файла PDF, выполнив шаги, указанные ниже.

  • Создайте экземпляр MetadataApi
  • Установите путь к файлу PDF в модели FileInfo.
  • Определить SetOptions
  • Укажите NewValue и Type для SetPropert
  • Определите SearchCriteria, укажите NameOptions, для которых нужно обновить значение.
  • Создайте SetRequest с помощью SetOptions
  • Получите результаты, вызвав метод MetadataApi.Set().

В следующем примере кода показано, как задать метаданные по имени свойства документа PDF с помощью REST API.

# инициализация API
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);
}
Редактировать метаданные PDF-документов с помощью REST API в C#

Установить метаданные по имени свойства

В следующем фрагменте кода показано, как сопоставить точное имя свойства, установив для свойства ExactPhrase значение True:

# инициализация API
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);
Редактируйте метаданные, сопоставляя точное имя свойства в документах PDF с помощью REST API в C#.

Установите метаданные, совпав с точным именем свойства

В следующем фрагменте кода показано, как определить критерии поиска с помощью регулярных выражений для предоставления MatchOptions:

# инициализация API
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);
Редактировать метаданные, сопоставляя имя свойства с помощью регулярного выражения в документах PDF с помощью REST API в C#

Установите метаданные, сопоставив имя свойства с регулярным выражением

В следующем фрагменте кода показано, как обновить метаданные, указав значение свойства:

# инициализация API
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);
Редактировать метаданные, сопоставляя значение свойства в документах PDF с помощью REST API в C#

Установите метаданные, сопоставив значение свойства

Загрузите обновленный файл

Приведенные выше примеры кода сохранят обновленный PDF-файл в облаке, и его можно загрузить с помощью следующего примера кода:

# инициализация API
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);
}

Попробуйте онлайн

Пожалуйста, попробуйте следующий бесплатный онлайн-инструмент для работы с метаданными PDF, разработанный с использованием вышеуказанного API.

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

Заключение

В этой статье вы узнали, как редактировать метаданные документов PDF в облаке. В этой статье также объясняется, как программно загрузить файл PDF в облако, а затем загрузить обновленный файл из облака. Вы можете узнать больше о GroupDocs.Metadata Manipulation Cloud API, используя документацию. Мы также предоставляем раздел Справочник по API, который позволяет визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также