Thanks for your help. We use Aspose.Words to do a mail-merge on the word doc and then use Aspose.Pdf to convert it to PDF. I've attached to Word doc that it begins from. The Pdf conversion is done using the following code:
using (MemoryStream mergedStream = new MemoryStream())
{
// save to special pdf/xml format
doc.Save(mergedStream, SaveFormat.AsposePdf);
//Seek to the beginning so it can be read by XmlDocument.
mergedStream.Seek(0, SeekOrigin.Begin);
//Load the document into an XmlDocument
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(mergedStream);
//Load the XML document into Aspose.Pdf
Pdf pdf = new Pdf();
//Make sure the images that were saved by Aspose.Words into Windows temporary
//folder are automatically deleted by Aspose.Pdf when they are no longer needed.
pdf.IsImagesInXmlDeleteNeeded = true;
pdf.BindXML(xmlDoc, null);
//*** Aspose.Pdf font cache, see comments below.
pdf.IsTruetypeFontMapCached = false;
//If you convert to PDF multiple files in your application,
//uncomment the following lines to improve the speed of conversion.
//pdf.IsTruetypeFontMapCached = true;
//pdf.TruetypeFontMapPath = <some path where you have read/write access>
//Now produce the PDF file.
pdf.Save(docDataStream);
numberOfPages = pdf.PageCount;
}