עבודה עם טווחים ניתנים לעריכה

עבודה עם טווחים ניתנים לעריכה

עבודה עם טווחים ניתנים לעריכה

מדריך זה מראה כיצד לבדוק ולהסיר טווחים ניתנים לעריכה – האזורים שתכונת “Restrict Editing” של Word מפחרת מההגבלה הכוללת של עריכת המסמך, באפשרותם להיות ממוקדים למשתמש או קבוצה ספציפיים – ב Aspose.Words FOSS עבור .NET. טווח ניתן לעריכה מוקף בעץ המסמך על ידי זוג של צמתים מסמנים, EditableRangeStart and EditableRangeEnd, ומתואר במלואו על ידי ה- EditableRange facade class.


מציאת טווחים ניתנים לעריכה במסמך

אין נכס אוסף יחיד לטווחים ניתנים לעריכה; מצאו אותם על-ידי הליכה בעץ הצמתים. CompositeNode.GetChildNodes(nodeType, isDeep) עם NodeType.EditableRangeStart מחזיר כל צומת EditableRangeStart במסמך (או בתת-עץ, אם נקרא על צומת שאינו Document). כל נכס EditableRangeStart.EditableRange לאחר מכן מחזיר את אובייקט ה-facade המתאים EditableRange.


ה-EditableRange Facade

EditableRange מתאר טווח יחיד שניתן לעריכה במלואו: Id מזהה אותו, SingleUser אופציונלית שם משתמש ספציפי המורשה לערוך אותו, ו-EditorGroup (ערך מסוג EditorType) אופציונלית שם קבוצת עריכה במקום זאת. EditableRangeStart ו-EditableRangeEnd מחזירים את זוג צמתי הסימון המעגלים את הטווח במסמך. EditableRange.Remove() מסיר את הטווח הניתן לעריכה – מבטל את פטור ההגבלה על עריכה עבור האזור הזה, מבלי למחוק את תוכן המסמך שבתוכו.


צמתי הסימון: EditableRangeStart ו-EditableRangeEnd

EditableRangeStart ו-EditableRangeEnd הם תתי-מחלקות 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 יחד כדי לקבוע למי הטווח מוגבל — טווח יכול להיות מוגדר למשתמש ספציפי אחד, לקבוצת עריכה אחת, או לשום דבר.
  • קרא ל-EditableRange.Remove() (על הפָּסָד) במקום להסיר את צמתי הסמן EditableRangeStart ו-EditableRangeEnd בנפרד, כך ששני קצות הטווח ינוקו באופן עקבי.

בעיות נפוצות

בעיהסיבהתיקון
לא נמצאו טווחים ניתנים לעריכה למרות שהמסמך מוגבל לעריכההחיפוש השתמש בקריאה ברירת המחדל (שטחי) של GetChildNodesהעבר isDeep: true כך שהחיפוש יכסה את כל תת-עץ המסמך
הסרת טווח עריכה אינה מסירה את הטקסט המוכללEditableRange.Remove() מסיר רק את סמני הטווח ואת פטור העריכה, ולא את התוכן שביניהםזה צפוי – מחק את התוכן בנפרד אם הוא גם צריך להימחק
EditorGroup נקרא כ-Unspecified למרות ש-Word מציג קבוצה בשםקבוצת העורך של הטווח במסמך המקור ממופה ל-EditorType.Unspecified/Default במקום לאחת מערכי הקבוצות בשםבדוק גם את SingleUser – הטווח עשוי במקום זאת להיות מוגבל למשתמש יחיד

FAQ

איך אני מוצא את כל הטווחים הניתנים לעריכה במסמך?

הקרא ל-Document.GetChildNodes(NodeType.EditableRangeStart, true), ואז קרא את המאפיין EditableRange על כל צומת EditableRangeStart שהוחזר.

איך אני יודע מי מורשה לערוך טווח מסוים?

קרא את EditableRange.SingleUser (משתמש ספציפי) ואת EditableRange.EditorGroup (קבוצת עריכה של EditorType) על אובייקט הפאסאד.

איך אני מסיר הגבלת עריכה מחלק מהמסמך?

הקרא ל-Remove() על אובייקט הפאסאד EditableRange עבור הטווח הזה.

מה ההבדל בין EditableRangeStart.EditableRange ל-EditableRangeEnd.EditableRangeStart?

EditableRangeStart.EditableRange מגיע ישירות לאובייקט facade המתאר את כל הטווח. EditableRangeEnd.EditableRangeStart חוזר לצומת סימן התחלה המתאים, שממנו ניתן להגיע לEditableRange.


API Reference סיכום

מחלקה / Enumתיאור
EditableRangeמתווה עבור טווח עריכה אחד: Id, SingleUser, EditorGroup, Remove()
EditableRangeStartצומת המסמן את תחילת הטווח; Id, EditableRange
EditableRangeEndצומת המסמן את סוף הטווח; Id, EditableRangeStart
EditorTypeEnum של קבוצות עריכה: Administrators, Contributors, Editors, Owners, Everyone, Current, None, Unspecified/Default

ראה גם

 עברית