Hi,
I know how to use merge mail with your api but i don’t know how can i create with your api an empty template with the merge fields ready to be used ?
Can someone help me ?
Regards
Julien
Hi,
I know how to use merge mail with your api but i don’t know how can i create with your api an empty template with the merge fields ready to be used ?
Can someone help me ?
Regards
Julien
Hi,
Thanks for your request.
You can use DocumentBuilder class to be able to create a template from scratch using Aspose.Words programmatically . Please read the article suggested here:
https://reference.aspose.com/words/java/com.aspose.words/DocumentBuilder
Also, you can insert a merge field in the document using the following code snippet:
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.insertField(@"MERGEFIELD MyFieldName \* MERGEFORMAT");
// Insert a simple Date field into the document.
builder.insertField(@"DATE \* MERGEFORMAT");
Moreover, for a list of supported fields, please see the following link:
https://docs.aspose.com/words/java/update-field/
I hope, this will help.
Best Regards,
Thanks for you answer but it’s not quite what I need.
With this solution, the merge field is include in the document. I need to insert this merge field in the “INSERT MERGE FIELD” function in Word so I can’t put the merge field availabled humanly where i need them.
See ?
In fact, i need to attach a word blank document and a list of merge field who will be available in Word for this document.
Hi
Thanks for your request. You should attach a data source to your document to achieve this. Please see the following thread for more information:
https://forum.aspose.com/t/62072
Best regards,
Thanks a lot, i’ll try that !
This code is .Net like, i’ll try to mix it to Java
Ok thanks a lot, it’s working !
When the document is opening, it asking me about the “SELECT * FROM {0}”, I say yes, after, it asking me about the “SELECT * FROM test.txt”, i say yes and after i can use my document.
Questions :
- How can i avoid this ?
- The file datasource, is it mandatory ? How can i inject the merge field in the template without file datasource ?
Here is the Java code for user who will be interested
String dataSource = "D:/test.txt";
Document doc = new Document();
MailMergeSettings mailMergeSettings = new MailMergeSettings();
mailMergeSettings.setDataType(MailMergeDataType.TEXT_FILE);
mailMergeSettings.setMainDocumentType(MailMergeMainDocumentType.FORM_LETTERS);
mailMergeSettings.setDataSource(dataSource);
mailMergeSettings.setQuery(String.format("SELECT * FROM {0}", dataSource));
BufferedReader bufferedReader = new BufferedReader(new FileReader(new File(dataSource)));
String line = bufferedReader.readLine();
StringTokenizer stringTokenizer = new StringTokenizer(line, ",");
int column = 0;
OdsoFieldMapDataCollection odsoFieldMapDataCollection = new OdsoFieldMapDataCollection();
while (stringTokenizer.hasMoreTokens())
{
String field = stringTokenizer.nextToken();
OdsoFieldMapData mapData = new OdsoFieldMapData();
mapData = new OdsoFieldMapData();
mapData.setColumn(column);
mapData.setMappedName(field);
mapData.setName(field.replaceAll(" ", "_"));
mapData.setType(OdsoFieldMappingType.COLUMN);
odsoFieldMapDataCollection.add(mapData);
column++;
}
Odso odso = new Odso();
odso.setFieldMapDatas(odsoFieldMapDataCollection);
mailMergeSettings.setOdso(odso);
doc.setMailMergeSettings(mailMergeSettings);
doc.save("D:/out.doc");
Hi
Thank you for sharing your code. Unfortunately, there is no way to embed data source into the document. MS Word does not allow this. Also I did not manage to find a way to reference data source from web. So the only way to achieve this is using two files – template and data source.
Best regards,
Ok thanks.
And can we avoid the warning message of “SELECT * from {0}” when we open the document ?
Hi
Thanks for your request. I am not sure this is possible in MS Word. You can try setting this option, but I am not sure it will help:
https://reference.aspose.com/words/net/aspose.words.settings/mailmergesettings/linktoquery/
Best regards,
Thanks but it doesn’t work.
Hi
Thank you for additional information. I suspected this. Unfortunately, I do not have anything else to suggest. I suppose this is simply impossible in MS Word.
Best regards,