הכניסו שדות

ישנן מספר דרכים שונות להכניס שדות למסמך:

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

הכנסת שדות לתוך מסמך באמצעות מסמך בניית מסמכים

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

הדוגמה הבאה של הקוד מראה כיצד להכניס שדה מיזוג למסמך באמצעות שימוש DocumentBuilder:

# 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.insert_field("MERGEFIELD MyFieldName \* MERGEFORMAT")
doc.save(docs_base.artifacts_dir + "WorkingWithFields.insert_field.docx")

הדוגמה הבאה של הקוד מראה כיצד להכניס שדה מיזוג עם המקומיים הגרמנים לתוך מסמך תוך שימוש במסמך באמצעות שימוש DocumentBuilder:

# 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)
# Insert content with German locale.
builder.font.locale_id = 1031
builder.insert_field("MERGEFIELD Date1 \\@ \"dddd, d MMMM yyyy\"")
builder.write(" - ")
builder.insert_field("MERGEFIELD Date2 \\@ \"dddd, d MMMM yyyy\"")

אותה טכניקה משמשת כדי להכניס שדות מקונן בתחומים אחרים.

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

# 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)
for i in range(0, 5) :
builder.insert_break(aw.BreakType.PAGE_BREAK)
builder.move_to_header_footer(aw.HeaderFooterType.FOOTER_PRIMARY)
# We want to insert a field like this:
# IF PAGE <> NUMPAGES "See Next Page" "Last Page"
field = builder.insert_field("IF ")
builder.move_to(field.separator)
builder.insert_field("PAGE")
builder.write(" <> ")
builder.insert_field("NUMPAGES")
builder.write(" \"See Next Page\" \"Last Page\" ")
field.update()
doc.save(docs_base.artifacts_dir + "WorkingWithFields.insert_nested_fields.docx")

המונחים: Field Level

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

דוגמה לקוד הבא מראה כיצד להשתמש באפשרות זו:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
builder = aw.DocumentBuilder()
field = builder.insert_field(aw.fields.FieldType.FIELD_DATE, True)
field.locale_id = 1049
builder.document.save(docs_base.artifacts_dir + "WorkingWithFields.specifylocale_at_fieldlevel.docx")

תגית: Untyped / Empty Field

אם אתה רוצה להוסיף שדות לא מטיפוס / mpty ({}בדיוק כמו Microsoft Word מאפשר, אתה יכול להשתמש insert_field שיטה עם FieldType.FIELD_NONE פרמטר כדי להכניס שדה למסמך Word, באפשרותך ללחוץ על “Ctrl + F9” שילוב מפתח.

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

# 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)
field = builder.insert_field(aw.fields.FieldType.FIELD_NONE, False)
doc.save(docs_base.artifacts_dir + "WorkingWithFields.insert_field_none.docx")

הכנסת שדות אל תוך מסמך באמצעות שדה בונה

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

הדוגמה הבאה של הקוד מראה כיצד להכניס שדה למסמך באמצעות FieldBuilder:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
# Prepare IF field with two nested MERGEFIELD fields: { IF "left expression" = "right expression" "Firstname: { MERGEFIELD firstname }" "Lastname: { MERGEFIELD lastname }"}
field_builder = aw.fields.FieldBuilder(aw.fields.FieldType.FIELD_IF)
field_builder.add_argument("left expression")
field_builder.add_argument("=")
field_builder.add_argument("right expression")
field_builder.add_argument(
aw.fields.FieldArgumentBuilder()
.add_text("Firstname: ")
.add_field(aw.fields.FieldBuilder(aw.fields.FieldType.FIELD_MERGE_FIELD).add_argument("firstname")))
field_builder.add_argument(
aw.fields.FieldArgumentBuilder()
.add_text("Lastname: ")
.add_field(aw.fields.FieldBuilder(aw.fields.FieldType.FIELD_MERGE_FIELD).add_argument("lastname")))
# Insert IF field in exact location
field = field_builder.build_and_insert(doc.first_section.body.first_paragraph)
field.update()
doc.save(ARTIFACTS_DIR + "Field.insert_field_using_field_builder.docx")

הכנסת שדות באמצעות DOM

ניתן גם להוסיף סוגים שונים של שדות באמצעות Aspose.Words Document Object Model (DOM). בחלק זה נבחן כמה דוגמאות.

תגית: Merge שדה לתוך מסמך באמצעות DOM

The The The MERGEFIELD שדה במסמך Word יכול להיות מיוצג על ידי FieldMergeField מעמד. אתה יכול להשתמש FieldMergeField לבצע את הפעולות הבאות:

  • שם שדה המיזוג
  • מפרט את הפורמט של שדה המיזוג
  • ציין את הטקסט כי הוא בין ניתוח השדה לבין סוף השדה של שדה המיזוג
  • ציין את הטקסט להיות מוכנס לאחר שדה המיזוג אם השדה אינו ריק
  • ציין את הטקסט להיות מוכנס לפני שדה המיזוג אם השדה אינו ריק

דוגמה לקוד הבא מראה כיצד להוסיף Merge שדה באמצעות DOM לפסקה במסמך:

# 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)
para = doc.get_child_nodes(aw.NodeType.PARAGRAPH, True)[0].as_paragraph()
builder.move_to(para)
# We want to insert a merge field like this:
# " MERGEFIELD Test1 \\b Test2 \\f Test3 \\m \\v"
field = builder.insert_field(aw.fields.FieldType.FIELD_MERGE_FIELD, False).as_field_merge_field()
# " MERGEFIELD Test1"
field.field_name = "Test1"
# " MERGEFIELD Test1 \\b Test2"
field.text_before = "Test2"
# " MERGEFIELD Test1 \\b Test2 \\f Test3
field.text_after = "Test3"
# " MERGEFIELD Test1 \\b Test2 \\f Test3 \\m"
field.is_mapped = True
# " MERGEFIELD Test1 \\b Test2 \\f Test3 \\m \\v"
field.is_vertical_formatting = True
field.update()
doc.save(docs_base.artifacts_dir + "WorkingWithFields.insert_merge_field_using_dom.docx")

הכנסת Mail Merge ADDRESSBLOCK שדה לתוך מסמך באמצעות DOM

The The The ADDRESSBLOCK שדה משמש כדי להוסיף Mail Merge כתובת בלוק במסמך Word ADDRESSBLOCK שדה במסמך Word יכול להיות מיוצג על ידי FieldAddressBlock מעמד. אתה יכול להשתמש FieldAddressBlock לבצע את הפעולות הבאות:

  • ציין האם לכלול את שם המדינה/אזור בשדה
  • ציין אם לעצב את הכתובת לפי המדינה / הרגולציה של המקבל כפי שהוגדר על ידי POST*CODE (Universal Postal Union 2006)
  • שם המדינה/region
  • מפרט את שם וכתובת
  • ציין את מזהה השפה המשמש כדי לעצב את הכתובת

הדוגמה הבאה מציגה כיצד להוסיף Mail Merge ADDRESSBLOCK שדה באמצעות DOM לפסקה במסמך:

# 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)
para = doc.get_child_nodes(aw.NodeType.PARAGRAPH, True)[0].as_paragraph()
builder.move_to(para)
# We want to insert a mail merge address block like this:
# ADDRESSBLOCK \\c 1 \\d \\e Test2 \\f Test3 \\l \"Test 4\"
field = builder.insert_field(aw.fields.FieldType.FIELD_ADDRESS_BLOCK, False).as_field_address_block()
# ADDRESSBLOCK \\c 1"
field.include_country_or_region_name = "1"
# ADDRESSBLOCK \\c 1 \\d"
field.format_address_on_country_or_region = True
# ADDRESSBLOCK \\c 1 \\d \\e Test2
field.excluded_country_or_region_name = "Test2"
# ADDRESSBLOCK \\c 1 \\d \\e Test2 \\f Test3
field.name_and_address_format = "Test3"
# ADDRESSBLOCK \\c 1 \\d \\e Test2 \\f Test3 \\l \"Test 4\"
field.language_id = "Test 4"
field.update()
doc.save(docs_base.artifacts_dir + "WorkingWithFields.insert_mail_merge_address_block_field_using_dom.docx")

הכנסת ADVANCE שטח אל תוך מסמך מבלי להשתמש ב- DocumentBuilder

The The The ADVANCE שדה משמש כדי להתחיל טקסט לאחר מכן בתוך קו לשמאל, ימין, למעלה או למטה. The The The ADVANCE שדה במסמך Word יכול להיות מיוצג על ידי FieldAdvance מעמד. אתה יכול להשתמש FieldAdvance לבצע את הפעולות הבאות:

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

הדוגמה הבאה מציגה כיצד להוסיף ADVANCE שדה באמצעות DOM לפסקה במסמך.

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
para = doc.get_child_nodes(aw.NodeType.PARAGRAPH, True)[0].as_paragraph()
# We want to insert an Advance field like this:
# ADVANCE \\d 10 \\l 10 \\r -3.3 \\u 0 \\x 100 \\y 100
field = para.append_field(aw.fields.FieldType.FIELD_ADVANCE, False).as_field_advance()
# ADVANCE \\d 10 "
field.down_offset = "10"
# ADVANCE \\d 10 \\l 10
field.left_offset = "10"
# ADVANCE \\d 10 \\l 10 \\r -3.3
field.right_offset = "-3.3"
# ADVANCE \\d 10 \\l 10 \\r -3.3 \\u 0
field.up_offset = "0"
# ADVANCE \\d 10 \\l 10 \\r -3.3 \\u 0 \\x 100
field.horizontal_position = "100"
# ADVANCE \\d 10 \\l 10 \\r -3.3 \\u 0 \\x 100 \\y 100
field.vertical_position = "100"
field.update()
doc.save(docs_base.artifacts_dir + "WorkingWithFields.insert_advance_field_with_out_document_builder.docx")

הכנסת ASK שטח אל תוך מסמך מבלי להשתמש ב- DocumentBuilder

The The The ASK שדה משמש כדי להניע את המשתמש לטקסט כדי להקצות לסימן ספר במסמך Word. ASK שדה במסמך Word יכול להיות מיוצג על ידי FieldAsk מעמד. אתה יכול להשתמש FieldAsk לבצע את הפעולות הבאות:

  • שם הספר
  • ציין תגובה למשתמש ברירת מחדל (ערך חיוני הכלול בחלון המהיר)
  • ציין האם יש לקבל את תגובת המשתמש פעם אחת לכל Mail Merge המבצע
  • ציין את הטקסט המהיר (שם החלון המהיר)

הדוגמה הבאה מציגה כיצד להוסיף ASK שדה באמצעות DOM לפסקה במסמך:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
para = doc.get_child_nodes(aw.NodeType.PARAGRAPH, True)[0].as_paragraph()
# We want to insert an Ask field like this:
# ASK \"Test 1\" Test2 \\d Test3 \\o
field = para.append_field(aw.fields.FieldType.FIELD_ASK, False).as_field_ask()
# ASK \"Test 1\" "
field.bookmark_name = "Test 1"
# ASK \"Test 1\" Test2
field.prompt_text = "Test2"
# ASK \"Test 1\" Test2 \\d Test3
field.default_response = "Test3"
# ASK \"Test 1\" Test2 \\d Test3 \\o
field.prompt_once_on_mail_merge = True
field.update()
doc.save(docs_base.artifacts_dir + "WorkingWithFields.insert_ask_field_with_out_document_builder.docx")

הכנסת AUTHOR שטח אל תוך מסמך מבלי להשתמש ב- DocumentBuilder

The The The AUTHOR שדה משמש כדי לציין את שם המחבר של המסמך מן Document תכונות. The The The AUTHOR שדה במסמך Word יכול להיות מיוצג על ידי FieldAuthor מעמד. אתה יכול להשתמש FieldAuthor לבצע את הפעולות הבאות:

  • שם המחבר

הדוגמה הבאה מציגה כיצד להוסיף AUTHOR שדה באמצעות DOM לפסקה במסמך:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
para = doc.get_child_nodes(aw.NodeType.PARAGRAPH, True)[0].as_paragraph()
# We want to insert an AUTHOR field like this:
# AUTHOR Test1
field = para.append_field(aw.fields.FieldType.FIELD_AUTHOR, False).as_field_author()
field.author_name = "Test1" # AUTHOR Test1
field.update()
doc.save(docs_base.artifacts_dir + "WorkingWithFields.insert_author_field.docx")

הכנסת INCLUDETEXT שטח אל תוך מסמך מבלי להשתמש ב- DocumentBuilder

The The The INCLUDETEXT שדה מוסיף את הטקסט והגרפיקה הכלולים במסמך בשם קוד השדה. באפשרותך להוסיף את המסמך כולו או חלק מהמסמכים המוזכרים בסימן ספר. שדה זה במסמך Word מיוצג על ידי INCLUDETEXT. אתה יכול להשתמש FieldIncludeText לבצע את הפעולות הבאות:

  • שם הספר של המסמך
  • לציין את המיקום של המסמך

הדוגמה הבאה מציגה כיצד להוסיף INCLUDETEXT שדה באמצעות DOM לפסקה במסמך:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
para = aw.Paragraph(doc)
# We want to insert an INCLUDETEXT field like this:
# INCLUDETEXT "file path"
fieldIncludeText = para.append_field(aw.fields.FieldType.FIELD_INCLUDE_TEXT, False).as_field_include_text()
fieldIncludeText.bookmark_name = "bookmark"
fieldIncludeText.source_full_name = docs_base.my_dir + "IncludeText.docx"
doc.first_section.body.append_child(para)
fieldIncludeText.update()
doc.save(docs_base.artifacts_dir + "WorkingWithFields.insert_include_field_without_document_builder.docx")

הכנסת TOA שטח אל תוך מסמך מבלי להשתמש ב- DocumentBuilder

The The The TOA (אפשרות הרשויות) בונה ומכניסת שולחן של רשויות. The The The TOA שדה אוסף ערכים המסומנים על ידי TA (אפשרות כניסה לרשויות) Microsoft Office Word מוסיף TOA שדה כאשר אתה לוחץ *שולחן אינסטלציה של הרשויות * שולחן הרשויות הקבוצה על References הכרטיסיה כשאתם רואים את TOA שדה במסמך שלך, הסינמס נראה כך:

{ TOA [Switches ] }

אתה יכול להשתמש FieldToa שיעור לבצע את הפעולות עם TOA שדה.

הדוגמה הבאה מציגה כיצד להוסיף TOA שדה באמצעות DOM לפסקה במסמך:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
para = aw.Paragraph(doc)
# We want to insert TA and TOA fields like this:
# TA \c 1 \l "Value 0"
# TOA \c 1
fieldTA = para.append_field(aw.fields.FieldType.FIELD_TOAENTRY, False).as_field_ta()
fieldTA.entry_category = "1"
fieldTA.long_citation = "Value 0"
doc.first_section.body.append_child(para)
para = aw.Paragraph(doc)
fieldToa = para.append_field(aw.fields.FieldType.FIELD_TOA, False).as_field_toa()
fieldToa.entry_category = "1"
doc.first_section.body.append_child(para)
fieldToa.update()
doc.save(docs_base.artifacts_dir + "WorkingWithFields.insert_toa_field_without_document_builder.docx")