Trabalhar com propriedades do documento

As propriedades do documento permitem armazenar algumas informações úteis sobre o seu documento. Essas propriedades podem ser divididas em dois grupos:

  • Sistema ou integrado que contém valores como título do documento, nome do autor, estatísticas do documento e outros.
  • Definido pelo usuário ou personalizado, fornecido como pares nome-valor onde o usuário pode definir o nome e o valor.

É útil saber que as informações sobre API e número de versão são gravadas diretamente nos documentos de saída. Por exemplo, ao converter um documento para PDF, o Aspose.Words preenche o campo “Aplicativo” com “Aspose.Words”, e o campo “PDF Producer” com “Aspose.Words para .NET YY.MN”, onde YY.M.N é a versão do Aspose.Words utilizada para conversão. Para obter mais detalhes, consulte Nome do Gerador ou Produtor Incluído nos Documentos de Saída.

Acessar propriedades do documento

Para acessar as propriedades do documento em Aspose.Words, use:

BuiltInDocumentProperties e CustomDocumentProperties são coleções de objetos DocumentProperty. Esses objetos podem ser obtidos através da propriedade do indexador por nome ou por índice.

Além disso, BuiltInDocumentProperties fornece acesso às propriedades do documento por meio de um conjunto de propriedades inseridas que retornam valores do tipo apropriado. CustomDocumentProperties permite adicionar ou remover propriedades de um documento.

A classe DocumentProperty permite obter o nome, valor e tipo de propriedade de um documento. Value retorna um objeto, mas há um conjunto de métodos que permitem converter o valor da propriedade em um tipo específico. Depois de saber qual é o tipo da propriedade, você pode usar um dos métodos DocumentProperty.ToXXX, como DocumentProperty.ToString e DocumentProperty.ToInt, para obter o valor do tipo apropriado.

O exemplo de código a seguir mostra como enumerar todas as propriedades internas e personalizadas em um documento:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
string fileName = dataDir + "Properties.doc";
Document doc = new Document(fileName);
Console.WriteLine("1. Document name: {0}", fileName);
Console.WriteLine("2. Built-in Properties");
foreach (DocumentProperty prop in doc.BuiltInDocumentProperties)
Console.WriteLine("{0} : {1}", prop.Name, prop.Value);
Console.WriteLine("3. Custom Properties");
foreach (DocumentProperty prop in doc.CustomDocumentProperties)
Console.WriteLine("{0} : {1}", prop.Name, prop.Value);

No Microsoft Word, você pode acessar as propriedades do documento usando o menu “Arquivo → Propriedades”.

trabalhar com propriedades do documento-1.png

Adicionar ou remover propriedades do documento

Você não pode adicionar ou remover propriedades internas do documento usando Aspose.Words. Você só pode alterar ou atualizar seus valores.

Para adicionar propriedades personalizadas do documento com Aspose.Words, utilize o método Add, passando o nome da nova propriedade e o valor do tipo apropriado. O método retorna o objeto DocumentProperty recém-criado.

Para remover propriedades customizadas, utilize o método Remove, passando o nome da propriedade a ser removida, ou o método RemoveAt para remover a propriedade por índice. Você também pode remover todas as propriedades usando o método Clear.

O exemplo de código a seguir verifica se uma propriedade personalizada com um determinado nome existe em um documento e adiciona mais algumas propriedades personalizadas do documento:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document(dataDir + "Properties.doc");
CustomDocumentProperties props = doc.CustomDocumentProperties;
if (props["Authorized"] == null)
{
props.Add("Authorized", true);
props.Add("Authorized By", "John Smith");
props.Add("Authorized Date", DateTime.Today);
props.Add("Authorized Revision", doc.BuiltInDocumentProperties.RevisionNumber);
props.Add("Authorized Amount", 123.45);
}

O exemplo de código a seguir mostra como remover uma propriedade de documento personalizada:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document(dataDir + "Properties.doc");
doc.CustomDocumentProperties.Remove("Authorized Date");

Atualizar propriedades integradas do documento

Aspose.Words não atualiza automaticamente as propriedades do documento, como o Microsoft Word faz com algumas propriedades, mas fornece um método para atualizar algumas propriedades estatísticas internas do documento. Chame o método UpdateWordCount para recalcular e atualizar as seguintes propriedades:

Crie uma nova propriedade personalizada vinculada ao conteúdo

Aspose.Words fornece o método AddLinkToContent para criar uma nova propriedade de documento personalizada vinculada ao conteúdo. Esta propriedade retorna o objeto de propriedade recém-criado ou nulo se o LinkSource for inválido.

O exemplo de código a seguir mostra como configurar um link para uma propriedade customizada:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document(dataDir + "test.docx");
// Retrieve a list of all custom document properties from the file.
CustomDocumentProperties customProperties = doc.CustomDocumentProperties;
// Add linked to content property.
DocumentProperty customProperty = customProperties.AddLinkToContent("PropertyName", "BookmarkName");
// Also, accessing the custom document property can be performed by using the property name.
customProperty = customProperties["PropertyName"];
// Check whether the property is linked to content.
bool isLinkedToContent = customProperty.IsLinkToContent;
// Get the source of the property.
string source = customProperty.LinkSource;
// Get the value of the property.
string value = customProperty.Value.ToString();

Obtenha variáveis de documento

Você pode obter uma coleção de variáveis de documento usando a propriedade Variables. Nomes e valores de variáveis são strings.

O exemplo de código a seguir mostra como enumerar variáveis de documento:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_WorkingWithDocument();
// Load the template document.
Document doc = new Document(dataDir + "TestFile.doc");
string variables = "";
foreach (KeyValuePair<string, string> entry in doc.Variables)
{
string name = entry.Key.ToString();
string value = entry.Value.ToString();
if (variables == "")
{
// Do something useful.
variables = "Name: " + name + "," + "Value: {1}" + value;
}
else
{
variables = variables + "Name: " + name + "," + "Value: {1}" + value;
}
}

Remover informações pessoais do documento

Se quiser compartilhar um documento do Word com outras pessoas, você pode remover informações pessoais, como nome do autor e empresa. Para fazer isso, use a propriedade RemovePersonalInformation para definir o sinalizador que indica que o Microsoft Word removerá todas as informações do usuário dos comentários, revisões e propriedades do documento ao salvar o documento.

O exemplo de código a seguir mostra como remover informações pessoais:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document(dataDir + "Properties.doc");
doc.RemovePersonalInformation = true;
dataDir = dataDir + "RemovePersonalInformation_out.docx";
doc.Save(dataDir);