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

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

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

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

У Aspose.Words Про нас InsertField метод використовується для вставки нових полів в документ. Перший параметр приймає повне поле коду поля, щоб бути вставленим. Другий параметр є обов’язковим і дозволяє польовим результатам поля, щоб встановити вручну. Якщо це не подається, то поле автоматично оновлюється. Ви можете пройти null або порожній до цього параметра, щоб вставити поле з порожнім значенням поля. Якщо ви не впевнені, що конкретний код поля синтаксису, створюємо поле в Microsoft Word спочатку і переключіть, щоб побачити свій код поля.

Приклад коду показує, як вставити поле злиття в документ, використовуючи DocumentBuilder:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// The path to the documents directory.
String dataDir = Utils.getDataDir(InsertField.class);
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.insertField("MERGEFIELD MyFieldName \\* MERGEFORMAT");
doc.save(dataDir + "output.docx");

Така ж техніка використовується для вставок полів, що приводяться в інші поля.

Наприклад, наступний код показує, як вставити поля, що містяться в іншому полі, використовуючи DocumentBuilder:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
for (int i = 0; i < 5; i++)
builder.insertBreak(BreakType.PAGE_BREAK);
builder.moveToHeaderFooter(HeaderFooterType.FOOTER_PRIMARY);
// We want to insert a field like this:
// { IF {PAGE} <> {NUMPAGES} "See Next Page" "Last Page" }
Field field = builder.insertField("IF ");
builder.moveTo(field.getSeparator());
builder.insertField("PAGE");
builder.write(" <> ");
builder.insertField("NUMPAGES");
builder.write(" \"See Next Page\" \"Last Page\" ");
field.update();
doc.save(getArtifactsDir() + "WorkingWithFields.InsertNestedFields.docx");

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

English, Українська, Français… З Aspose.Words, Ви можете вказати Locale на рівні поля, використовуючи LocaleId майно, яке отримує або встановлює місцевий ідентифікатор поля.

Приклад коду показує, як використовувати цей варіант:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
DocumentBuilder builder = new DocumentBuilder();
Field field = builder.insertField(FieldType.FIELD_DATE, true);
field.setLocaleId(1049);
builder.getDocument().save(getArtifactsDir() + "WorkingWithFields.SpecifylocaleAtFieldlevel.docx");

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

Якщо ви хочете вставити нетипові / порожні поля ({}) так само як Microsoft Word дозволяє, ви можете використовувати InsertField метод з FieldType.FieldNone параметр. Щоб вставити поле в документ Word, ви можете натиснути клавішу “Ctrl + F9”.

Приклад коду показує, як вставити порожні поля в документ:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
FieldUnknown field = (FieldUnknown) builder.insertField(FieldType.FIELD_NONE, false);
doc.save(getArtifactsDir() + "WorkingWithFields.InsertFieldNone.docx");

Вставити COMPARE Сфера

Про нас COMPARE поле порівнює два значення і повертає числовий значення 1, якщо порівняння true або 0 якщо порівняння falseй

Приклад наступного коду показує, як додати COMPARE поля з використанням DocumentBuilder:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
FieldCompare field = (FieldCompare) builder.insertField(FieldType.FIELD_COMPARE, true);
field.setLeftExpression("3");
field.setComparisonOperator("<");
field.setRightExpression("2");
field.update();
builder.writeln();
field = (FieldCompare) builder.insertField(FieldType.FIELD_COMPARE, true);
field.setLeftExpression("5");
field.setComparisonOperator("=");
field.setRightExpression("2 + 3");
field.update();
doc.updateFields();
doc.save(getArtifactsDir() + "Field.COMPARE.docx");

Вставити IF Сфера

Про нас IF поле можна використовувати для оцінки аргументів умовно.

Приклад наступного коду показує, як додати IF поля з використанням DocumentBuilder:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.write("Statement 1: ");
FieldIf field = (FieldIf) builder.insertField(FieldType.FIELD_IF, true);
field.setLeftExpression("0");
field.setComparisonOperator("=");
field.setRightExpression("1");
// The IF field will display a string from either its "TrueText" property,
// or its "FalseText" property, depending on the truth of the statement that we have constructed.
field.setTrueText("True");
field.setFalseText("False");
field.update();
builder.write("\nStatement 2: ");
field = (FieldIf) builder.insertField(FieldType.FIELD_IF, true);
field.setLeftExpression("5");
field.setComparisonOperator("=");
field.setRightExpression("2 + 3");
field.setTrueText("True");
field.setFalseText("False");
field.update();
doc.updateFields();
doc.save(getArtifactsDir() + "Field.IF.docx");

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

Альтернативний спосіб вставити поля в Aspose.Words є FieldBuilder клас. Він надає швидкий інтерфейс, щоб вказати значення поля та значення аргументів, як текст, вершини або навіть вкладені поля.

Приклад наступного коду показує, як вставити поле в документ, використовуючи FieldBuilder:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
FieldBuilder firstName = new FieldBuilder(FieldType.FIELD_MERGE_FIELD);
firstName.addArgument("firstname");
FieldBuilder lastName = new FieldBuilder(FieldType.FIELD_MERGE_FIELD);
lastName.addArgument("lastname");
FieldArgumentBuilder firstnameArgumentBuilder = new FieldArgumentBuilder();
firstnameArgumentBuilder.addText("Firstname: ");
firstnameArgumentBuilder.addField(firstName);
FieldArgumentBuilder lastnameArgumentBuilder = new FieldArgumentBuilder();
lastnameArgumentBuilder.addText("Lastname: ");
lastnameArgumentBuilder.addField(lastName);
// Prepare IF field with two nested MERGEFIELD fields: { IF "left expression" = "right expression" "Firstname: { MERGEFIELD firstname }" "Lastname: { MERGEFIELD lastname }"}
FieldBuilder fieldBuilder = new FieldBuilder(FieldType.FIELD_IF);
fieldBuilder.addArgument("left expression");
fieldBuilder.addArgument("=");
fieldBuilder.addArgument("right expression");
fieldBuilder.addArgument(firstnameArgumentBuilder);
fieldBuilder.addArgument(lastnameArgumentBuilder);
// Insert IF field in exact location
Field field = fieldBuilder.buildAndInsert(doc.getFirstSection().getBody().getFirstParagraph());
field.update();
doc.save(getArtifactsDir() + "Field.InsertFieldUsingFieldBuilder.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-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Paragraph para = (Paragraph) doc.getChildNodes(NodeType.PARAGRAPH, true).get(0);
builder.moveTo(para);
// We want to insert a merge field like this:
// { " MERGEFIELD Test1 \\b Test2 \\f Test3 \\m \\v" }
FieldMergeField field = (FieldMergeField) builder.insertField(FieldType.FIELD_MERGE_FIELD, false);
// { " MERGEFIELD Test1" }
field.setFieldName("Test1");
// { " MERGEFIELD Test1 \\b Test2" }
field.setTextBefore("Test2");
// { " MERGEFIELD Test1 \\b Test2 \\f Test3 }
field.setTextAfter("Test3");
// { " MERGEFIELD Test1 \\b Test2 \\f Test3 \\m" }
field.isMapped(true);
// { " MERGEFIELD Test1 \\b Test2 \\f Test3 \\m \\v" }
field.isVerticalFormatting(true);
field.update();
doc.save(getArtifactsDir() + "WorkingWithFields.InsertMergeFieldUsingDOM.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-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Paragraph para = (Paragraph) doc.getChildNodes(NodeType.PARAGRAPH, true).get(0);
builder.moveTo(para);
// We want to insert a mail merge address block like this:
// { ADDRESSBLOCK \\c 1 \\d \\e Test2 \\f Test3 \\l \"Test 4\" }
FieldAddressBlock field = (FieldAddressBlock) builder.insertField(FieldType.FIELD_ADDRESS_BLOCK, false);
// { ADDRESSBLOCK \\c 1" }
field.setIncludeCountryOrRegionName("1");
// { ADDRESSBLOCK \\c 1 \\d" }
field.setFormatAddressOnCountryOrRegion(true);
// { ADDRESSBLOCK \\c 1 \\d \\e Test2 }
field.setExcludedCountryOrRegionName("Test2");
// { ADDRESSBLOCK \\c 1 \\d \\e Test2 \\f Test3 }
field.setNameAndAddressFormat("Test3");
// { ADDRESSBLOCK \\c 1 \\d \\e Test2 \\f Test3 \\l \"Test 4\" }
field.setLanguageId("Test 4");
field.update();
doc.save(getArtifactsDir() + "WorkingWithFields.InsertMailMergeAddressBlockFieldUsingDOM.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-Java
Document doc = new Document();
Paragraph para = (Paragraph) doc.getChildNodes(NodeType.PARAGRAPH, true).get(0);
// We want to insert an Advance field like this:
// { ADVANCE \\d 10 \\l 10 \\r -3.3 \\u 0 \\x 100 \\y 100 }
FieldAdvance field = (FieldAdvance) para.appendField(FieldType.FIELD_ADVANCE, false);
// { ADVANCE \\d 10 " }
field.setDownOffset("10");
// { ADVANCE \\d 10 \\l 10 }
field.setLeftOffset("10");
// { ADVANCE \\d 10 \\l 10 \\r -3.3 }
field.setRightOffset("-3.3");
// { ADVANCE \\d 10 \\l 10 \\r -3.3 \\u 0 }
field.setUpOffset("0");
// { ADVANCE \\d 10 \\l 10 \\r -3.3 \\u 0 \\x 100 }
field.setHorizontalPosition("100");
// { ADVANCE \\d 10 \\l 10 \\r -3.3 \\u 0 \\x 100 \\y 100 }
field.setVerticalPosition("100");
field.update();
doc.save(getArtifactsDir() + "WorkingWithFields.InsertAdvanceFieldWithOutDocumentBuilder.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-Java
Document doc = new Document();
Paragraph para = (Paragraph) doc.getChildNodes(NodeType.PARAGRAPH, true).get(0);
// We want to insert an Ask field like this:
// { ASK \"Test 1\" Test2 \\d Test3 \\o }
FieldAsk field = (FieldAsk) para.appendField(FieldType.FIELD_ASK, false);
// { ASK \"Test 1\" " }
field.setBookmarkName("Test 1");
// { ASK \"Test 1\" Test2 }
field.setPromptText("Test2");
// { ASK \"Test 1\" Test2 \\d Test3 }
field.setDefaultResponse("Test3");
// { ASK \"Test 1\" Test2 \\d Test3 \\o }
field.setPromptOnceOnMailMerge(true);
field.update();
doc.save(getArtifactsDir() + "WorkingWithFields.InsertASKFieldWithOutDocumentBuilder.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-Java
Document doc = new Document();
Paragraph para = (Paragraph) doc.getChildNodes(NodeType.PARAGRAPH, true).get(0);
// We want to insert an AUTHOR field like this:
// { AUTHOR Test1 }
FieldAuthor field = (FieldAuthor) para.appendField(FieldType.FIELD_AUTHOR, false);
field.setAuthorName("Test1"); // { AUTHOR Test1 }
field.update();
doc.save(getArtifactsDir() + "WorkingWithFields.InsertAuthorField.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-Java
Document doc = new Document();
Paragraph para = new Paragraph(doc);
// We want to insert an INCLUDETEXT field like this:
// { INCLUDETEXT "file path" }
FieldIncludeText fieldIncludeText = (FieldIncludeText) para.appendField(FieldType.FIELD_INCLUDE_TEXT, false);
fieldIncludeText.setBookmarkName("bookmark");
fieldIncludeText.setSourceFullName(getMyDir() + "IncludeText.docx");
doc.getFirstSection().getBody().appendChild(para);
fieldIncludeText.update();
doc.save(getArtifactsDir() + "WorkingWithFields.InsertIncludeFieldWithoutDocumentBuilder.docx");

Вставки TOA JavaScript licenses API Веб-сайт Go1.13.8

Про нас TOA (Включення повноважень) польових споруд та вставок таблиці органів влади. Про нас TOA поле збирає записи, позначені TA (Включення полів авторських прав) Microsoft Office Word вставляє TOA поле, коли ви натискаєте Вставити таблицю авторів в Таблиця повноважень група на References Увійти Коли ви переглядаєте TOA поле в документі, синтаксис виглядає так:

{ TOA [Switches ] }

Приклад коду показує, як додати TOA використання поля DOM до пункту у документі.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
Paragraph para = new Paragraph(doc);
// We want to insert TA and TOA fields like this:
// { TA \c 1 \l "Value 0" }
// { TOA \c 1 }
FieldTA fieldTA = (FieldTA) para.appendField(FieldType.FIELD_TOA_ENTRY, false);
fieldTA.setEntryCategory("1");
fieldTA.setLongCitation("Value 0");
doc.getFirstSection().getBody().appendChild(para);
para = new Paragraph(doc);
FieldToa fieldToa = (FieldToa) para.appendField(FieldType.FIELD_TOA, false);
fieldToa.setEntryCategory("1");
doc.getFirstSection().getBody().appendChild(para);
fieldToa.update();
doc.save(getArtifactsDir() + "WorkingWithFields.InsertTOAFieldWithoutDocumentBuilder.docx");