Products Technologies Demo Docs Blog Support Company
TX Text Control 34.0 SP1 has been released - Learn more

Using TX Text Control .NET Server with .NET 5

.NET 5 has been officially released several days ago. This article shows how to use the TX Text Control ASP.NET editor and the ServerTextControl within a .NET 5 application in Visual Studio 2019.

Using TX Text Control .NET Server with .NET 5

.NET 5 has been released officially these days during the .NET Conf. .NET 5 brings .NET Core and the .NET Framework more together (including the Win32 layer). Although, .NET 5 is not a replacement for the .NET Framework, .NET 5 is the main implementation of .NET and the .NET Framework 4.8 is still supported.

Specifically in the web world, .NET 5 will be the major platform going forward. We will release a detailed strategy about our .NET plans very soon including release dates for .NET 5 supported Windows Forms and WPF libraries.

ASP.NET Core

Our ASP.NET web components part of TX Text Control .NET Server can be already used in .NET 5 ASP.NET Core web applications built in Visual Studio 2019 (> 16.8.0). In earlier versions of .NET Core, the required System.Drawing assembly was not included and the license manager (LC.EXE) didn't work. .NET 5 finally fixed these outstanding issues.

The following tutorial shows how to create a .NET 5 ASP.NET Core web application using the online editor TextControl and the ServerTextControl class to create documents.

Creating the Application

Make sure that you downloaded the latest version of Visual Studio 2019 (> 16.8.0) that comes with the .NET 5 SDK.

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

  2. Select ASP.NET Core Web Application as the project template and confirm with Next.

    Creating the .NET 5 project

  3. Choose a name for your project and confirm with Create.

  4. In the next dialog, choose ASP.NET Core 5.0 as the platform, select ASP.NET Core Web App (Model-View-Controller) as the template and confirm with Create.

    Creating the .NET 5 project

Adding the NuGet Package

  1. In the Solution Explorer, select your created project and choose Manage NuGet Packages... from the Project main menu.

    Browse for txtextcontrol.web and Install the latest version of the TXTextControl.Web package.

    ASP.NET Core Web Application

Configure the Application

  1. Open the Startup.cs file located in the project's root folder. In the Configure method, add the following code to the end of the method:

    // serve static linked files (JavaScript and CSS for the editor)
    app.UseStaticFiles(new StaticFileOptions
    {
        FileProvider = new Microsoft.Extensions.FileProviders.PhysicalFileProvider(
           System.IO.Path.Combine(System.IO.Path.GetDirectoryName(
               System.Reflection.Assembly.GetEntryAssembly().Location),
               "TXTextControl.Web")),
        RequestPath = "/TXTextControl.Web"
    });
    
    // enable Web Sockets
    app.UseWebSockets();
    
    // attach the Text Control WebSocketHandler middleware
    app.UseMiddleware<TXTextControl.Web.WebSocketMiddleware>();

Adding the Control to the View

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

    @using TXTextControl.Web.MVC
    
    @Html.TXTextControl().TextControl().Render()
    
    <input type="button" value="Create PDF" onclick="createPDF()" />
    
    @section Scripts {
        <script type="text/javascript">
    
            // converts base64 string back to a blob
            function base64ToBlob(base64) {
                var binary = atob(base64.replace(/\s/g, ''));
                var len = binary.length;
                var buffer = new ArrayBuffer(len);
                var view = new Uint8Array(buffer);
    
                for (var i = 0; i < len; i++) {
                    view[i] = binary.charCodeAt(i);
                }
    
                return view;
            }
    
            function createPDF() {
                // save the contents of the editor
                TXTextControl.saveDocument(TXTextControl.streamType.InternalUnicodeFormat, function (e) {
    
                    // call the Web API "CreatePDF"
                    $.ajax({
                        type: "POST",
                        url: "/Home/CreatePDF?id=123",
                        contentType: 'application/json',
                        data: JSON.stringify({
                            document: e.data
                        }),
    
                        success: successFunc,
                        error: errorFunc
                    });
    
                    function successFunc(data, status) {
                        // create a file blob
                        var file = new Blob([base64ToBlob(data)], { type: "application/pdf" });
    
                        // create a temporary link element
                        var a = document.createElement("a");
                        a.href = URL.createObjectURL(file);
                        a.download = "results.pdf";
    
                        // attach to body and click
                        document.body.appendChild(a);
                        a.click();
    
                        // remove the element
                        setTimeout(function () {
                            document.body.removeChild(a);
                        }, 0); 
    
                    }
    
                    function errorFunc(xhr, ajaxOptions, thrownError) {
                        alert(thrownError);
                    }
                });
            }
        </script>
    }

    This code adds the Text Control to the view and button that calls a Web API endpoint to create a PDF document.

Adding ServerTextControl to the Project

  1. While the project is selected in the Solution Explorer, choose Project -> Add 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

    Create a .NET Core 5 application

    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 Existing Item.... Browse to the TX Text Control installation folder and select the following files from the Assembly/bin64:

    • tx28_xml.dll
    • tx28_css.dll
    • tx28_doc.dll
    • tx28_dox.dll
    • tx28_htm.dll
    • tx28_pdf.dll
    • tx28_rtf.dll
    • tx28_xlx.dll
  3. Select the files from step 6 in the Solution Explorer and set the Copy to Output Directory to Copy always.

  4. 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.

    Create a .NET Core 5 application

    Open the newly added file and add the following content:

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

    Set the Build Action property to Embedded Resource.

  5. Select the project in the Solution Explorer and choose Edit Project File from the Project main menu. Find the PropertyGroup entry and replace the whole node with the following code:

    <PropertyGroup>
      <TargetFramework>net5.0</TargetFramework>
      <EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
    </PropertyGroup>

Adding a Web API Endpoint

  1. Create a new class file in the Models folder named TransferDocument.cs and add the following code to the class:

    public class TransferDocument {
      public string Document { get; set; }
    }
  2. Open the HomeController.cs and add the following method:

    [HttpPost]
    public IActionResult CreatePDF([FromBody] TransferDocument document) {
    
      // create a ServerTextControl
      using (TXTextControl.ServerTextControl tx = new TXTextControl.ServerTextControl()) {
    
        tx.Create();
        tx.Load(Convert.FromBase64String(document.Document),
          TXTextControl.BinaryStreamType.InternalUnicodeFormat);
    
        byte[] bPDF;
    
        tx.Save(out bPDF, TXTextControl.BinaryStreamType.AdobePDF);
     
        return Ok(bPDF);
        
      }
    }

Now, compile and start the application. Type in some text and click the button Create PDF to call the created endpoint.

Create a .NET Core 5 application

Stay in the loop!

Subscribe to the newsletter to receive the latest updates.

ASP.NET

Integrate document processing into your applications to create documents such as PDFs and MS Word documents, including client-side document editing, viewing, and electronic signatures.

ASP.NET Core
Angular
Blazor
JavaScript
React
  • Angular
  • Blazor
  • React
  • JavaScript
  • ASP.NET MVC, ASP.NET Core, and WebForms

Learn more Trial token Download trial

Related Posts

ASP.NETASP.NET CoreMIME

Why Defining MIME Types for PDF/A Attachments Is Essential

The PDF/A standard was created to ensure the long-term reliable archiving of digital documents. An important aspect of the standard involves properly handling embedded files and attachments within…


ASP.NETASP.NET CoreConference

We are Returning to CodeMash 2026 as a Sponsor and Exhibitor

We are excited to announce that we will be returning to CodeMash 2026 as a sponsor and exhibitor. Join us to learn about the latest in .NET development and how our products can help you build…


ASP.NETASP.NET Core

AI-Ready Documents in .NET C#: How Structured Content Unlocks Better…

Most organizations use AI on documents that were never designed for machines. PDFs without tags, inconsistent templates, undescribed images, and disorganized reading orders are still common. This…


ASP.NETASP.NET CoreDocument Automation

Why Document Processing Libraries Require a Document Editor

A document processing library alone cannot guarantee reliable and predictable results. Users need a true WYSIWYG document editor to design and adjust templates to appear exactly as they will after…


ASP.NETWindows FormsWPF

TX Text Control 34.0 SP1 is Now Available: What's New in the Latest Version

TX Text Control 34.0 Service Pack 1 is now available, offering important updates and bug fixes for all platforms. If you use TX Text Control in your document processing applications, this service…

Summarize this blog post with:

Share on this blog post on: