public class MailMergerContext extends ProcessorContext
Examples:
Shows how to do mail merge operation for a single record using context.
// There is a several ways to do mail merge operation:
String doc = getMyDir() + "Mail merge.doc";
String[] fieldNames = new String[]{"FirstName", "Location", "SpecialCharsInName()"};
String[] fieldValues = new String[]{"James Bond", "London", "Classified"};
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setSimpleDataSource(fieldNames, fieldValues);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
MailMerger.create(mailMergerContext)
.from(doc)
.to(getArtifactsDir() + "LowCode.MailMergeContext.docx")
.execute();
Shows how to do mail merge operation from a DataTable using context.
// There is a several ways to do mail merge operation from a DataTable:
String doc = getMyDir() + "Mail merge.doc";
DataTable dataTable = new DataTable();
dataTable.getColumns().add("FirstName");
dataTable.getColumns().add("Location");
dataTable.getColumns().add("SpecialCharsInName()");
dataTable.getRows().add(new String[]{"James Bond", "London", "Classified"});
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setSimpleDataSource(dataTable);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
MailMerger.create(mailMergerContext)
.from(doc)
.to(getArtifactsDir() + "LowCode.MailMergeContextDataTable.docx")
.execute();
Shows how to do mail merge operation from a DataRow using context.
// There is a several ways to do mail merge operation from a DataRow:
String doc = getMyDir() + "Mail merge.doc";
DataTable dataTable = new DataTable();
dataTable.getColumns().add("FirstName");
dataTable.getColumns().add("Location");
dataTable.getColumns().add("SpecialCharsInName()");
dataTable.getRows().add(new String[]{"James Bond", "London", "Classified"});
DataRow dataRow = dataTable.getRows().get(0);
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setSimpleDataSource(dataRow);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
MailMerger.create(mailMergerContext)
.from(doc)
.to(getArtifactsDir() + "LowCode.MailMergeContextDataRow.docx")
.execute();
Shows how to do mail merge with regions operation from a DataTable using context.
// There is a several ways to do mail merge with regions operation from a DataTable:
String doc = getMyDir() + "Mail merge with regions.docx";
DataTable dataTable = new DataTable("MyTable");
dataTable.getColumns().add("FirstName");
dataTable.getColumns().add("LastName");
dataTable.getRows().add(new Object[]{"John", "Doe"});
dataTable.getRows().add(new Object[]{"", ""});
dataTable.getRows().add(new Object[]{"Jane", "Doe"});
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setRegionsDataSource(dataTable);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
MailMerger.create(mailMergerContext)
.from(doc)
.to(getArtifactsDir() + "LowCode.MailMergeContextWithRegionsDataTable.docx")
.execute();
Shows how to do mail merge operation for a single record from the stream using context.
// There is a several ways to do mail merge operation using documents from the stream:
String[] fieldNames = new String[]{"FirstName", "Location", "SpecialCharsInName()"};
String[] fieldValues = new String[]{"James Bond", "London", "Classified"};
try (FileInputStream streamIn = new FileInputStream(getMyDir() + "Mail merge.doc")) {
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setSimpleDataSource(fieldNames, fieldValues);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
try (FileOutputStream streamOut = new FileOutputStream(getArtifactsDir() + "LowCode.MailMergeContextStream.docx")) {
MailMerger.create(mailMergerContext)
.from(streamIn)
.to(streamOut, SaveFormat.DOCX)
.execute();
}
}
Shows how to do mail merge operation from a DataTable using documents from the stream using context.
// There is a several ways to do mail merge operation from a DataTable using documents from the stream:
DataTable dataTable = new DataTable();
dataTable.getColumns().add("FirstName");
dataTable.getColumns().add("Location");
dataTable.getColumns().add("SpecialCharsInName()");
dataTable.getRows().add(new String[]{"James Bond", "London", "Classified"});
try (FileInputStream streamIn = new FileInputStream(getMyDir() + "Mail merge.doc")) {
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setSimpleDataSource(dataTable);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
try (FileOutputStream streamOut = new FileOutputStream(getArtifactsDir() + "LowCode.MailMergeContextStreamDataTable.docx")) {
MailMerger.create(mailMergerContext)
.from(streamIn)
.to(streamOut, SaveFormat.DOCX)
.execute();
}
}
Shows how to do mail merge operation from a DataRow using documents from the stream using context.
// There is a several ways to do mail merge operation from a DataRow using documents from the stream:
DataTable dataTable = new DataTable();
dataTable.getColumns().add("FirstName");
dataTable.getColumns().add("Location");
dataTable.getColumns().add("SpecialCharsInName()");
dataTable.getRows().add(new String[]{"James Bond", "London", "Classified"});
DataRow dataRow = dataTable.getRows().get(0);
try (FileInputStream streamIn = new FileInputStream(getMyDir() + "Mail merge.doc")) {
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setSimpleDataSource(dataRow);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
try (FileOutputStream streamOut = new FileOutputStream(getArtifactsDir() + "LowCode.MailMergeContextStreamDataRow.docx")) {
MailMerger.create(mailMergerContext)
.from(streamIn)
.to(streamOut, SaveFormat.DOCX)
.execute();
}
}
Shows how to do mail merge with regions operation from a DataTable using documents from the stream using context.
// There is a several ways to do mail merge with regions operation from a DataTable using documents from the stream:
DataTable dataTable = new DataTable("MyTable");
dataTable.getColumns().add("FirstName");
dataTable.getColumns().add("LastName");
dataTable.getRows().add(new Object[]{"John", "Doe"});
dataTable.getRows().add(new Object[]{"", ""});
dataTable.getRows().add(new Object[]{"Jane", "Doe"});
try (FileInputStream streamIn = new FileInputStream(getMyDir() + "Mail merge.doc")) {
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setRegionsDataSource(dataTable);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
try (FileOutputStream streamOut = new FileOutputStream(getArtifactsDir() + "LowCode.MailMergeContextStreamWithRegionsDataTable.docx")) {
MailMerger.create(mailMergerContext)
.from(streamIn)
.to(streamOut, SaveFormat.DOCX)
.execute();
}
}
Shows how to do mail merge with regions operation from a DataSet using context.
// There is a several ways to do mail merge with regions operation from a DataSet:
String doc = getMyDir() + "Mail merge with regions data set.docx";
DataTable tableCustomers = new DataTable("Customers");
tableCustomers.getColumns().add("CustomerID");
tableCustomers.getColumns().add("CustomerName");
tableCustomers.getRows().add(new Object[]{1, "John Doe"});
tableCustomers.getRows().add(new Object[]{2, "Jane Doe"});
DataTable tableOrders = new DataTable("Orders");
tableOrders.getColumns().add("CustomerID");
tableOrders.getColumns().add("ItemName");
tableOrders.getColumns().add("Quantity");
tableOrders.getRows().add(new Object[]{1, "Hawaiian", 2});
tableOrders.getRows().add(new Object[]{2, "Pepperoni", 1});
tableOrders.getRows().add(new Object[]{2, "Chicago", 1});
DataSet dataSet = new DataSet();
dataSet.getTables().add(tableCustomers);
dataSet.getTables().add(tableOrders);
dataSet.getRelations().add(tableCustomers.getColumns().get("CustomerID"), tableOrders.getColumns().get("CustomerID"));
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setRegionsDataSource(dataSet);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
MailMerger.create(mailMergerContext)
.from(doc)
.to(getArtifactsDir() + "LowCode.MailMergeContextWithRegionsDataTable.docx")
.execute();
Shows how to do mail merge with regions operation from a DataSet using documents from the stream using context.
// There is a several ways to do mail merge with regions operation from a DataSet using documents from the stream:
DataTable tableCustomers = new DataTable("Customers");
tableCustomers.getColumns().add("CustomerID");
tableCustomers.getColumns().add("CustomerName");
tableCustomers.getRows().add(new Object[]{1, "John Doe"});
tableCustomers.getRows().add(new Object[]{2, "Jane Doe"});
DataTable tableOrders = new DataTable("Orders");
tableOrders.getColumns().add("CustomerID");
tableOrders.getColumns().add("ItemName");
tableOrders.getColumns().add("Quantity");
tableOrders.getRows().add(new Object[]{1, "Hawaiian", 2});
tableOrders.getRows().add(new Object[]{2, "Pepperoni", 1});
tableOrders.getRows().add(new Object[]{2, "Chicago", 1});
DataSet dataSet = new DataSet();
dataSet.getTables().add(tableCustomers);
dataSet.getTables().add(tableOrders);
dataSet.getRelations().add(tableCustomers.getColumns().get("CustomerID"), tableOrders.getColumns().get("CustomerID"));
try (FileInputStream streamIn = new FileInputStream(getMyDir() + "Mail merge.doc")) {
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setRegionsDataSource(dataSet);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
try (FileOutputStream streamOut = new FileOutputStream(getArtifactsDir() + "LowCode.MailMergeContextStreamWithRegionsDataSet.docx")) {
MailMerger.create(mailMergerContext)
.from(streamIn)
.to(streamOut, SaveFormat.DOCX)
.execute();
}
}
| Constructor and Description |
|---|
MailMergerContext()
Initializes a new instance of this class.
|
| Modifier and Type | Method and Description |
|---|---|
MailMergeOptions |
getMailMergeOptions()
Mail merge options.
|
void |
setRegionsDataSource(DataSet dataSet)
Sets data source used to execute mail merge with regions.
|
void |
setRegionsDataSource(DataTable dataTable)
Sets data source used to execute mail merge with regions.
|
void |
setSimpleDataSource(DataRow dataRow)
Sets data source used to execute simple mail merge.
|
void |
setSimpleDataSource(DataTable dataTable)
Sets data source used to execute simple mail merge.
|
void |
setSimpleDataSource(java.lang.String[] fieldNames,
java.lang.Object[] fieldValues)
Sets data source used to execute simple mail merge.
|
getFontSettings, getLayoutOptions, getWarningCallback, setFontSettings, setWarningCallbackpublic MailMergerContext()
public MailMergeOptions getMailMergeOptions()
Examples:
Shows how to do mail merge operation for a single record using context.
// There is a several ways to do mail merge operation:
String doc = getMyDir() + "Mail merge.doc";
String[] fieldNames = new String[]{"FirstName", "Location", "SpecialCharsInName()"};
String[] fieldValues = new String[]{"James Bond", "London", "Classified"};
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setSimpleDataSource(fieldNames, fieldValues);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
MailMerger.create(mailMergerContext)
.from(doc)
.to(getArtifactsDir() + "LowCode.MailMergeContext.docx")
.execute();
Shows how to do mail merge operation for a single record from the stream using context.
// There is a several ways to do mail merge operation using documents from the stream:
String[] fieldNames = new String[]{"FirstName", "Location", "SpecialCharsInName()"};
String[] fieldValues = new String[]{"James Bond", "London", "Classified"};
try (FileInputStream streamIn = new FileInputStream(getMyDir() + "Mail merge.doc")) {
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setSimpleDataSource(fieldNames, fieldValues);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
try (FileOutputStream streamOut = new FileOutputStream(getArtifactsDir() + "LowCode.MailMergeContextStream.docx")) {
MailMerger.create(mailMergerContext)
.from(streamIn)
.to(streamOut, SaveFormat.DOCX)
.execute();
}
}
MailMergeOptions value.public void setSimpleDataSource(java.lang.String[] fieldNames,
java.lang.Object[] fieldValues)
Remarks:
If both simple mail merge data source and data source for mail merge with regions are specified, mail merge with regions is executed first and then simple mail merge is executed.
Examples:
Shows how to do mail merge operation for a single record using context.
// There is a several ways to do mail merge operation:
String doc = getMyDir() + "Mail merge.doc";
String[] fieldNames = new String[]{"FirstName", "Location", "SpecialCharsInName()"};
String[] fieldValues = new String[]{"James Bond", "London", "Classified"};
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setSimpleDataSource(fieldNames, fieldValues);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
MailMerger.create(mailMergerContext)
.from(doc)
.to(getArtifactsDir() + "LowCode.MailMergeContext.docx")
.execute();
Shows how to do mail merge operation for a single record from the stream using context.
// There is a several ways to do mail merge operation using documents from the stream:
String[] fieldNames = new String[]{"FirstName", "Location", "SpecialCharsInName()"};
String[] fieldValues = new String[]{"James Bond", "London", "Classified"};
try (FileInputStream streamIn = new FileInputStream(getMyDir() + "Mail merge.doc")) {
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setSimpleDataSource(fieldNames, fieldValues);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
try (FileOutputStream streamOut = new FileOutputStream(getArtifactsDir() + "LowCode.MailMergeContextStream.docx")) {
MailMerger.create(mailMergerContext)
.from(streamIn)
.to(streamOut, SaveFormat.DOCX)
.execute();
}
}
public void setSimpleDataSource(DataRow dataRow)
Remarks:
If both simple mail merge data source and data source for mail merge with regions are specified, mail merge with regions is executed first and then simple mail merge is executed.
Examples:
Shows how to do mail merge operation from a DataRow using context.
// There is a several ways to do mail merge operation from a DataRow:
String doc = getMyDir() + "Mail merge.doc";
DataTable dataTable = new DataTable();
dataTable.getColumns().add("FirstName");
dataTable.getColumns().add("Location");
dataTable.getColumns().add("SpecialCharsInName()");
dataTable.getRows().add(new String[]{"James Bond", "London", "Classified"});
DataRow dataRow = dataTable.getRows().get(0);
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setSimpleDataSource(dataRow);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
MailMerger.create(mailMergerContext)
.from(doc)
.to(getArtifactsDir() + "LowCode.MailMergeContextDataRow.docx")
.execute();
Shows how to do mail merge operation from a DataRow using documents from the stream using context.
// There is a several ways to do mail merge operation from a DataRow using documents from the stream:
DataTable dataTable = new DataTable();
dataTable.getColumns().add("FirstName");
dataTable.getColumns().add("Location");
dataTable.getColumns().add("SpecialCharsInName()");
dataTable.getRows().add(new String[]{"James Bond", "London", "Classified"});
DataRow dataRow = dataTable.getRows().get(0);
try (FileInputStream streamIn = new FileInputStream(getMyDir() + "Mail merge.doc")) {
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setSimpleDataSource(dataRow);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
try (FileOutputStream streamOut = new FileOutputStream(getArtifactsDir() + "LowCode.MailMergeContextStreamDataRow.docx")) {
MailMerger.create(mailMergerContext)
.from(streamIn)
.to(streamOut, SaveFormat.DOCX)
.execute();
}
}
public void setSimpleDataSource(DataTable dataTable)
Remarks:
If both simple mail merge data source and data source for mail merge with regions are specified, mail merge with regions is executed first and then simple mail merge is executed.
Examples:
Shows how to do mail merge operation from a DataTable using context.
// There is a several ways to do mail merge operation from a DataTable:
String doc = getMyDir() + "Mail merge.doc";
DataTable dataTable = new DataTable();
dataTable.getColumns().add("FirstName");
dataTable.getColumns().add("Location");
dataTable.getColumns().add("SpecialCharsInName()");
dataTable.getRows().add(new String[]{"James Bond", "London", "Classified"});
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setSimpleDataSource(dataTable);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
MailMerger.create(mailMergerContext)
.from(doc)
.to(getArtifactsDir() + "LowCode.MailMergeContextDataTable.docx")
.execute();
Shows how to do mail merge operation from a DataTable using documents from the stream using context.
// There is a several ways to do mail merge operation from a DataTable using documents from the stream:
DataTable dataTable = new DataTable();
dataTable.getColumns().add("FirstName");
dataTable.getColumns().add("Location");
dataTable.getColumns().add("SpecialCharsInName()");
dataTable.getRows().add(new String[]{"James Bond", "London", "Classified"});
try (FileInputStream streamIn = new FileInputStream(getMyDir() + "Mail merge.doc")) {
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setSimpleDataSource(dataTable);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
try (FileOutputStream streamOut = new FileOutputStream(getArtifactsDir() + "LowCode.MailMergeContextStreamDataTable.docx")) {
MailMerger.create(mailMergerContext)
.from(streamIn)
.to(streamOut, SaveFormat.DOCX)
.execute();
}
}
public void setRegionsDataSource(DataTable dataTable)
Remarks:
If both simple mail merge data source and data source for mail merge with regions are specified, mail merge with regions is executed first and then simple mail merge is executed.
Examples:
Shows how to do mail merge with regions operation from a DataTable using context.
// There is a several ways to do mail merge with regions operation from a DataTable:
String doc = getMyDir() + "Mail merge with regions.docx";
DataTable dataTable = new DataTable("MyTable");
dataTable.getColumns().add("FirstName");
dataTable.getColumns().add("LastName");
dataTable.getRows().add(new Object[]{"John", "Doe"});
dataTable.getRows().add(new Object[]{"", ""});
dataTable.getRows().add(new Object[]{"Jane", "Doe"});
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setRegionsDataSource(dataTable);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
MailMerger.create(mailMergerContext)
.from(doc)
.to(getArtifactsDir() + "LowCode.MailMergeContextWithRegionsDataTable.docx")
.execute();
Shows how to do mail merge with regions operation from a DataTable using documents from the stream using context.
// There is a several ways to do mail merge with regions operation from a DataTable using documents from the stream:
DataTable dataTable = new DataTable("MyTable");
dataTable.getColumns().add("FirstName");
dataTable.getColumns().add("LastName");
dataTable.getRows().add(new Object[]{"John", "Doe"});
dataTable.getRows().add(new Object[]{"", ""});
dataTable.getRows().add(new Object[]{"Jane", "Doe"});
try (FileInputStream streamIn = new FileInputStream(getMyDir() + "Mail merge.doc")) {
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setRegionsDataSource(dataTable);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
try (FileOutputStream streamOut = new FileOutputStream(getArtifactsDir() + "LowCode.MailMergeContextStreamWithRegionsDataTable.docx")) {
MailMerger.create(mailMergerContext)
.from(streamIn)
.to(streamOut, SaveFormat.DOCX)
.execute();
}
}
public void setRegionsDataSource(DataSet dataSet)
Remarks:
If both simple mail merge data source and data source for mail merge with regions are specified, mail merge with regions is executed first and then simple mail merge is executed.
Examples:
Shows how to do mail merge with regions operation from a DataSet using context.
// There is a several ways to do mail merge with regions operation from a DataSet:
String doc = getMyDir() + "Mail merge with regions data set.docx";
DataTable tableCustomers = new DataTable("Customers");
tableCustomers.getColumns().add("CustomerID");
tableCustomers.getColumns().add("CustomerName");
tableCustomers.getRows().add(new Object[]{1, "John Doe"});
tableCustomers.getRows().add(new Object[]{2, "Jane Doe"});
DataTable tableOrders = new DataTable("Orders");
tableOrders.getColumns().add("CustomerID");
tableOrders.getColumns().add("ItemName");
tableOrders.getColumns().add("Quantity");
tableOrders.getRows().add(new Object[]{1, "Hawaiian", 2});
tableOrders.getRows().add(new Object[]{2, "Pepperoni", 1});
tableOrders.getRows().add(new Object[]{2, "Chicago", 1});
DataSet dataSet = new DataSet();
dataSet.getTables().add(tableCustomers);
dataSet.getTables().add(tableOrders);
dataSet.getRelations().add(tableCustomers.getColumns().get("CustomerID"), tableOrders.getColumns().get("CustomerID"));
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setRegionsDataSource(dataSet);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
MailMerger.create(mailMergerContext)
.from(doc)
.to(getArtifactsDir() + "LowCode.MailMergeContextWithRegionsDataTable.docx")
.execute();
Shows how to do mail merge with regions operation from a DataSet using documents from the stream using context.
// There is a several ways to do mail merge with regions operation from a DataSet using documents from the stream:
DataTable tableCustomers = new DataTable("Customers");
tableCustomers.getColumns().add("CustomerID");
tableCustomers.getColumns().add("CustomerName");
tableCustomers.getRows().add(new Object[]{1, "John Doe"});
tableCustomers.getRows().add(new Object[]{2, "Jane Doe"});
DataTable tableOrders = new DataTable("Orders");
tableOrders.getColumns().add("CustomerID");
tableOrders.getColumns().add("ItemName");
tableOrders.getColumns().add("Quantity");
tableOrders.getRows().add(new Object[]{1, "Hawaiian", 2});
tableOrders.getRows().add(new Object[]{2, "Pepperoni", 1});
tableOrders.getRows().add(new Object[]{2, "Chicago", 1});
DataSet dataSet = new DataSet();
dataSet.getTables().add(tableCustomers);
dataSet.getTables().add(tableOrders);
dataSet.getRelations().add(tableCustomers.getColumns().get("CustomerID"), tableOrders.getColumns().get("CustomerID"));
try (FileInputStream streamIn = new FileInputStream(getMyDir() + "Mail merge.doc")) {
MailMergerContext mailMergerContext = new MailMergerContext();
mailMergerContext.setRegionsDataSource(dataSet);
mailMergerContext.getMailMergeOptions().setTrimWhitespaces(true);
try (FileOutputStream streamOut = new FileOutputStream(getArtifactsDir() + "LowCode.MailMergeContextStreamWithRegionsDataSet.docx")) {
MailMerger.create(mailMergerContext)
.from(streamIn)
.to(streamOut, SaveFormat.DOCX)
.execute();
}
}