עבודה עם הערות

רשימות קריאה בהן מופיע Microsoft Word לתעד את המיקומים או החלקים שאתה שם וזיהוי עבור התייחסות עתידית. לדוגמה, אתה יכול להשתמש בסימן כדי לזהות טקסט שאתה רוצה לשחזר מאוחר יותר. במקום לגלול באמצעות המסמך כדי לאתר את הטקסט, אתה יכול ללכת אליו באמצעות תיבת הדו-שיח של Bookmark.

הפעולות שניתן לבצע עם סימניות באמצעות Aspose.Words זהה לאלה שאתה יכול לבצע באמצעות Microsoft Word. אתה יכול להוסיף סימן חדש, למחוק, לעבור לסימן ספר, לקבל או להגדיר שם סימן, לקבל או להגדיר טקסט סגור בו. עם Aspose.Wordsאתה יכול גם להשתמש סממנים בדיווחים או במסמכים כדי להכניס נתונים מסוימים לסימן הספר או ליישם פורמט מיוחד לתוכן שלו. אתה יכול גם להשתמש סממנים כדי לאחזר טקסט ממקום מסוים במסמך שלך.

תגית: Bookmark

שימוש בשימוש start_bookmark ו end_bookmark כדי ליצור סימן על ידי סימון ההתחלה והסוף שלו, בהתאמה. אל תשכחו להעביר את אותו שם הספר לשתי השיטות. סימני ספר במסמך יכולים לחפוף ולעבור כל טווח. סימני ספר שנוצרו בטעות או סימני ספר עם שמות כפולים יתעלמו כאשר המסמך נשמר.

דוגמה לקוד הבא מראה כיצד ליצור סימן חדש:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.start_bookmark("My Bookmark")
builder.writeln("Text inside a bookmark.")
builder.start_bookmark("Nested Bookmark")
builder.writeln("Text inside a NestedBookmark.")
builder.end_bookmark("Nested Bookmark")
builder.writeln("Text after Nested Bookmark.")
builder.end_bookmark("My Bookmark")
options = aw.saving.PdfSaveOptions()
options.outline_options.bookmarks_outline_levels.add("My Bookmark", 1)
options.outline_options.bookmarks_outline_levels.add("Nested Bookmark", 2)
doc.save(docs_base.artifacts_dir + "WorkingWithBookmarks.create_bookmark.pdf", options)

הערות ספרים

לפעמים יש צורך להשיג אוסף של סימן ספר כדי להחליש באמצעות סימניות או למטרות אחרות. השתמש Node.range רכוש שנחשף על ידי כל מסמך אשר מחזיר Range האובייקט המייצג את חלקו של המסמך הכלול בצומת זה. השתמש באובייקט הזה כדי להחזיר BookmarkCollection לאחר מכן השתמש באינדקס האוסף כדי לקבל סימן ספר מסוים.

הדוגמה הבאה של הקוד מראה כיצד להשיג סימני ספר מאוסף של סממנים:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Bookmarks.docx")
# By index:
bookmark1 = doc.range.bookmarks[0]
# By name:
bookmark2 = doc.range.bookmarks.get_by_name("MyBookmark3")

הדוגמה הבאה של הקוד מראה כיצד להגיע או להגדיר שם סימן וטקסט:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Bookmarks.docx")
bookmark = doc.range.bookmarks.get_by_name("MyBookmark1")
name = bookmark.name
text = bookmark.text
bookmark.name = "RenamedBookmark"
bookmark.text = "This is a new bookmarked text."

דוגמה לקוד הבא מראה כיצד לסמן שולחן:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.start_table()
builder.insert_cell()
builder.start_bookmark("MyBookmark")
builder.write("This is row 1 cell 1")
builder.insert_cell()
builder.write("This is row 1 cell 2")
builder.end_row()
builder.insert_cell()
builder.writeln("This is row 2 cell 1")
builder.insert_cell()
builder.writeln("This is row 2 cell 2")
builder.end_row()
builder.end_table()
builder.end_bookmark("MyBookmark")

אם תשנה את שמו של סימן ספר בשם שכבר קיים במסמך, שום טעות לא תיווצר ורק הסימן הראשון יישמר בעת שמירת המסמך.

שימו לב כי מספר סימניות במסמך מוקצה ליצירת שדות. לעבור לסימן ספר כזה ולהכניס טקסט שם מכניס את הטקסט לתוך קוד שדה הטופס. למרות שזה לא יסולא את שדה הטופס, הטקסט המוכנס לא יהיה גלוי כי זה הופך לחלק קוד השדה.

הדוגמה הבאה של הקוד מראה כיצד לגשת לעמודות של השולחן המסומן:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
for bookmark in doc.range.bookmarks :
print("Bookmark: " + bookmark.name + " (Column)" if bookmark.is_column else "")
if (bookmark.is_column) :
row = bookmark.bookmark_start.get_ancestor(aw.NodeType.ROW).as_row()
if (bookmark.first_column < row.cells.count) :
print(row.cells[bookmark.first_column].get_text().trim_end(aw.ControlChar.CELL_CHAR))

לעבור לסימן ספר

אם אתה צריך להוסיף תוכן עשיר (לא רק טקסט רגיל) לתוך סימן ספר, אתה צריך להשתמש move_to_bookmark להעביר את הcursor לסימן הספר ולאחר מכן להשתמש DocumentBuilder’s שיטות ונכסים כדי להוסיף תוכן.

תגית: Hide Bookmark content

את כל סימן הספר (כולל תוכן מסומן) ניתן לשער בתוך החלק האמיתי של החלק האמיתי של IF שדה באמצעות Aspose.Words. זה יכול להיות באופן כזה IF שדה מכיל שדה Merge קינן בביטוי (Left of Operator) ובהתאם לערך של שדה Merge, השדה. IF שדה מראה או מסתיר את התוכן של סימן ספר במסמך Word.

דוגמה לקוד הבא מראה כיצד להציג / להסתיר סימני ספר:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Bookmarks.docx")
self.show_hide_bookmarked_content(doc, "MyBookmark1", False)
doc.save(docs_base.artifacts_dir + "WorkingWithBookmarks.show_hide_bookmarks.docx")
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
@staticmethod
def show_hide_bookmarked_content(doc : aw.Document, bookmarkName : str, showHide : bool) :
bm = doc.range.bookmarks.get_by_name(bookmarkName)
builder = aw.DocumentBuilder(doc)
builder.move_to_document_end()
# IF "MERGEFIELD bookmark" = "True" "" ""
field = builder.insert_field("IF \"", None)
builder.move_to(field.start.next_sibling)
builder.insert_field("MERGEFIELD " + bookmarkName + "", None)
builder.write("\" = \"True\" ")
builder.write("\"")
builder.write("\"")
builder.write(" \"\"")
currentNode = field.start
flag = True
while (currentNode != None and flag) :
if (currentNode.node_type == aw.NodeType.RUN) :
if (currentNode.to_string(aw.SaveFormat.TEXT).strip() == "\"") :
flag = False
nextNode = currentNode.next_sibling
bm.bookmark_start.parent_node.insert_before(currentNode, bm.bookmark_start)
currentNode = nextNode
endNode = bm.bookmark_end
flag = True
while (currentNode != None and flag) :
if (currentNode.node_type == aw.NodeType.FIELD_END) :
flag = False
nextNode = currentNode.next_sibling
bm.bookmark_end.parent_node.insert_after(currentNode, endNode)
endNode = currentNode
currentNode = nextNode
doc.mail_merge.execute([ bookmarkName ], [ showHide ])