Products Technologies Demo Docs Blog Support Company

Getting Started: ServerTextControl and MailMerge with ASP.NET MVC (.NET Framework)

This article shows how to use the TX Text Control ASP.NET ServerTextControl and MailMerge classes within an ASP.NET web application in Visual Studio 2022.

Getting Started: ServerTextControl and MailMerge with ASP.NET MVC (.NET Framework)

The following tutorial shows how to create an ASP.NET web application that uses the ServerTextControl class and MailMerge to create documents.

Creating the Application

Make sure that you downloaded the latest version of Visual Studio 2022.

  1. In Visual Studio 2022, create a new project by choosing Create a new project.

  2. Select ASP.NET Web Application (.NET Framework) as the project template and confirm with Next.

  3. Choose a name for your project, select .NET Framework 4.8 as the Framework and confirm with Create.

  4. In the next dialog, choose MVC as the project template and confirm with Create.

    Creating the .NET 6 project

Adding TX Text Control References

  1. While the project is selected in the Solution Explorer, choose Project -> Add Project Reference... to open the Reference Manager. In the opened dialog, select Browse... to select the required TX Text Control assemblies. Navigate to the installation folder of TX Text Control and select the following assemblies from the Assembly folder:

    • TXDocumentServer.dll
    • TXTextControl.dll
    • TXTextControl.Server.dll

    Repeat this step with the following assemblies from the Assembly/bin64 folder:

    • txic.dll
    • txkernel.dll
    • txtools.dll

    After selecting these assemblies, close the Reference Manager by confirming with OK.

  2. While the project is selected in the Solution Explorer, choose Project -> Add New Item.... Select Text File, name the file licenses.licx and close the dialog by clicking Add.

    ASP.NET Core Web Application

    Open the newly added file and add the following content:

    TXTextControl.ServerTextControl, TXTextControl.Server, Version=31.0.1600.500, Culture=neutral, PublicKeyToken=6b83fe9a75cfb638

Using ServerTextControl and MailMerge

  1. Find the HomeController.cs file in the Controllers folder. Replace the Index() method with the following code:

    public ActionResult Index() {
    
      using (TXTextControl.ServerTextControl tx = new TXTextControl.ServerTextControl()) {
        tx.Create();
    
        // adding static text
        TXTextControl.Selection sel = new TXTextControl.Selection();
        sel.Text = "Welcome to Text Control\r\n";
        sel.Bold = true;
    
        tx.Selection = sel;
    
        // adding merge fields
        TXTextControl.DocumentServer.Fields.MergeField mergeField = 
          new TXTextControl.DocumentServer.Fields.MergeField() {
            Text = "{{company}}",
            Name = "company",
            TextBefore = "Company name: "
          };
    
        tx.ApplicationFields.Add(mergeField.ApplicationField);
    
        // alternatively load a template
        //TXTextControl.LoadSettings ls = new TXTextControl.LoadSettings() {
        //  ApplicationFieldFormat = TXTextControl.ApplicationFieldFormat.MSWord
        //};
    
        //tx.Load("template.docx", TXTextControl.StreamType.WordprocessingML, ls);
    
        // merge fields with MailMerge engine
        using (TXTextControl.DocumentServer.MailMerge mailMerge = 
          new TXTextControl.DocumentServer.MailMerge()) {
            mailMerge.TextComponent = tx;
            mailMerge.MergeJsonData("[{\"company\": \"Text Control, LLC\" }]");
          }
    
        // return result as HTML
        string result = "";
        tx.Save(out result, TXTextControl.StringStreamType.HTMLFormat);
    
        // alternatively save as PDF
        //byte[] baPdf;
        //tx.Save(out baPdf, TXTextControl.BinaryStreamType.AdobePDF);
    
        ViewBag.Document = result;
      }
    
      return View();
    }

Displaying the Results

  1. Find the Index.cshtml file in the Views -> Home folder. Replace the complete file with the following code:

    @{
        ViewData["Title"] = "Home Page";
    }
    
    @Html.Raw(ViewBag.Document)

Compile and start the application.

Stay in the loop!

Subscribe to the newsletter to receive the latest updates.

Related Posts

ASP.NETASP.NET CoreMailMerge

Getting Started: ServerTextControl and MailMerge with ASP.NET Core

This article shows how to use the TX Text Control ASP.NET ServerTextControl and MailMerge classes within a .NET 6 application in Visual Studio 2022.


ASP.NETDocument EditorHTML5

Implementing Conditional Table Cell Colors with MailMerge

This ASP.NET MVC sample shows how to implement conditional table cell colors using the online document editor and an ASP.NET backend.


ASP.NETASP.NET CoreDOCX

Use MailMerge in .NET on Linux to Generate Pixel-Perfect PDFs from DOCX…

This article explores how to use the TX Text Control MailMerge feature in .NET applications on Linux to generate pixel-perfect PDFs from DOCX templates. This powerful combination enables…


ASP.NETASP.NET CoreContract

Generating Dynamic NDAs Using TX Text Control MailMerge in C# .NET

This article demonstrates how to generate dynamic NDAs using TX Text Control MailMerge in C# .NET. It covers the process of creating a template, binding data, and generating the final document.


ASP.NETASP.NET CoreBackend

Designing a Maintainable PDF Generation Web API in ASP.NET Core (Linux) C#…

This article shows how to create a PDF generation Web API in ASP.NET Core on Linux using TX Text Control .NET Server. The clean architecture is used to create a maintainable and testable solution.