Вставити поля

Є кілька різних способів вставити поля в документ:

У цій статті ми розглянемо кожен спосіб більш детально і аналізуємо, як вставляти певні поля за допомогою цих параметрів.

Введення полів у документ з використанням DocumentBuilder

У Aspose.Words Про нас insert_field метод використовується для вставки нових полів в документ. Перший параметр приймає повне поле коду поля, щоб бути вставленим. Другий параметр є обов’язковим і дозволяє польовий результат поля, щоб встановити вручну. Якщо це не подається, то поле автоматично оновлюється. Ви можете пройти null або порожній до цього параметра, щоб вставити поле з порожнім значенням поля. Якщо ви не впевнені, що конкретний код поля синтаксису, створюємо поле в 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")

Вказати місцевість на рівні поля

English, Українська, Français… З Aspose.Words, Ви можете вказати Локація на рівні поля. Про нас 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")

Вставити нетипове поле

Якщо ви хочете вставити нетипові / порожні поля ({}) так само як 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")

Введення полів в документ з використанням FieldBuilder

Альтернативний спосіб вставити поля в 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)й В цьому розділі ми розглянемо кілька прикладів.

Вставки Поле в документ з використанням DOM

Про нас 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

Про нас ADDRESSBLOCK поле використовується для вставки Mail Merge адресний блок у документі Word. ADDRESSBLOCK поле в документі Word може бути представлений FieldAddressBlock клас. Ви можете використовувати FieldAddressBlock Клас виконання наступних операцій:

  • вкажіть, чи вкажіть ім’я країни/регіон в полі
  • вкажіть, чи відформатувати адресу відповідно до країни/регіону одержувача, визначеної POST*CODE (Універсальний поштовий союз 2006)
  • вкажіть назву виключеної країни/регіону
  • вказати назву та формат адреси
  • вказати ідентифікатор мови, який використовується для форматування адреси

Приклад наступного коду показує, як додати 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 JavaScript licenses API Веб-сайт Go1.13.8

Про нас ADVANCE поле використовується для відключення наступного тексту в рядок зліва, праворуч, вгору або вниз. Про нас 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 JavaScript licenses API Веб-сайт Go1.13.8

Про нас 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 JavaScript licenses API Веб-сайт Go1.13.8

Про нас AUTHOR поле використовується для позначення імені автора документа з документа Document властивості. Про нас 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 JavaScript licenses API Веб-сайт Go1.13.8

Про нас 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 JavaScript licenses API Веб-сайт Go1.13.8

Про нас TOA (Включення повноважень) польових споруд та вставок таблиці органів влади. Про нас 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")