Метаданные документа — это часть информации о документе, такая как автор, время редактирования и т. д., хранящаяся внутри документа. Как разработчик C#, вы можете легко программно редактировать метаданные для документов PDF в облаке. В этой статье вы узнаете, как редактировать метаданные PDF-файлов с помощью REST API на C#.
В этой статье должны быть раскрыты следующие темы:
- REST API и .NET SDK для управления метаданными документа
- Редактировать метаданные PDF-документов с помощью REST API
REST API и .NET SDK для управления метаданными документа
Для редактирования метаданных документа 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, как показано ниже:
Вы также можете установить пакет 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 в облако
- Обновление метаданных PDF-документов с помощью C#
- Скачать результирующий файл
Загрузить документ
Во-первых, загрузите файл 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);
}
В следующем фрагменте кода показано, как сопоставить точное имя свойства, установив для свойства 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);
В следующем фрагменте кода показано, как определить критерии поиска с помощью регулярных выражений для предоставления 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);
В следующем фрагменте кода показано, как обновить метаданные, указав значение свойства:
# инициализация 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-файл в облаке, и его можно загрузить с помощью следующего примера кода:
# инициализация 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 и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.