If you can afford to purchase 3rd party toolkit (like Docentric Toolkit, for example), you will be able to do all sorts of things with your documents. You can create a document from scratch via Docentric APIs. Or you create a template in MS Word and then merge it with data from any source .NET can read.
Generated documents can be native MS Word documents (docx) or fixed documents like pdf or xps. Any Word feature is supported in templates: tables, charts, headers, footers, conditional content, advanced formatting, etc.
Once the document is generated it is in docx format. The code snippet below shows how to save it in pdf format. This snippet is in C#, though.
Document document;
using (FileStream fileStream = File.OpenRead(TestBase.WordDocumentsPath + @"Test1.docx"))
{
document = Document.Load(fileStream); }
document.Save(TestBase.WordDocumentsPath + @"Test1.pdf");
}