편집 가능한 범위 작업

편집 가능한 범위 작업

편집 가능한 범위 작업

이 가이드는 편집 가능한 범위를 검사하고 제거하는 방법을 보여줍니다 – Word의 “Restrict Editing” 기능이 문서 전체 편집 제한에서 제외하는 영역으로, 특정 사용자나 그룹에 한정할 수도 있습니다 – in Aspose.Words FOSS for .NET. 편집 가능한 범위는 문서 트리에서 두 개의 마커 노드 쌍으로 둘러싸여 있습니다, EditableRangeStart and EditableRangeEnd, 전체적으로는 EditableRange 파사드 클래스.


문서에서 편집 가능한 범위 찾기

편집 가능한 범위에 대한 단일 컬렉션 속성은 없습니다; 노드 트리를 순회하면서 찾으세요. CompositeNode.GetChildNodes(nodeType, isDeep)와 NodeType.EditableRangeStart을 사용하면 문서의 모든 EditableRangeStart 노드(또는 Document이 아닌 노드에서 호출된 경우 서브트리의 노드)를 반환합니다. 각 EditableRangeStart.EditableRange 속성은 해당 EditableRange 파사드 객체를 반환합니다.


EditableRange 파사드

EditableRange은 단일 편집 가능한 범위를 전체적으로 설명합니다: Id은 이를 식별하고, SingleUser는 편집을 허용된 특정 사용자를 선택적으로 지정하며, EditorGroup( EditorType 값) 은 대신 편집 그룹을 선택적으로 지정합니다. EditableRangeStart와 EditableRangeEnd은 문서에서 해당 범위를 둘러싼 마커 노드 쌍을 반환합니다. EditableRange.Remove()은 편집 가능한 범위를 제거합니다—해당 영역에 대한 편집 제한 면제를 해제하지만 그 안의 문서 내용은 삭제하지 않습니다.


마커 노드: EditableRangeStart 및 EditableRangeEnd

EditableRangeStart와 EditableRangeEnd은 문서 내용 흐름에서 범위의 경계를 표시하는 sealed Node 하위 클래스입니다. EditableRangeStart.Id와 EditableRangeEnd.Id는 범위를 식별합니다; EditableRangeStart.EditableRange는 파사드 객체에 직접 접근하고, EditableRangeEnd.EditableRangeStart는 해당 시작 마커로 되돌아갑니다. 일반 노드이므로 두 클래스 모두 표준 Node 멤버 – ParentNode, Document, PreviousSibling, NextSibling, Remove() – 를 지원하여 개별 마커를 삭제할 수 있습니다.


EditorType 로 접근 제한

EditorType은 EditableRange.EditorGroup이 참조할 수 있는 편집 그룹을 나열합니다: Administrators, Contributors, Editors, Owners, Everyone, Current, None, 그리고 Unspecified (또한 Default으로도 사용 가능하며, 이는 Unspecified의 별칭입니다).


팁 및 모범 사례

  • GetChildNodes(NodeType.EditableRangeStart, true)을(를) isDeep: true와 함께 사용하면 문서 내 어디에서든 편집 가능한 범위를 찾을 수 있습니다. 이는 노드의 직접적인 자식에만 국한되지 않습니다.
  • 범위가 누구에게 제한되는지 판단하려면 EditableRange.SingleUser과 EditorGroup을 함께 읽으세요 — 범위는 특정 사용자 하나, 편집 그룹 하나, 혹은 제한이 없을 수도 있습니다.
  • 범위 양쪽 끝이 일관되게 정리되도록 EditableRangeStart 및 EditableRangeEnd 마커 노드를 개별적으로 제거하는 대신 파사드에서 EditableRange.Remove()을 호출하세요.

일반적인 문제

문제원인수정
문서에 편집 제한이 적용되어 있음에도 편집 가능한 범위가 찾지 못했습니다.검색이 기본 (얕은) GetChildNodes 호출을 사용했습니다.검색이 전체 문서 하위 트리를 포함하도록 isDeep: true을 전달하십시오.
편집 가능한 범위를 제거해도 포함된 텍스트는 삭제되지 않습니다.EditableRange.Remove()은(는) 범위 표시와 편집 면제만 제거하고, 그 사이의 내용은 삭제하지 않습니다.이는 예상된 동작입니다 – 내용도 삭제해야 한다면 별도로 삭제하십시오.
Word에서 명명된 그룹을 표시하지만 EditorGroup은 Unspecified으로 읽힙니다.소스 문서에서 범위의 편집자 그룹은 명명된 그룹 값 중 하나가 아니라 EditorType.Unspecified/Default에 매핑됩니다.또한 SingleUser를 확인하십시오 – 범위가 개별 사용자에게만 적용될 수도 있습니다

FAQ

문서에서 모든 편집 가능한 범위를 어떻게 찾나요?

Document.GetChildNodes(NodeType.EditableRangeStart, true)을(를) 호출하고, 반환된 각 EditableRangeStart 노드에서 EditableRange 속성을 읽으세요.

특정 범위를 편집할 수 있는 사용자를 어떻게 확인하나요?

facade 객체에서 EditableRange.SingleUser(특정 사용자)와 EditableRange.EditorGroup(EditorType 편집 그룹)를 읽으세요.

문서의 일부에서 편집 제한을 어떻게 제거하나요?

해당 범위에 대해 EditableRange facade 객체에서 Remove()을(를) 호출하세요.

EditableRangeStart.EditableRange와 EditableRangeEnd.EditableRangeStart의 차이점은 무엇인가요?

EditableRangeStart.EditableRange은 전체 범위를 설명하는 파사드 객체에 직접 도달합니다. EditableRangeEnd.EditableRangeStart은 해당 시작 마커 노드로 되돌아가며, 그곳에서 EditableRange에 도달할 수 있습니다.


API Reference 요약

클래스 / 열거형설명
EditableRange하나의 편집 가능한 범위에 대한 파사드: Id, SingleUser, EditorGroup, Remove()
EditableRangeStart범위 시작을 표시하는 노드; Id, EditableRange
EditableRangeEnd범위 끝을 표시하는 노드; Id, EditableRangeStart
EditorType편집 그룹 열거형: Administrators, Contributors, Editors, Owners, Everyone, Current, None, Unspecified/Default

참조

 한국어