Os metadados do documento são informações sobre o documento, como autor, hora da edição, etc. armazenadas dentro de um documento. Como desenvolvedor C#, você pode editar facilmente as informações de metadados para documentos PDF programaticamente na nuvem. Neste artigo, você aprenderá como editar os metadados de arquivos PDF usando uma API REST em C#.
Os seguintes tópicos serão abordados neste artigo:
- API REST de manipulação de metadados de documentos e SDK .NET
- Editar metadados de documentos PDF usando uma API REST
API REST de manipulação de metadados de documentos e SDK .NET
Para editar metadados de um documento PDF, usarei a API .NET SDK do GroupDocs.Metadata Cloud. Ele permite adicionar, editar, recuperar e remover metadados de quase todos os formatos de arquivo padrão do setor. Você pode executar essas operações em PDF, Microsoft Word, planilhas do Excel, apresentações do PowerPoint, e-mails do Outlook, Visio, OneNote, Projeto, áudio, vídeo, AutoCAD, arquivo, JPEG, BMP, PNG e TIFF. Ele também fornece Java SDK como seus membros da família de manipulação de metadados de documentos para a Cloud API.
Você pode instalar GroupDocs.Metadata Cloud SDK para .NET em seu projeto do Visual Studio a partir do gerenciador de pacotes NuGet, conforme mostrado abaixo:
Você também pode instalar o pacote NuGet usando o seguinte comando no console do Gerenciador de pacotes:
Install-Package GroupDocs.Metadata-Cloud
Obtenha seu ID de cliente e Segredo do cliente no painel antes de começar a seguir as etapas e os exemplos de código disponíveis. Depois de ter seu ID de cliente e segredo, adicione o código conforme mostrado abaixo:
string clientID = "112f0f38-9dae-42d5-b4fc-cc84ae644972";
string clientSecret = "16ad3fe0bdc39c910f57d2fd48a5d618";
string myStorage = "";
Configuration configuration = new Configuration(clientID, clientSecret);
configuration.ApiBaseUrl = "https://api.groupdocs.cloud";
Editar metadados de arquivos PDF usando a API REST em C#
Você pode definir metadados de documentos PDF seguindo as etapas simples abaixo:
- Carregar o arquivo PDF para a nuvem
- Atualizar metadados de documentos PDF usando C#
- Baixar o arquivo resultante
Carregue o Documento
Em primeiro lugar, carregue o arquivo PDF para a nuvem usando o exemplo de código abaixo:
# inicialização da 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();
}
Como resultado, o arquivo PDF carregado (input.pdf) estará disponível na seção de arquivos do seu painel na nuvem.
Atualizar metadados de arquivos PDF usando C#
Você pode atualizar os metadados de um arquivo PDF programaticamente seguindo as etapas abaixo.
- Crie uma instância de MetadataApi
- Defina o caminho do arquivo PDF no modelo FileInfo
- Definir SetOptions
- Forneça NewValue e Type para SetPropert
- Defina SearchCriteria, forneça NameOptions para o qual atualizar o valor
- Criar SetRequest com SetOptions
- Obtenha resultados chamando o método MetadataApi.Set()
O exemplo de código a seguir mostra como definir os metadados por nome de propriedade de um documento PDF usando uma API REST.
# inicialização da API
var apiInstance = new MetadataApi(configuration);
try
{
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
FilePath = "input.pdf",
StorageName = myStorage
};
// Definir Opções de Conjunto
var options = new SetOptions
{
FileInfo = fileInfo,
Properties = new List<SetProperty>
{
new SetProperty
{
NewValue = "hello",
Type = "String",
SearchCriteria = new SearchCriteria
{
NameOptions = new NameOptions
{
Value = "Keywords"
}
},
}
}
};
// Definir solicitação de conjunto
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);
}
O trecho de código a seguir mostra como corresponder ao nome exato da propriedade definindo a propriedade ExactPhrase como True:
# inicialização da API
var apiInstance = new MetadataApi(configuration);
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
FilePath = "input.pdf",
StorageName = myStorage
};
// Definir Opções de Conjunto
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
}
}
},
}
}
};
// Definir solicitação de conjunto
var request = new SetRequest(options);
var response = apiInstance.Set(request);
O trecho de código a seguir mostra como definir critérios de pesquisa usando expressões regulares para fornecer MatchOptions:
# inicialização da API
var apiInstance = new MetadataApi(configuration);
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
FilePath = "input.pdf",
StorageName = myStorage
};
// Definir Opções de Conjunto
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
}
}
},
}
}
};
// Definir solicitação de conjunto
var request = new SetRequest(options);
var response = apiInstance.Set(request);
O trecho de código a seguir mostra como atualizar os metadados fornecendo o valor da propriedade:
# inicialização da API
var apiInstance = new MetadataApi(configuration);
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
FilePath = "input.pdf",
StorageName = myStorage
};
// Definir Opções de Conjunto
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"
}
},
}
}
};
// Definir solicitação de conjunto
var request = new SetRequest(options);
var response = apiInstance.Set(request);
Baixe o arquivo atualizado
Os exemplos de código acima salvarão o arquivo PDF atualizado na nuvem e poderão ser baixados usando o seguinte exemplo de código:
# inicialização da 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);
}
Experimente on-line
Experimente a seguinte ferramenta online gratuita de manipulação de metadados de PDF, que é desenvolvida usando a API acima.
https://products.groupdocs.app/metadata/pdf
Conclusão
Neste artigo, você aprendeu como editar os metadados de documentos PDF na nuvem. Este artigo também explicou como carregar programaticamente um arquivo PDF na nuvem e, em seguida, baixar o arquivo atualizado da nuvem. Você pode aprender ainda mais sobre GroupDocs.Metadata Manipulation Cloud API usando a documentação. Também fornecemos uma seção Referência de API que permite visualizar e interagir com nossas APIs diretamente pelo navegador. Em caso de ambiguidade, sinta-se à vontade para nos contatar no fórum.