How to generate PDF report starting from Word document?
You can generate a PDF report starting from a Word document by using Essential® DocIO and Essential® PDF. Below are the steps to be followed:
- Create a Word document from scratch
- Perform Mail merge
- Convert the Word document to PDF
For more information about the required assemblies, please refer to our UG documentation page.
Step 1: Create a Word document from scratch
Create a template Word document with merge fields using Essential® DocIO.
The following code example shows how to create a Word document template with merge fields.
C#
// Creates a new instance of Word document
WordDocument document = new WordDocument();
// Adds one section and one paragraph to the document
document.EnsureMinimal();
// Sets page margins to the last section of the document
document.LastSection.PageSetup.Margins.All = 72;
// Appends text to the last paragraph
document.LastParagraph.AppendText("Emp_Id: ");
// Appends merge field to the last paragraph
document.LastParagraph.AppendField("Emp_Id", FieldType.FieldMergeField);
document.LastParagraph.AppendText("\nName: ");
document.LastParagraph.AppendField("Name", FieldType.FieldMergeField);
document.LastParagraph.AppendText("\nPhone: ");
document.LastParagraph.AppendField("Phone", FieldType.FieldMergeField);
document.LastParagraph.AppendText("\nCity: ");
document.LastParagraph.AppendField("City", FieldType.FieldMergeField);
// Saves and closes the WordDocument instance.
document.Save("Template.docx");
document.Close();
VB
' Creates an instance of a WordDocument
Dim document As New WordDocument()
' Adds one section and one paragraph to the document
document.EnsureMinimal()
' Sets page margins to the last section of the document
document.LastSection.PageSetup.Margins.All = 72
' Appends text to the last paragraph.
document.LastParagraph.AppendText("Emp_Id: ")
' Appends merge field to the last paragraph
document.LastParagraph.AppendField("Emp_Id", FieldType.FieldMergeField)
document.LastParagraph.AppendText(vbLf & "Name: ")
document.LastParagraph.AppendField("Name", FieldType.FieldMergeField)
document.LastParagraph.AppendText(vbLf & "Phone: ")
document.LastParagraph.AppendField("Phone", FieldType.FieldMergeField)
document.LastParagraph.AppendText(vbLf & "City: ")
document.LastParagraph.AppendField("City", FieldType.FieldMergeField)
' Saves and closes the WordDocument instance.
document.Save("Template.docx")
document.Close()
The generated template document looks as follows.

Step 2: Perform Mail merge
The Mail merge operation replaces the matching merge fields with the respective data.
The following code example shows how to perform a simple Mail merge in the generated template document with a string array as the data source.
C#
// Opens the template document
WordDocument document = new WordDocument("Template.docx");
// Gets the data for Mail merge
string[] fieldNames = new string[] { "Emp_Id", "Name", "Phone", "City" };
string[] fieldValues = new string[] { "1001", "Peter", "+122-2222222", "London" };
// Performs the Mail merge
document.MailMerge.Execute(fieldNames, fieldValues);
// Saves and closes the WordDocument instance.
document.Save("WordReport.docx");
document.Close();
VB
' Opens the template document
Dim document As New WordDocument("Template.docx")
' Gets the data for Mail merge
Dim fieldNames As String() = New String() {"Emp_Id", "Name", "Phone", "City"}
Dim fieldValues As String() = New String() {"1001", "Peter", "+122-2222222", "London"}
' Performs the Mail merge
document.MailMerge.Execute(fieldNames, fieldValues)
' Saves and closes the WordDocument instance.
document.Save("WordReport.docx")
document.Close()
The resultant document looks as follows.

Step 3: Convert the Word document to PDF
The following code example illustrates how to convert a Word document into a PDF document.
C#
// Opens the template document
WordDocument document = new WordDocument("WordReport.docx");
// Creates an instance of the DocToPDFConverter
DocToPDFConverter converter = new DocToPDFConverter();
// Converts Word document to PDF document
PdfDocument pdfDocument = converter.ConvertToPDF(document);
// Saves the report as a PDF document
pdfDocument.Save("PDFReport.pdf");
// Closes the instance of PDF document object
pdfDocument.Close(true);
// Closes the instance of Word document object
document.Close();
VB
' Opens the template document
Dim document As New WordDocument("WordReport.docx")
' Creates an instance of the DocToPDFConverter
Dim converter As New DocToPDFConverter()
' Converts Word document into PDF document
Dim pdfDocument As PdfDocument = converter.ConvertToPDF(document)
' Saves the report as a PDF document
pdfDocument.Save("PDFReport.pdf")
' Closes the instance of PDF document object
pdfDocument.Close(True)
' Closes the instance of Word document object
document.Close()
The generated PDF report looks as follows.

The following simple sample with complete code snippets demonstrates on how to generate a PDF report starting from a Word document using Essential® DocIO and PDF.