java.lang.Objectcom.aspose.words.MailMergeSettings
public class MailMergeSettings
You can use this object to specify a mail merge data source for a document and this information
(along with the available data fields) will appear in Microsoft Word when the user opens this document.
Or you can use this object to query mail merge settings that the user has specified in Microsoft Word
for this document. You do not normally need to create objects of this class directly because Mail merge settings
of a document are always available via the To detect whether this document is a mail merge main document, check the value of the
To remove mail merge settings and data source information from a document you can use the
The best way to learn how to use the properties of this object is to create a document with a desired
data source manually in Microsoft Word and then open that document using Aspose.Words and examine the properties
of the Aspose.Words preserves mail merge information when loading, saving and converting documents
between different formats, but does not use this information when performing its own mail merge
using the Example:
// We'll create a simple document that will act as a destination for mail merge data
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.write("Dear ");
builder.insertField("MERGEFIELD FirstName", "<FirstName>");
builder.write(" ");
builder.insertField("MERGEFIELD LastName", "<LastName>");
builder.writeln(": ");
builder.insertField("MERGEFIELD Message", "<Message>");
// Also we'll need a data source, in this case it will be an ASCII text file
// We can use any character we want as a delimiter, in this case we'll choose '|'
// The delimiter character is selected in the ODSO settings of mail merge settings
String[] lines = {"FirstName|LastName|Message",
"John|Doe|Hello! This message was created with Aspose Words mail merge."};
Files.write(Paths.get(getArtifactsDir() + "Document.Lines.txt"),
(lines + System.lineSeparator()).getBytes(UTF_8),
new StandardOpenOption[]{StandardOpenOption.CREATE, StandardOpenOption.APPEND});
// Set the data source, query and other things
MailMergeSettings mailMergeSettings = doc.getMailMergeSettings();
mailMergeSettings.setMainDocumentType(MailMergeMainDocumentType.MAILING_LABELS);
mailMergeSettings.setCheckErrors(MailMergeCheckErrors.SIMULATE);
mailMergeSettings.setDataType(MailMergeDataType.NATIVE);
mailMergeSettings.setDataSource(getArtifactsDir() + "Document.Lines.txt");
mailMergeSettings.setQuery("SELECT * FROM " + doc.getMailMergeSettings().getDataSource());
mailMergeSettings.setLinkToQuery(true);
mailMergeSettings.setViewMergedData(true);
Assert.assertEquals(mailMergeSettings.getDestination(), MailMergeDestination.DEFAULT);
Assert.assertFalse(mailMergeSettings.getDoNotSupressBlankLines());
// Office Data Source Object settings
Odso odso = mailMergeSettings.getOdso();
odso.setDataSource(getArtifactsDir() + "Document.Lines.txt");
odso.setDataSourceType(OdsoDataSourceType.TEXT);
odso.setColumnDelimiter('|');
odso.setDataSource(getArtifactsDir() + "Document.Lines.txt");
odso.setFirstRowContainsColumnNames(true);
// ODSO/MailMergeSettings objects can also be cloned
Assert.assertNotSame(odso, odso.deepClone());
Assert.assertNotSame(mailMergeSettings, mailMergeSettings.deepClone());
// The mail merge will be performed when this document is opened
doc.save(getArtifactsDir() + "Document.MailMergeSettings.docx");
Constructor Summary |
---|
MailMergeSettings()
|
Property Getters/Setters Summary | ||
---|---|---|
int | getActiveRecord() | |
void | setActiveRecord(int value) | |
Specifies the one-based index of the record from the data source which shall be displayed in Microsoft Word. The default value is 1. | ||
java.lang.String | getAddressFieldName() | |
void | setAddressFieldName(java.lang.String value) | |
Specifies the column within the data source that contains e-mail addresses. The default value is an empty string. | ||
int | getCheckErrors() | |
void | setCheckErrors(int value) | |
Specifies the type of error reporting which shall be conducted by Microsoft Word when performing a mail merge.
The default value is |
||
java.lang.String | getConnectString() | |
void | setConnectString(java.lang.String value) | |
Specifies the connection string used to connect to an external data source. The default value is an empty string. | ||
java.lang.String | getDataSource() | |
void | setDataSource(java.lang.String value) | |
Specifies the path to the mail-merge data source. The default value is an empty string. | ||
int | getDataType() | |
void | setDataType(int value) | |
Specifies the type of the mail-merge data source and the method of data access.
The default value is |
||
int | getDestination() | |
void | setDestination(int value) | |
Specifies how Microsoft Word will output the results of a mail merge.
The default value is |
||
boolean | getDoNotSupressBlankLines() | |
void | setDoNotSupressBlankLines(boolean value) | |
Specifies how an application performing the mail merge shall handle blank lines in the merged documents resulting from the mail merge.
The default value is false .
|
||
java.lang.String | getHeaderSource() | |
void | setHeaderSource(java.lang.String value) | |
Specifies the path to the mail-merge header source. The default value is an empty string. | ||
boolean | getLinkToQuery() | |
void | setLinkToQuery(boolean value) | |
Not sure about this one.
The Microsoft Word Automation Reference suggests that this specifies that the query is executed every time the document
is opened in Microsoft Word. But the OOXML specification suggests that this specifies that the query contains a reference
to an external query file which contains the actual query.
The default value is false .
|
||
boolean | getMailAsAttachment() | |
void | setMailAsAttachment(boolean value) | |
Specifies that the documents produced during a mail merge operation should be emailed as an attachment rather
than the body of the actual e-mail. The default value is false .
|
||
java.lang.String | getMailSubject() | |
void | setMailSubject(java.lang.String value) | |
Specifies the text which shall appear in the subject line of the e-mails or faxes produced during mail merge. The default value is an empty string. | ||
int | getMainDocumentType() | |
void | setMainDocumentType(int value) | |
Specifies the mail-merge main document type.
The default value is |
||
Odso | getOdso() | |
void | setOdso(Odso value) | |
Gets or sets the object that specifies the Office Data Source Object (ODSO) settings. | ||
java.lang.String | getQuery() | |
void | setQuery(java.lang.String value) | |
Contains the Structured Query Language string that shall be run against the specified external data source to return the set of records which shall be imported into the document when the mail merge operation is performed. The default value is an empty string. | ||
boolean | getViewMergedData() | |
void | setViewMergedData(boolean value) | |
Specifies that Microsoft Word shall display the data from the specified external data source where merge fields
have been inserted (e.g. preview merged data). The default value is false .
|
Method Summary | ||
---|---|---|
void | clear() | |
Clears the mail merge settings in such a way that when the document is saved, no mail merge settings will be saved and it will become a normal document. | ||
MailMergeSettings | deepClone() | |
Returns a deep clone of this object. |
Constructor Detail |
---|
public MailMergeSettings()
Property Getters/Setters Detail |
---|
getActiveRecord/setActiveRecord | |
public int getActiveRecord() / public void setActiveRecord(int value) |
Example:
Shows how to execute a mail merge while connecting to an external data source.Document doc = new Document(getMyDir() + "OdsoData.doc"); MailMergeSettings settings = doc.getMailMergeSettings(); System.out.println(MessageFormat.format("Connection string:\n\t{0}", settings.getConnectString())); System.out.println(MessageFormat.format("Mail merge docs as attachment:\n\t{0}", settings.getMailAsAttachment())); System.out.println(MessageFormat.format("Mail merge doc e-mail subject:\n\t{0}", settings.getMailSubject())); System.out.println(MessageFormat.format("Column that contains e-mail addresses:\n\t{0}", settings.getAddressFieldName())); System.out.println(MessageFormat.format("Active record:\n\t{0}", settings.getActiveRecord())); Odso odso = settings.getOdso(); System.out.println(MessageFormat.format("File will connect to data source located in:\n\t\"{0}\"", odso.getDataSource())); System.out.println(MessageFormat.format("Source type:\n\t{0}", odso.getDataSourceType())); System.out.println(MessageFormat.format("UDL connection string:\n\t{0}", odso.getUdlConnectString())); System.out.println(MessageFormat.format("Table:\n\t{0}", odso.getTableName())); System.out.println(MessageFormat.format("Query:\n\t{0}", doc.getMailMergeSettings().getQuery())); // We can clear the settings, which will take place during saving settings.clear(); doc.save(getArtifactsDir() + "Document.OdsoEmail.docx"); doc = new Document(getArtifactsDir() + "Document.OdsoEmail.docx"); Assert.assertTrue(doc.getMailMergeSettings().getConnectString().isEmpty());
getAddressFieldName/setAddressFieldName | |
public java.lang.String getAddressFieldName() / public void setAddressFieldName(java.lang.String value) |
Example:
Shows how to execute a mail merge while connecting to an external data source.Document doc = new Document(getMyDir() + "OdsoData.doc"); MailMergeSettings settings = doc.getMailMergeSettings(); System.out.println(MessageFormat.format("Connection string:\n\t{0}", settings.getConnectString())); System.out.println(MessageFormat.format("Mail merge docs as attachment:\n\t{0}", settings.getMailAsAttachment())); System.out.println(MessageFormat.format("Mail merge doc e-mail subject:\n\t{0}", settings.getMailSubject())); System.out.println(MessageFormat.format("Column that contains e-mail addresses:\n\t{0}", settings.getAddressFieldName())); System.out.println(MessageFormat.format("Active record:\n\t{0}", settings.getActiveRecord())); Odso odso = settings.getOdso(); System.out.println(MessageFormat.format("File will connect to data source located in:\n\t\"{0}\"", odso.getDataSource())); System.out.println(MessageFormat.format("Source type:\n\t{0}", odso.getDataSourceType())); System.out.println(MessageFormat.format("UDL connection string:\n\t{0}", odso.getUdlConnectString())); System.out.println(MessageFormat.format("Table:\n\t{0}", odso.getTableName())); System.out.println(MessageFormat.format("Query:\n\t{0}", doc.getMailMergeSettings().getQuery())); // We can clear the settings, which will take place during saving settings.clear(); doc.save(getArtifactsDir() + "Document.OdsoEmail.docx"); doc = new Document(getArtifactsDir() + "Document.OdsoEmail.docx"); Assert.assertTrue(doc.getMailMergeSettings().getConnectString().isEmpty());
getCheckErrors/setCheckErrors | |
public int getCheckErrors() / public void setCheckErrors(int value) |
Example:
Shows how to execute an Office Data Source Object mail merge with MailMergeSettings.// We'll create a simple document that will act as a destination for mail merge data Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); builder.write("Dear "); builder.insertField("MERGEFIELD FirstName", "<FirstName>"); builder.write(" "); builder.insertField("MERGEFIELD LastName", "<LastName>"); builder.writeln(": "); builder.insertField("MERGEFIELD Message", "<Message>"); // Also we'll need a data source, in this case it will be an ASCII text file // We can use any character we want as a delimiter, in this case we'll choose '|' // The delimiter character is selected in the ODSO settings of mail merge settings String[] lines = {"FirstName|LastName|Message", "John|Doe|Hello! This message was created with Aspose Words mail merge."}; Files.write(Paths.get(getArtifactsDir() + "Document.Lines.txt"), (lines + System.lineSeparator()).getBytes(UTF_8), new StandardOpenOption[]{StandardOpenOption.CREATE, StandardOpenOption.APPEND}); // Set the data source, query and other things MailMergeSettings mailMergeSettings = doc.getMailMergeSettings(); mailMergeSettings.setMainDocumentType(MailMergeMainDocumentType.MAILING_LABELS); mailMergeSettings.setCheckErrors(MailMergeCheckErrors.SIMULATE); mailMergeSettings.setDataType(MailMergeDataType.NATIVE); mailMergeSettings.setDataSource(getArtifactsDir() + "Document.Lines.txt"); mailMergeSettings.setQuery("SELECT * FROM " + doc.getMailMergeSettings().getDataSource()); mailMergeSettings.setLinkToQuery(true); mailMergeSettings.setViewMergedData(true); Assert.assertEquals(mailMergeSettings.getDestination(), MailMergeDestination.DEFAULT); Assert.assertFalse(mailMergeSettings.getDoNotSupressBlankLines()); // Office Data Source Object settings Odso odso = mailMergeSettings.getOdso(); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setDataSourceType(OdsoDataSourceType.TEXT); odso.setColumnDelimiter('|'); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setFirstRowContainsColumnNames(true); // ODSO/MailMergeSettings objects can also be cloned Assert.assertNotSame(odso, odso.deepClone()); Assert.assertNotSame(mailMergeSettings, mailMergeSettings.deepClone()); // The mail merge will be performed when this document is opened doc.save(getArtifactsDir() + "Document.MailMergeSettings.docx");
getConnectString/setConnectString | |
public java.lang.String getConnectString() / public void setConnectString(java.lang.String value) |
Example:
Shows how to execute a mail merge while connecting to an external data source.Document doc = new Document(getMyDir() + "OdsoData.doc"); MailMergeSettings settings = doc.getMailMergeSettings(); System.out.println(MessageFormat.format("Connection string:\n\t{0}", settings.getConnectString())); System.out.println(MessageFormat.format("Mail merge docs as attachment:\n\t{0}", settings.getMailAsAttachment())); System.out.println(MessageFormat.format("Mail merge doc e-mail subject:\n\t{0}", settings.getMailSubject())); System.out.println(MessageFormat.format("Column that contains e-mail addresses:\n\t{0}", settings.getAddressFieldName())); System.out.println(MessageFormat.format("Active record:\n\t{0}", settings.getActiveRecord())); Odso odso = settings.getOdso(); System.out.println(MessageFormat.format("File will connect to data source located in:\n\t\"{0}\"", odso.getDataSource())); System.out.println(MessageFormat.format("Source type:\n\t{0}", odso.getDataSourceType())); System.out.println(MessageFormat.format("UDL connection string:\n\t{0}", odso.getUdlConnectString())); System.out.println(MessageFormat.format("Table:\n\t{0}", odso.getTableName())); System.out.println(MessageFormat.format("Query:\n\t{0}", doc.getMailMergeSettings().getQuery())); // We can clear the settings, which will take place during saving settings.clear(); doc.save(getArtifactsDir() + "Document.OdsoEmail.docx"); doc = new Document(getArtifactsDir() + "Document.OdsoEmail.docx"); Assert.assertTrue(doc.getMailMergeSettings().getConnectString().isEmpty());
getDataSource/setDataSource | |
public java.lang.String getDataSource() / public void setDataSource(java.lang.String value) |
Example:
Shows how to execute a mail merge while drawing data from a header and a data file.Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); // Create a merge destination document with MERGEFIELDS that will accept data builder.write("Dear "); builder.insertField("MERGEFIELD FirstName", "<FirstName>"); builder.write(" "); builder.insertField("MERGEFIELD LastName", "<LastName>"); // Configure settings to draw data and headers from other documents MailMergeSettings settings = doc.getMailMergeSettings(); // The "header" document contains column names for the data in the "data" document, // which will correspond to the names of our MERGEFIELDs settings.setHeaderSource(getMyDir() + "MailingLabelMergeHeader.doc"); settings.setDataSource(getMyDir() + "MailingLabelMergeData.doc"); // Configure the rest of the MailMergeSettings object settings.setQuery("SELECT * FROM " + doc.getMailMergeSettings().getDataSource()); settings.setMainDocumentType(MailMergeMainDocumentType.MAILING_LABELS); settings.setDataType(MailMergeDataType.TEXT_FILE); settings.setLinkToQuery(true); settings.setViewMergedData(true); // The mail merge will be performed when this document is opened doc.save(getArtifactsDir() + "Document.MailingLabelMerge.doc");
getDataType/setDataType | |
public int getDataType() / public void setDataType(int value) |
Example:
Shows how to execute an Office Data Source Object mail merge with MailMergeSettings.// We'll create a simple document that will act as a destination for mail merge data Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); builder.write("Dear "); builder.insertField("MERGEFIELD FirstName", "<FirstName>"); builder.write(" "); builder.insertField("MERGEFIELD LastName", "<LastName>"); builder.writeln(": "); builder.insertField("MERGEFIELD Message", "<Message>"); // Also we'll need a data source, in this case it will be an ASCII text file // We can use any character we want as a delimiter, in this case we'll choose '|' // The delimiter character is selected in the ODSO settings of mail merge settings String[] lines = {"FirstName|LastName|Message", "John|Doe|Hello! This message was created with Aspose Words mail merge."}; Files.write(Paths.get(getArtifactsDir() + "Document.Lines.txt"), (lines + System.lineSeparator()).getBytes(UTF_8), new StandardOpenOption[]{StandardOpenOption.CREATE, StandardOpenOption.APPEND}); // Set the data source, query and other things MailMergeSettings mailMergeSettings = doc.getMailMergeSettings(); mailMergeSettings.setMainDocumentType(MailMergeMainDocumentType.MAILING_LABELS); mailMergeSettings.setCheckErrors(MailMergeCheckErrors.SIMULATE); mailMergeSettings.setDataType(MailMergeDataType.NATIVE); mailMergeSettings.setDataSource(getArtifactsDir() + "Document.Lines.txt"); mailMergeSettings.setQuery("SELECT * FROM " + doc.getMailMergeSettings().getDataSource()); mailMergeSettings.setLinkToQuery(true); mailMergeSettings.setViewMergedData(true); Assert.assertEquals(mailMergeSettings.getDestination(), MailMergeDestination.DEFAULT); Assert.assertFalse(mailMergeSettings.getDoNotSupressBlankLines()); // Office Data Source Object settings Odso odso = mailMergeSettings.getOdso(); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setDataSourceType(OdsoDataSourceType.TEXT); odso.setColumnDelimiter('|'); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setFirstRowContainsColumnNames(true); // ODSO/MailMergeSettings objects can also be cloned Assert.assertNotSame(odso, odso.deepClone()); Assert.assertNotSame(mailMergeSettings, mailMergeSettings.deepClone()); // The mail merge will be performed when this document is opened doc.save(getArtifactsDir() + "Document.MailMergeSettings.docx");
getDestination/setDestination | |
public int getDestination() / public void setDestination(int value) |
Example:
Shows how to execute an Office Data Source Object mail merge with MailMergeSettings.// We'll create a simple document that will act as a destination for mail merge data Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); builder.write("Dear "); builder.insertField("MERGEFIELD FirstName", "<FirstName>"); builder.write(" "); builder.insertField("MERGEFIELD LastName", "<LastName>"); builder.writeln(": "); builder.insertField("MERGEFIELD Message", "<Message>"); // Also we'll need a data source, in this case it will be an ASCII text file // We can use any character we want as a delimiter, in this case we'll choose '|' // The delimiter character is selected in the ODSO settings of mail merge settings String[] lines = {"FirstName|LastName|Message", "John|Doe|Hello! This message was created with Aspose Words mail merge."}; Files.write(Paths.get(getArtifactsDir() + "Document.Lines.txt"), (lines + System.lineSeparator()).getBytes(UTF_8), new StandardOpenOption[]{StandardOpenOption.CREATE, StandardOpenOption.APPEND}); // Set the data source, query and other things MailMergeSettings mailMergeSettings = doc.getMailMergeSettings(); mailMergeSettings.setMainDocumentType(MailMergeMainDocumentType.MAILING_LABELS); mailMergeSettings.setCheckErrors(MailMergeCheckErrors.SIMULATE); mailMergeSettings.setDataType(MailMergeDataType.NATIVE); mailMergeSettings.setDataSource(getArtifactsDir() + "Document.Lines.txt"); mailMergeSettings.setQuery("SELECT * FROM " + doc.getMailMergeSettings().getDataSource()); mailMergeSettings.setLinkToQuery(true); mailMergeSettings.setViewMergedData(true); Assert.assertEquals(mailMergeSettings.getDestination(), MailMergeDestination.DEFAULT); Assert.assertFalse(mailMergeSettings.getDoNotSupressBlankLines()); // Office Data Source Object settings Odso odso = mailMergeSettings.getOdso(); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setDataSourceType(OdsoDataSourceType.TEXT); odso.setColumnDelimiter('|'); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setFirstRowContainsColumnNames(true); // ODSO/MailMergeSettings objects can also be cloned Assert.assertNotSame(odso, odso.deepClone()); Assert.assertNotSame(mailMergeSettings, mailMergeSettings.deepClone()); // The mail merge will be performed when this document is opened doc.save(getArtifactsDir() + "Document.MailMergeSettings.docx");
getDoNotSupressBlankLines/setDoNotSupressBlankLines | |
public boolean getDoNotSupressBlankLines() / public void setDoNotSupressBlankLines(boolean value) |
false
.
Example:
Shows how to execute an Office Data Source Object mail merge with MailMergeSettings.// We'll create a simple document that will act as a destination for mail merge data Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); builder.write("Dear "); builder.insertField("MERGEFIELD FirstName", "<FirstName>"); builder.write(" "); builder.insertField("MERGEFIELD LastName", "<LastName>"); builder.writeln(": "); builder.insertField("MERGEFIELD Message", "<Message>"); // Also we'll need a data source, in this case it will be an ASCII text file // We can use any character we want as a delimiter, in this case we'll choose '|' // The delimiter character is selected in the ODSO settings of mail merge settings String[] lines = {"FirstName|LastName|Message", "John|Doe|Hello! This message was created with Aspose Words mail merge."}; Files.write(Paths.get(getArtifactsDir() + "Document.Lines.txt"), (lines + System.lineSeparator()).getBytes(UTF_8), new StandardOpenOption[]{StandardOpenOption.CREATE, StandardOpenOption.APPEND}); // Set the data source, query and other things MailMergeSettings mailMergeSettings = doc.getMailMergeSettings(); mailMergeSettings.setMainDocumentType(MailMergeMainDocumentType.MAILING_LABELS); mailMergeSettings.setCheckErrors(MailMergeCheckErrors.SIMULATE); mailMergeSettings.setDataType(MailMergeDataType.NATIVE); mailMergeSettings.setDataSource(getArtifactsDir() + "Document.Lines.txt"); mailMergeSettings.setQuery("SELECT * FROM " + doc.getMailMergeSettings().getDataSource()); mailMergeSettings.setLinkToQuery(true); mailMergeSettings.setViewMergedData(true); Assert.assertEquals(mailMergeSettings.getDestination(), MailMergeDestination.DEFAULT); Assert.assertFalse(mailMergeSettings.getDoNotSupressBlankLines()); // Office Data Source Object settings Odso odso = mailMergeSettings.getOdso(); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setDataSourceType(OdsoDataSourceType.TEXT); odso.setColumnDelimiter('|'); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setFirstRowContainsColumnNames(true); // ODSO/MailMergeSettings objects can also be cloned Assert.assertNotSame(odso, odso.deepClone()); Assert.assertNotSame(mailMergeSettings, mailMergeSettings.deepClone()); // The mail merge will be performed when this document is opened doc.save(getArtifactsDir() + "Document.MailMergeSettings.docx");
getHeaderSource/setHeaderSource | |
public java.lang.String getHeaderSource() / public void setHeaderSource(java.lang.String value) |
Example:
Shows how to execute a mail merge while drawing data from a header and a data file.Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); // Create a merge destination document with MERGEFIELDS that will accept data builder.write("Dear "); builder.insertField("MERGEFIELD FirstName", "<FirstName>"); builder.write(" "); builder.insertField("MERGEFIELD LastName", "<LastName>"); // Configure settings to draw data and headers from other documents MailMergeSettings settings = doc.getMailMergeSettings(); // The "header" document contains column names for the data in the "data" document, // which will correspond to the names of our MERGEFIELDs settings.setHeaderSource(getMyDir() + "MailingLabelMergeHeader.doc"); settings.setDataSource(getMyDir() + "MailingLabelMergeData.doc"); // Configure the rest of the MailMergeSettings object settings.setQuery("SELECT * FROM " + doc.getMailMergeSettings().getDataSource()); settings.setMainDocumentType(MailMergeMainDocumentType.MAILING_LABELS); settings.setDataType(MailMergeDataType.TEXT_FILE); settings.setLinkToQuery(true); settings.setViewMergedData(true); // The mail merge will be performed when this document is opened doc.save(getArtifactsDir() + "Document.MailingLabelMerge.doc");
getLinkToQuery/setLinkToQuery | |
public boolean getLinkToQuery() / public void setLinkToQuery(boolean value) |
false
.
Example:
Shows how to execute an Office Data Source Object mail merge with MailMergeSettings.// We'll create a simple document that will act as a destination for mail merge data Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); builder.write("Dear "); builder.insertField("MERGEFIELD FirstName", "<FirstName>"); builder.write(" "); builder.insertField("MERGEFIELD LastName", "<LastName>"); builder.writeln(": "); builder.insertField("MERGEFIELD Message", "<Message>"); // Also we'll need a data source, in this case it will be an ASCII text file // We can use any character we want as a delimiter, in this case we'll choose '|' // The delimiter character is selected in the ODSO settings of mail merge settings String[] lines = {"FirstName|LastName|Message", "John|Doe|Hello! This message was created with Aspose Words mail merge."}; Files.write(Paths.get(getArtifactsDir() + "Document.Lines.txt"), (lines + System.lineSeparator()).getBytes(UTF_8), new StandardOpenOption[]{StandardOpenOption.CREATE, StandardOpenOption.APPEND}); // Set the data source, query and other things MailMergeSettings mailMergeSettings = doc.getMailMergeSettings(); mailMergeSettings.setMainDocumentType(MailMergeMainDocumentType.MAILING_LABELS); mailMergeSettings.setCheckErrors(MailMergeCheckErrors.SIMULATE); mailMergeSettings.setDataType(MailMergeDataType.NATIVE); mailMergeSettings.setDataSource(getArtifactsDir() + "Document.Lines.txt"); mailMergeSettings.setQuery("SELECT * FROM " + doc.getMailMergeSettings().getDataSource()); mailMergeSettings.setLinkToQuery(true); mailMergeSettings.setViewMergedData(true); Assert.assertEquals(mailMergeSettings.getDestination(), MailMergeDestination.DEFAULT); Assert.assertFalse(mailMergeSettings.getDoNotSupressBlankLines()); // Office Data Source Object settings Odso odso = mailMergeSettings.getOdso(); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setDataSourceType(OdsoDataSourceType.TEXT); odso.setColumnDelimiter('|'); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setFirstRowContainsColumnNames(true); // ODSO/MailMergeSettings objects can also be cloned Assert.assertNotSame(odso, odso.deepClone()); Assert.assertNotSame(mailMergeSettings, mailMergeSettings.deepClone()); // The mail merge will be performed when this document is opened doc.save(getArtifactsDir() + "Document.MailMergeSettings.docx");
getMailAsAttachment/setMailAsAttachment | |
public boolean getMailAsAttachment() / public void setMailAsAttachment(boolean value) |
false
.
Example:
Shows how to execute a mail merge while connecting to an external data source.Document doc = new Document(getMyDir() + "OdsoData.doc"); MailMergeSettings settings = doc.getMailMergeSettings(); System.out.println(MessageFormat.format("Connection string:\n\t{0}", settings.getConnectString())); System.out.println(MessageFormat.format("Mail merge docs as attachment:\n\t{0}", settings.getMailAsAttachment())); System.out.println(MessageFormat.format("Mail merge doc e-mail subject:\n\t{0}", settings.getMailSubject())); System.out.println(MessageFormat.format("Column that contains e-mail addresses:\n\t{0}", settings.getAddressFieldName())); System.out.println(MessageFormat.format("Active record:\n\t{0}", settings.getActiveRecord())); Odso odso = settings.getOdso(); System.out.println(MessageFormat.format("File will connect to data source located in:\n\t\"{0}\"", odso.getDataSource())); System.out.println(MessageFormat.format("Source type:\n\t{0}", odso.getDataSourceType())); System.out.println(MessageFormat.format("UDL connection string:\n\t{0}", odso.getUdlConnectString())); System.out.println(MessageFormat.format("Table:\n\t{0}", odso.getTableName())); System.out.println(MessageFormat.format("Query:\n\t{0}", doc.getMailMergeSettings().getQuery())); // We can clear the settings, which will take place during saving settings.clear(); doc.save(getArtifactsDir() + "Document.OdsoEmail.docx"); doc = new Document(getArtifactsDir() + "Document.OdsoEmail.docx"); Assert.assertTrue(doc.getMailMergeSettings().getConnectString().isEmpty());
getMailSubject/setMailSubject | |
public java.lang.String getMailSubject() / public void setMailSubject(java.lang.String value) |
Example:
Shows how to execute a mail merge while connecting to an external data source.Document doc = new Document(getMyDir() + "OdsoData.doc"); MailMergeSettings settings = doc.getMailMergeSettings(); System.out.println(MessageFormat.format("Connection string:\n\t{0}", settings.getConnectString())); System.out.println(MessageFormat.format("Mail merge docs as attachment:\n\t{0}", settings.getMailAsAttachment())); System.out.println(MessageFormat.format("Mail merge doc e-mail subject:\n\t{0}", settings.getMailSubject())); System.out.println(MessageFormat.format("Column that contains e-mail addresses:\n\t{0}", settings.getAddressFieldName())); System.out.println(MessageFormat.format("Active record:\n\t{0}", settings.getActiveRecord())); Odso odso = settings.getOdso(); System.out.println(MessageFormat.format("File will connect to data source located in:\n\t\"{0}\"", odso.getDataSource())); System.out.println(MessageFormat.format("Source type:\n\t{0}", odso.getDataSourceType())); System.out.println(MessageFormat.format("UDL connection string:\n\t{0}", odso.getUdlConnectString())); System.out.println(MessageFormat.format("Table:\n\t{0}", odso.getTableName())); System.out.println(MessageFormat.format("Query:\n\t{0}", doc.getMailMergeSettings().getQuery())); // We can clear the settings, which will take place during saving settings.clear(); doc.save(getArtifactsDir() + "Document.OdsoEmail.docx"); doc = new Document(getArtifactsDir() + "Document.OdsoEmail.docx"); Assert.assertTrue(doc.getMailMergeSettings().getConnectString().isEmpty());
getMainDocumentType/setMainDocumentType | |
public int getMainDocumentType() / public void setMainDocumentType(int value) |
The main document is the document that contains information that is the same for each version of the merged document.
Example:
Shows how to execute an Office Data Source Object mail merge with MailMergeSettings.// We'll create a simple document that will act as a destination for mail merge data Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); builder.write("Dear "); builder.insertField("MERGEFIELD FirstName", "<FirstName>"); builder.write(" "); builder.insertField("MERGEFIELD LastName", "<LastName>"); builder.writeln(": "); builder.insertField("MERGEFIELD Message", "<Message>"); // Also we'll need a data source, in this case it will be an ASCII text file // We can use any character we want as a delimiter, in this case we'll choose '|' // The delimiter character is selected in the ODSO settings of mail merge settings String[] lines = {"FirstName|LastName|Message", "John|Doe|Hello! This message was created with Aspose Words mail merge."}; Files.write(Paths.get(getArtifactsDir() + "Document.Lines.txt"), (lines + System.lineSeparator()).getBytes(UTF_8), new StandardOpenOption[]{StandardOpenOption.CREATE, StandardOpenOption.APPEND}); // Set the data source, query and other things MailMergeSettings mailMergeSettings = doc.getMailMergeSettings(); mailMergeSettings.setMainDocumentType(MailMergeMainDocumentType.MAILING_LABELS); mailMergeSettings.setCheckErrors(MailMergeCheckErrors.SIMULATE); mailMergeSettings.setDataType(MailMergeDataType.NATIVE); mailMergeSettings.setDataSource(getArtifactsDir() + "Document.Lines.txt"); mailMergeSettings.setQuery("SELECT * FROM " + doc.getMailMergeSettings().getDataSource()); mailMergeSettings.setLinkToQuery(true); mailMergeSettings.setViewMergedData(true); Assert.assertEquals(mailMergeSettings.getDestination(), MailMergeDestination.DEFAULT); Assert.assertFalse(mailMergeSettings.getDoNotSupressBlankLines()); // Office Data Source Object settings Odso odso = mailMergeSettings.getOdso(); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setDataSourceType(OdsoDataSourceType.TEXT); odso.setColumnDelimiter('|'); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setFirstRowContainsColumnNames(true); // ODSO/MailMergeSettings objects can also be cloned Assert.assertNotSame(odso, odso.deepClone()); Assert.assertNotSame(mailMergeSettings, mailMergeSettings.deepClone()); // The mail merge will be performed when this document is opened doc.save(getArtifactsDir() + "Document.MailMergeSettings.docx");
getOdso/setOdso | |
public Odso getOdso() / public void setOdso(Odso value) |
This object is never null.
Example:
Shows how to execute an Office Data Source Object mail merge with MailMergeSettings.// We'll create a simple document that will act as a destination for mail merge data Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); builder.write("Dear "); builder.insertField("MERGEFIELD FirstName", "<FirstName>"); builder.write(" "); builder.insertField("MERGEFIELD LastName", "<LastName>"); builder.writeln(": "); builder.insertField("MERGEFIELD Message", "<Message>"); // Also we'll need a data source, in this case it will be an ASCII text file // We can use any character we want as a delimiter, in this case we'll choose '|' // The delimiter character is selected in the ODSO settings of mail merge settings String[] lines = {"FirstName|LastName|Message", "John|Doe|Hello! This message was created with Aspose Words mail merge."}; Files.write(Paths.get(getArtifactsDir() + "Document.Lines.txt"), (lines + System.lineSeparator()).getBytes(UTF_8), new StandardOpenOption[]{StandardOpenOption.CREATE, StandardOpenOption.APPEND}); // Set the data source, query and other things MailMergeSettings mailMergeSettings = doc.getMailMergeSettings(); mailMergeSettings.setMainDocumentType(MailMergeMainDocumentType.MAILING_LABELS); mailMergeSettings.setCheckErrors(MailMergeCheckErrors.SIMULATE); mailMergeSettings.setDataType(MailMergeDataType.NATIVE); mailMergeSettings.setDataSource(getArtifactsDir() + "Document.Lines.txt"); mailMergeSettings.setQuery("SELECT * FROM " + doc.getMailMergeSettings().getDataSource()); mailMergeSettings.setLinkToQuery(true); mailMergeSettings.setViewMergedData(true); Assert.assertEquals(mailMergeSettings.getDestination(), MailMergeDestination.DEFAULT); Assert.assertFalse(mailMergeSettings.getDoNotSupressBlankLines()); // Office Data Source Object settings Odso odso = mailMergeSettings.getOdso(); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setDataSourceType(OdsoDataSourceType.TEXT); odso.setColumnDelimiter('|'); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setFirstRowContainsColumnNames(true); // ODSO/MailMergeSettings objects can also be cloned Assert.assertNotSame(odso, odso.deepClone()); Assert.assertNotSame(mailMergeSettings, mailMergeSettings.deepClone()); // The mail merge will be performed when this document is opened doc.save(getArtifactsDir() + "Document.MailMergeSettings.docx");
getQuery/setQuery | |
public java.lang.String getQuery() / public void setQuery(java.lang.String value) |
Example:
Shows how to execute an Office Data Source Object mail merge with MailMergeSettings.// We'll create a simple document that will act as a destination for mail merge data Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); builder.write("Dear "); builder.insertField("MERGEFIELD FirstName", "<FirstName>"); builder.write(" "); builder.insertField("MERGEFIELD LastName", "<LastName>"); builder.writeln(": "); builder.insertField("MERGEFIELD Message", "<Message>"); // Also we'll need a data source, in this case it will be an ASCII text file // We can use any character we want as a delimiter, in this case we'll choose '|' // The delimiter character is selected in the ODSO settings of mail merge settings String[] lines = {"FirstName|LastName|Message", "John|Doe|Hello! This message was created with Aspose Words mail merge."}; Files.write(Paths.get(getArtifactsDir() + "Document.Lines.txt"), (lines + System.lineSeparator()).getBytes(UTF_8), new StandardOpenOption[]{StandardOpenOption.CREATE, StandardOpenOption.APPEND}); // Set the data source, query and other things MailMergeSettings mailMergeSettings = doc.getMailMergeSettings(); mailMergeSettings.setMainDocumentType(MailMergeMainDocumentType.MAILING_LABELS); mailMergeSettings.setCheckErrors(MailMergeCheckErrors.SIMULATE); mailMergeSettings.setDataType(MailMergeDataType.NATIVE); mailMergeSettings.setDataSource(getArtifactsDir() + "Document.Lines.txt"); mailMergeSettings.setQuery("SELECT * FROM " + doc.getMailMergeSettings().getDataSource()); mailMergeSettings.setLinkToQuery(true); mailMergeSettings.setViewMergedData(true); Assert.assertEquals(mailMergeSettings.getDestination(), MailMergeDestination.DEFAULT); Assert.assertFalse(mailMergeSettings.getDoNotSupressBlankLines()); // Office Data Source Object settings Odso odso = mailMergeSettings.getOdso(); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setDataSourceType(OdsoDataSourceType.TEXT); odso.setColumnDelimiter('|'); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setFirstRowContainsColumnNames(true); // ODSO/MailMergeSettings objects can also be cloned Assert.assertNotSame(odso, odso.deepClone()); Assert.assertNotSame(mailMergeSettings, mailMergeSettings.deepClone()); // The mail merge will be performed when this document is opened doc.save(getArtifactsDir() + "Document.MailMergeSettings.docx");
getViewMergedData/setViewMergedData | |
public boolean getViewMergedData() / public void setViewMergedData(boolean value) |
false
.
Example:
Shows how to execute an Office Data Source Object mail merge with MailMergeSettings.// We'll create a simple document that will act as a destination for mail merge data Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); builder.write("Dear "); builder.insertField("MERGEFIELD FirstName", "<FirstName>"); builder.write(" "); builder.insertField("MERGEFIELD LastName", "<LastName>"); builder.writeln(": "); builder.insertField("MERGEFIELD Message", "<Message>"); // Also we'll need a data source, in this case it will be an ASCII text file // We can use any character we want as a delimiter, in this case we'll choose '|' // The delimiter character is selected in the ODSO settings of mail merge settings String[] lines = {"FirstName|LastName|Message", "John|Doe|Hello! This message was created with Aspose Words mail merge."}; Files.write(Paths.get(getArtifactsDir() + "Document.Lines.txt"), (lines + System.lineSeparator()).getBytes(UTF_8), new StandardOpenOption[]{StandardOpenOption.CREATE, StandardOpenOption.APPEND}); // Set the data source, query and other things MailMergeSettings mailMergeSettings = doc.getMailMergeSettings(); mailMergeSettings.setMainDocumentType(MailMergeMainDocumentType.MAILING_LABELS); mailMergeSettings.setCheckErrors(MailMergeCheckErrors.SIMULATE); mailMergeSettings.setDataType(MailMergeDataType.NATIVE); mailMergeSettings.setDataSource(getArtifactsDir() + "Document.Lines.txt"); mailMergeSettings.setQuery("SELECT * FROM " + doc.getMailMergeSettings().getDataSource()); mailMergeSettings.setLinkToQuery(true); mailMergeSettings.setViewMergedData(true); Assert.assertEquals(mailMergeSettings.getDestination(), MailMergeDestination.DEFAULT); Assert.assertFalse(mailMergeSettings.getDoNotSupressBlankLines()); // Office Data Source Object settings Odso odso = mailMergeSettings.getOdso(); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setDataSourceType(OdsoDataSourceType.TEXT); odso.setColumnDelimiter('|'); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setFirstRowContainsColumnNames(true); // ODSO/MailMergeSettings objects can also be cloned Assert.assertNotSame(odso, odso.deepClone()); Assert.assertNotSame(mailMergeSettings, mailMergeSettings.deepClone()); // The mail merge will be performed when this document is opened doc.save(getArtifactsDir() + "Document.MailMergeSettings.docx");
Method Detail |
---|
clear | |
public void clear() |
Example:
Shows how to execute a mail merge while connecting to an external data source.Document doc = new Document(getMyDir() + "OdsoData.doc"); MailMergeSettings settings = doc.getMailMergeSettings(); System.out.println(MessageFormat.format("Connection string:\n\t{0}", settings.getConnectString())); System.out.println(MessageFormat.format("Mail merge docs as attachment:\n\t{0}", settings.getMailAsAttachment())); System.out.println(MessageFormat.format("Mail merge doc e-mail subject:\n\t{0}", settings.getMailSubject())); System.out.println(MessageFormat.format("Column that contains e-mail addresses:\n\t{0}", settings.getAddressFieldName())); System.out.println(MessageFormat.format("Active record:\n\t{0}", settings.getActiveRecord())); Odso odso = settings.getOdso(); System.out.println(MessageFormat.format("File will connect to data source located in:\n\t\"{0}\"", odso.getDataSource())); System.out.println(MessageFormat.format("Source type:\n\t{0}", odso.getDataSourceType())); System.out.println(MessageFormat.format("UDL connection string:\n\t{0}", odso.getUdlConnectString())); System.out.println(MessageFormat.format("Table:\n\t{0}", odso.getTableName())); System.out.println(MessageFormat.format("Query:\n\t{0}", doc.getMailMergeSettings().getQuery())); // We can clear the settings, which will take place during saving settings.clear(); doc.save(getArtifactsDir() + "Document.OdsoEmail.docx"); doc = new Document(getArtifactsDir() + "Document.OdsoEmail.docx"); Assert.assertTrue(doc.getMailMergeSettings().getConnectString().isEmpty());
deepClone | |
public MailMergeSettings deepClone() |
Example:
Shows how to execute an Office Data Source Object mail merge with MailMergeSettings.// We'll create a simple document that will act as a destination for mail merge data Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); builder.write("Dear "); builder.insertField("MERGEFIELD FirstName", "<FirstName>"); builder.write(" "); builder.insertField("MERGEFIELD LastName", "<LastName>"); builder.writeln(": "); builder.insertField("MERGEFIELD Message", "<Message>"); // Also we'll need a data source, in this case it will be an ASCII text file // We can use any character we want as a delimiter, in this case we'll choose '|' // The delimiter character is selected in the ODSO settings of mail merge settings String[] lines = {"FirstName|LastName|Message", "John|Doe|Hello! This message was created with Aspose Words mail merge."}; Files.write(Paths.get(getArtifactsDir() + "Document.Lines.txt"), (lines + System.lineSeparator()).getBytes(UTF_8), new StandardOpenOption[]{StandardOpenOption.CREATE, StandardOpenOption.APPEND}); // Set the data source, query and other things MailMergeSettings mailMergeSettings = doc.getMailMergeSettings(); mailMergeSettings.setMainDocumentType(MailMergeMainDocumentType.MAILING_LABELS); mailMergeSettings.setCheckErrors(MailMergeCheckErrors.SIMULATE); mailMergeSettings.setDataType(MailMergeDataType.NATIVE); mailMergeSettings.setDataSource(getArtifactsDir() + "Document.Lines.txt"); mailMergeSettings.setQuery("SELECT * FROM " + doc.getMailMergeSettings().getDataSource()); mailMergeSettings.setLinkToQuery(true); mailMergeSettings.setViewMergedData(true); Assert.assertEquals(mailMergeSettings.getDestination(), MailMergeDestination.DEFAULT); Assert.assertFalse(mailMergeSettings.getDoNotSupressBlankLines()); // Office Data Source Object settings Odso odso = mailMergeSettings.getOdso(); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setDataSourceType(OdsoDataSourceType.TEXT); odso.setColumnDelimiter('|'); odso.setDataSource(getArtifactsDir() + "Document.Lines.txt"); odso.setFirstRowContainsColumnNames(true); // ODSO/MailMergeSettings objects can also be cloned Assert.assertNotSame(odso, odso.deepClone()); Assert.assertNotSame(mailMergeSettings, mailMergeSettings.deepClone()); // The mail merge will be performed when this document is opened doc.save(getArtifactsDir() + "Document.MailMergeSettings.docx");