Mail Merge Шаблон

Обычно шаблон слияния используется в качестве базового документа для операции Mail Merge, если это простой Mail Merge или Mail Merge с регионами. Mail merge с регионами является более эффективным и популярным способом, чем простой mail merge. Простой Mail Merge рассматривается как частный случай Mail Merge с областями, где областью является весь документ. Более подробно все объясняется в следующей статье “Типы операций Mail Merge”.

Шаблон гарантирует, что текст в выходном объединенном документе отформатирован правильно, а операция Mail Merge гарантирует, что текст из источника данных правильно введен в шаблон объединения.

Aspose.Words предоставляет возможность создать шаблон Mail Merge для определения фиксированного содержимого и последующего создания документов слияния с использованием полей слияния. Таким образом, шаблон слияния будет содержать необходимый текст, который будет одинаковым во всех выходных документах, и поля слияния для заполнения изменяющегося содержимого. В результате информация из указанного источника данных будет добавлена в шаблон объединения через эти поля во время создания объединенного документа.

Что такое шаблон Mail Merge

Шаблон Mail Merge - это персонализированный документ, содержащий фиксированные данные и объединенные поля, в которых вы хотите разместить изменяемый текст. Шаблон слияния может быть в любом формате, поддерживающем поля, например, DOC, DOCX, DOT, DOTX, RTF. Кроме того, вы также можете использовать шаблон mustache, который более подробно описан в статье “Синтаксис шаблона Mustache”.

Вы можете создать шаблон объединения, который будет служить образцом для новых документов, и он должен включать основной текст, который должен быть одинаковым для каждой версии объединяемого документа. Добавление полей объединения в шаблон будет представлять данные персонализации, такие как имена или адреса, которые извлекаются из источника данных. Операция Mail Merge автоматически вставит данные персонализации из вашего источника данных в документ шаблона слияния.

Кроме того, вы можете добавить регион Mail Merge в свой шаблон, вставив два поля Mail Merge, чтобы отметить начало и конец почтового региона. В следующей статье “Типы операций Mail Merge” это объясняется более подробно.

Создайте шаблон Mail Merge

Вы можете создать шаблон и добавить в него определенные поля слияния, которые будут заменены значениями из источника данных либо вручную, например, с помощью Microsoft Word, либо программно, используя Aspose.Words. В этой статье мы рассмотрим программный способ создания шаблона.

Используйте класс DocumentBuilder, чтобы создать необходимый шаблон слияния с помощью Aspose.Words. Вы можете включить текст, поле для объединения и разрыв строки в такой шаблон, используя методы InsertTextInput, InsertField, и InsertParagraph.

В следующем примере кода показано, как создать шаблон Mail Merge:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
public static Document CreateMailMergeTemplate() throws Exception {
DocumentBuilder builder = new DocumentBuilder();
// Insert a text input field the unique name of this field is "Hello", the other parameters define
// what type of FormField it is, the format of the text, the field result and the maximum text length (0 = no limit)
builder.insertTextInput("TextInput", TextFormFieldType.REGULAR, "", "Hello", 0);
builder.insertField("MERGEFIELD CustomerFirstName \\* MERGEFORMAT");
builder.insertTextInput("TextInput1", TextFormFieldType.REGULAR, "", " ", 0);
builder.insertField("MERGEFIELD CustomerLastName \\* MERGEFORMAT");
builder.insertTextInput("TextInput1", TextFormFieldType.REGULAR, "", " , ", 0);
// Inserts a paragraph break into the document
builder.insertParagraph();
// Insert mail body
builder.insertTextInput("TextInput", TextFormFieldType.REGULAR, "", "Thanks for purchasing our ", 0);
builder.insertField("MERGEFIELD ProductName \\* MERGEFORMAT");
builder.insertTextInput("TextInput", TextFormFieldType.REGULAR, "", ", please download your Invoice at ",
0);
builder.insertField("MERGEFIELD InvoiceURL \\* MERGEFORMAT");
builder.insertTextInput("TextInput", TextFormFieldType.REGULAR, "",
". If you have any questions please call ", 0);
builder.insertField("MERGEFIELD Supportphone \\* MERGEFORMAT");
builder.insertTextInput("TextInput", TextFormFieldType.REGULAR, "", ", or email us at ", 0);
builder.insertField("MERGEFIELD SupportEmail \\* MERGEFORMAT");
builder.insertTextInput("TextInput", TextFormFieldType.REGULAR, "", ".", 0);
builder.insertParagraph();
// Insert mail ending
builder.insertTextInput("TextInput", TextFormFieldType.REGULAR, "", "Best regards,", 0);
builder.insertBreak(BreakType.LINE_BREAK);
builder.insertField("MERGEFIELD EmployeeFullname \\* MERGEFORMAT");
builder.insertTextInput("TextInput1", TextFormFieldType.REGULAR, "", " ", 0);
builder.insertField("MERGEFIELD EmployeeDepartment \\* MERGEFORMAT");
return builder.getDocument();
}

На рисунке ниже показан созданный шаблон:

mail_merge_template_aspose_words_java

Настройка свойств шаблона Mail Merge

Aspose.Words позволяет настраивать ваш шаблон с помощью множества свойств. Настройка шаблона будет описана ниже на примере настройки некоторых свойств изображений и текста.

Настройка свойств изображения

Вы можете указать свойства изображения, используя класс ImageFieldMergingArgs. Обратите внимание, что вы можете вставить изображение из базы данных, как описано в Aspose.Words GitHub.

В следующем примере кода показано, как указать имя файла изображения и размер изображения:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
public void imageFieldMerging(ImageFieldMergingArgs args) throws Exception {
args.setImageFileName("Image.png");
args.setImageWidth(new MergeFieldImageDimension(200, MergeFieldImageDimensionUnit.POINT));
args.setImageHeight(new MergeFieldImageDimension(200, MergeFieldImageDimensionUnit.PERCENT));
}

Настройка свойств текста

Вы можете использовать классы [Текст]https://reference.aspose.com/words/java/com.aspose.words/Fieldmergingargs#Text ) связь для введения текста в текст для текучего поля обьединения. Кроме того, вы можете изменить форматирование текстов и абзацев внутри вашего шаблона, используя Шрифт и ParagraphFormat. Вы можете обрабатывать текст, который будет вставлен до или после поля объединения, используя свойства TextBefore и TextAfter, которые включены в класс FieldMergeField.

В следующем примере кода показано, как вставлять флажки или HTML во время операции Mail Merge:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(getMyDir() + "Mail merge destinations - Fax.docx");
// Setup mail merge event handler to do the custom work.
doc.getMailMerge().setFieldMergingCallback(new HandleMergeField());
// Trim trailing and leading whitespaces mail merge values.
doc.getMailMerge().setTrimWhitespaces(false);
String[] fieldNames = {
"RecipientName", "SenderName", "FaxNumber", "PhoneNumber",
"Subject", "Body", "Urgent", "ForReview", "PleaseComment"
};
Object[] fieldValues = {
"Josh", "Jenny", "123456789", "", "Hello",
"<b>HTML Body Test message 1</b>", true, false, true
};
doc.getMailMerge().execute(fieldNames, fieldValues);
doc.save(getArtifactsDir() + "WorkingWithFields.MailMergeFormFields.docx");

Смотрите также

  • Для получения более подробной информации о том, как создавать шаблоны в Microsoft Word вручную, пожалуйста, ознакомьтесь со статьей Создать шаблон в документации Microsoft