Bekerja dengan Rentang yang Dapat Diedit

Bekerja dengan Rentang yang Dapat Diedit

Bekerja dengan Rentang yang Dapat Diedit

Panduan ini menunjukkan cara memeriksa dan menghapus rentang yang dapat diedit – wilayah yang dikecualikan oleh fitur “Restrict Editing” Word dari pembatasan penyuntingan keseluruhan dokumen, secara opsional ditetapkan untuk pengguna atau grup tertentu – dalam Aspose.Words FOSS untuk .NET. Sebuah rentang yang dapat diedit dibatasi dalam pohon dokumen oleh sepasang node penanda, EditableRangeStart and EditableRangeEnd, dan dijelaskan secara keseluruhan oleh EditableRange kelas facade.


Menemukan Rentang yang Dapat Diedit dalam Dokumen

Tidak ada properti koleksi tunggal untuk rentang yang dapat diedit; temukan mereka dengan menelusuri pohon node. CompositeNode.GetChildNodes(nodeType, isDeep) dengan NodeType.EditableRangeStart mengembalikan setiap node EditableRangeStart dalam dokumen (atau dalam subtree, jika dipanggil pada node selain Document). Setiap properti EditableRangeStart.EditableRange kemudian mengembalikan objek fasad EditableRange yang sesuai.


Fasad EditableRange

EditableRange menggambarkan satu rentang yang dapat diedit secara keseluruhan: Id mengidentifikasinya, SingleUser secara opsional memberi nama pengguna spesifik yang diizinkan mengeditnya, dan EditorGroup (sebuah nilai EditorType) secara opsional memberi nama grup penyuntingan sebagai gantinya. EditableRangeStart dan EditableRangeEnd mengembalikan pasangan node penanda yang membatasi rentang dalam dokumen. EditableRange.Remove() menghapus rentang yang dapat diedit – mengangkat pengecualian pembatasan penyuntingan untuk wilayah tersebut, tanpa menghapus konten dokumen di dalamnya.


Node Penanda: EditableRangeStart dan EditableRangeEnd

EditableRangeStart dan EditableRangeEnd adalah subclass Node yang disegel yang menandai batas rentang dalam alur konten dokumen. EditableRangeStart.Id dan EditableRangeEnd.Id mengidentifikasi rentang; EditableRangeStart.EditableRange mencapai objek fasad secara langsung, dan EditableRangeEnd.EditableRangeStart kembali ke penanda awal yang sesuai. Sebagai node biasa, keduanya mendukung anggota standar Node – ParentNode, Document, PreviousSibling, NextSibling, dan Remove() untuk menghapus penanda individu.


Membatasi Akses dengan EditorType

EditorType menyebutkan grup pengeditan yang dapat dirujuk oleh EditableRange.EditorGroup: Administrators, Contributors, Editors, Owners, Everyone, Current, None, dan Unspecified (juga tersedia sebagai Default, alias untuk Unspecified).


Tips dan Praktik Terbaik

  • Gunakan GetChildNodes(NodeType.EditableRangeStart, true) dengan isDeep: true untuk menemukan rentang yang dapat diedit di mana saja dalam dokumen, tidak hanya di antara anak langsung sebuah node.
  • Baca EditableRange.SingleUser dan EditorGroup bersama-sama untuk menentukan kepada siapa rentang dibatasi – sebuah rentang dapat dibatasi untuk satu pengguna spesifik, satu grup pengeditan, atau tidak ada sama sekali.
  • Panggil EditableRange.Remove() (pada fasad) daripada menghapus node penanda EditableRangeStart dan EditableRangeEnd secara terpisah, sehingga kedua ujung rentang dibersihkan secara konsisten.

Masalah Umum

MasalahPenyebabPerbaikan
Tidak ada rentang yang dapat diedit ditemukan meskipun dokumen memiliki penyuntingan terbatasPencarian menggunakan panggilan default (dangkal) GetChildNodesBerikan isDeep: true sehingga pencarian mencakup seluruh subtree dokumen
Menghapus rentang yang dapat diedit tidak menghapus teks yang terbungkusEditableRange.Remove() hanya menghapus penanda rentang dan pengecualian penyuntingan, bukan konten di antara keduanyaIni diharapkan – hapus kontennya secara terpisah jika juga perlu dihapus
EditorGroup terbaca sebagai Unspecified meskipun Word menampilkan grup bernamaGrup penyunting rentang dalam dokumen sumber dipetakan ke EditorType.Unspecified/Default alih-alih salah satu nilai grup bernamaPeriksa SingleUser juga – rentang mungkin justru dibatasi untuk pengguna individu

FAQ

Bagaimana cara menemukan semua rentang yang dapat diedit dalam sebuah dokumen?

Panggil Document.GetChildNodes(NodeType.EditableRangeStart, true), kemudian baca properti EditableRange pada setiap node EditableRangeStart yang dikembalikan.

Bagaimana saya mengetahui siapa yang diizinkan mengedit rentang tertentu?

Baca EditableRange.SingleUser (seorang pengguna spesifik) dan EditableRange.EditorGroup (sebuah grup penyunting EditorType) pada objek facade.

Bagaimana cara menghapus pembatasan penyuntingan dari bagian dokumen?

Panggil Remove() pada objek facade EditableRange untuk rentang tersebut.

Apa perbedaan antara EditableRangeStart.EditableRange dan EditableRangeEnd.EditableRangeStart?

EditableRangeStart.EditableRange mencapai objek fasad yang mendeskripsikan seluruh rentang secara langsung. EditableRangeEnd.EditableRangeStart kembali ke node penanda awal yang sesuai, dari mana EditableRange kemudian dapat dicapai.


API Reference Ringkasan

Kelas / EnumDeskripsi
EditableRangeFasad untuk satu rentang yang dapat diedit: Id, SingleUser, EditorGroup, Remove()
EditableRangeStartNode yang menandai awal rentang; Id, EditableRange
EditableRangeEndNode yang menandai akhir rentang; Id, EditableRangeStart
EditorTypeEnum grup penyuntingan: Administrators, Contributors, Editors, Owners, Everyone, Current, None, Unspecified/Default

Lihat Juga

 Bahasa Indonesia