Trabalhando com Intervalos Editáveis

Trabalhando com Intervalos Editáveis

Trabalhando com Intervalos Editáveis

Este guia mostra como inspecionar e remover intervalos editáveis – as regiões que o recurso “Restringir Edição” do Word isenta da restrição geral de edição de um documento, opcionalmente limitadas a um usuário ou grupo específico – em Aspose.Words FOSS para .NET. Um intervalo editável é delimitado na árvore do documento por um par de nós marcador, EditableRangeStart and EditableRangeEnd, e descrito como um todo pela EditableRange classe fachada.


Encontrando Intervalos Editáveis em um Documento

Não existe uma única propriedade de coleção para intervalos editáveis; encontre-os percorrendo a árvore de nós. CompositeNode.GetChildNodes(nodeType, isDeep) com NodeType.EditableRangeStart retorna cada nó EditableRangeStart no documento (ou em uma subárvore, se chamado em um nó diferente de Document). Cada propriedade EditableRangeStart.EditableRange então retorna o objeto fachada EditableRange correspondente.


A Fachada EditableRange

EditableRange descreve um único intervalo editável como um todo: Id o identifica, SingleUser opcionalmente nomeia um usuário específico autorizado a editá-lo, e EditorGroup (um valor EditorType) opcionalmente nomeia um grupo de edição em vez disso. EditableRangeStart e EditableRangeEnd retornam o par de nós marcadores que delimitam o intervalo no documento. EditableRange.Remove() remove o intervalo editável – levantando a isenção da restrição de edição para essa região, sem excluir o conteúdo do documento dentro dele.


Os Nós Marcadores: EditableRangeStart e EditableRangeEnd

EditableRangeStart e EditableRangeEnd são subclasses seladas de Node que marcam os limites de um intervalo no fluxo de conteúdo do documento. EditableRangeStart.Id e EditableRangeEnd.Id identificam o intervalo; EditableRangeStart.EditableRange alcança o objeto facade diretamente, e EditableRangeEnd.EditableRangeStart volta ao marcador de início correspondente. Sendo nós ordinários, ambos suportam os membros padrão de Node – ParentNode, Document, PreviousSibling, NextSibling e Remove() para excluir o marcador individual.


Restringindo o acesso com EditorType

EditorType enumera os grupos de edição que um EditableRange.EditorGroup pode referenciar: Administrators, Contributors, Editors, Owners, Everyone, Current, None e Unspecified (também disponível como Default, um alias para Unspecified).


Dicas e melhores práticas

  • Use GetChildNodes(NodeType.EditableRangeStart, true) com isDeep: true para encontrar intervalos editáveis em qualquer parte do documento, não apenas entre os filhos imediatos de um nó.
  • Leia EditableRange.SingleUser e EditorGroup juntos para determinar a quem um intervalo está restrito – um intervalo pode ser limitado a um usuário específico, a um grupo de edição ou a nenhum.
  • Chame EditableRange.Remove() (na fachada) em vez de remover os nós marcador EditableRangeStart e EditableRangeEnd individualmente, para que ambas as extremidades do intervalo sejam limpas de forma consistente.

Problemas comuns

ProblemaCausaCorreção
Nenhum intervalo editável foi encontrado, embora o documento tenha edição restritaA pesquisa usou a chamada padrão (superficial) GetChildNodesPasse isDeep: true para que a pesquisa cubra toda a subárvore do documento
Remover um intervalo editável não remove o texto incluídoEditableRange.Remove() remove apenas os marcadores de intervalo e a isenção de edição, não o conteúdo entre elesIsso é esperado – exclua o conteúdo separadamente se ele também precisar ser removido
EditorGroup é lido como Unspecified embora o Word mostre um grupo nomeadoO grupo de edição do intervalo no documento fonte mapeia para EditorType.Unspecified/Default em vez de um dos valores do grupo nomeadoVerifique SingleUser também – o intervalo pode ser limitado a um usuário individual

FAQ

Como encontro todos os intervalos editáveis em um documento?

Chame Document.GetChildNodes(NodeType.EditableRangeStart, true), então leia a propriedade EditableRange em cada nó EditableRangeStart retornado.

Como descubro quem tem permissão para editar um determinado intervalo?

Leia EditableRange.SingleUser (um usuário específico) e EditableRange.EditorGroup (um grupo de edição EditorType) no objeto fachada.

Como removo uma restrição de edição de parte de um documento?

Chame Remove() no objeto fachada EditableRange para esse intervalo.

Qual é a diferença entre EditableRangeStart.EditableRange e EditableRangeEnd.EditableRangeStart?

EditableRangeStart.EditableRange alcança o objeto fachada que descreve toda a faixa diretamente. EditableRangeEnd.EditableRangeStart volta ao nó marcador de início correspondente, a partir do qual EditableRange pode então ser alcançado.


API Reference Resumo

Classe / EnumDescrição
EditableRangeFacade para um intervalo editável: Id, SingleUser, EditorGroup, Remove()
EditableRangeStartNó que marca o início de um intervalo; Id, EditableRange
EditableRangeEndNó que marca o fim de um intervalo; Id, EditableRangeStart
EditorTypeEnumeração dos grupos de edição: Administrators, Contributors, Editors, Owners, Everyone, Current, None, Unspecified/Default

Ver também

 Português