We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

Aspose.Words MailMerge adding extra page breaks with Directory document type

I created a Mail Merge document in Word 2007 by going to Mailings, Start Mail Merge, and then selecting Directory. If I use that document for a mail merge using Word 2007, all of the records are listed on a single page. If I use MailMerge.Execute, each record is listed on a separate page. If it makes any difference, the merge document has multiple columns.

Thanks for your request. I think that you can solve this problem by setting section start to Continuous (File/Page setup / Layout tab / select Section start). Also see the following link to learn how to control new pages during mail merge.
Also you can attach your template document for testing.
Best regards.

Here is the template document.
I tried adding a continuous section break, but that resulted in a continuous section break and then a page section break after each record.
I noticed that the link that you posted in your reply mentions the ExecuteWithRegions method instead of the Execute method. I’m using the latter. Would that make a difference?

Thanks for your request. I think that in this case you should use mail merge with region. I modified your template (see the attachment). And here is sample code:

// Prepare datasource
DataTable myTable = new DataTable("myTable");
// Add some data
for (int i = 0; i < 20; i++)
    myTable.Rows.Add(new object[] { "Alexey", "Noskov", "my address", "my address 2", "Auckland", "NZ", "61202", "New Zeland", "1231313", "email.address@domain.com" });
// Open template
Document doc = new Document(@"Test243\Person+directory+(2007).docx");
// Execute mail merge
// Save result

Hope this helps.
Best regards.

Hi Alexey. That works great! Our web page has a dropdown list that shows the available mail merge templates. I added code to scan the list of MailMerge field names to see if the TableStart/TableEnd fields are in the template to determine whether we should use the Execute or ExecuteWithRegions method.
Thanks for your help.