彩票走势图

TX Text Control系列教程— ASP.NET :在.NET 5中将.NET Server用于ASP.NET

翻译|使用教程|编辑:况鱼杰|2020-11-25 15:05:58.790|阅读 429 次

概述:.NET 5已经发布了,它是将.NET Core和.NET Framework更多的结合在一起(包括Win32层)。虽然,.NET 5并不是.NET框架的替代品,但.NET 5是.NET的主要实现,仍然支持.NET框架4.8。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

TX Text Control Server for ASP.NET (incl. WPF)是一个企业级的服务器端文字处理控件。它为用于ASP.NET服务器环境提供一个完全可编程的文字处理引擎,并且包含一个WPF客户端版本。

点击下载TX Text Control Server for ASP.NET (incl. WPF)最新试用版


.NET 5已经发布了,它是将.NET Core和.NET Framework更多的结合在一起(包括Win32层)。虽然,.NET 5并不是.NET框架的替代品,但.NET 5是.NET的主要实现,仍然支持.NET框架4.8。

具体到网络世界,.NET 5将是未来的主要平台。我们将很快发布关于.NET计划的详细策略,包括.NET 5支持的Windows Forms和WPF库的发布日期。

ASP.NET核心

ASP.NET Web组件部分TX Text Control .NET Server for ASP.NET已经可以在Visual Studio 2019(> 16.8.0)中构建的.NET 5 ASP.NET Core Web应用程序中使用。在.NET Core的早期版本中,没有包含所需的System.Drawing程序集,并且许可证管理器(LC.EXE)无法工作。.NET 5终于解决了这些悬而未决的问题。

下面的教程展示了如何使用在线编辑器TextControl和ServerTextControl类创建文档的.NET 5 ASP.NET Core Web应用程序。

创建应用程序

确保您下载了.NET 5 SDK附带的最新版本的Visual Studio 2019(> 16.8.0)。

  • 在Visual Studio 2019中,选择 "创建新项目 "来创建一个新项目。
  • 选择ASP.NET Core Web Application作为项目模板,并用 "下一步 "确认。


  • 为您的项目选择一个名称,并以 "创建 "确认。
  • 在下一个对话框中,选择ASP.NET Core 5.0作为平台,选择ASP.NET Core Web App(Model-View-Controller)作为模板,并用Create确认。

添加NuGet包

  • 在 "解决方案资源管理器 "中,选择您创建的项目,并从 "项目 "主菜单中选择管理NuGet包...。

浏览 txtextcontrol.web 并安装最新版本的 TXTextControl.Web 包。

配置应用程序

打开位于项目根目录下的Startup.cs文件。在Configure方法中,在该方法的结尾添加以下代码。

// 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>();

将控件添加到视图中

在 "视图"->"主页 "文件夹中找到Index.cshtml文件。用下面的代码替换完整的内容。

@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>
}

这段代码将Text控件添加到视图和按钮中,调用Web API端点来创建PDF文档。

将ServerTextControl添加到项目中

  • 当项目在解决方案资源管理器中被选中时,选择项目->添加参考...打开参考管理器。在打开的对话框中,选择浏览...来选择所需的 TX Text Control 程序集。导航到 TX Text Control 的安装文件夹,并从汇编文件夹中选择以下汇编。
    • TXDocumentServer.dll
    • TXTextControl.dll
    • TXTextControl.Server.dll


重复这一步,从Assembly/bin64文件夹中取出下列程序集。

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

选择这些程序集后,用 "确定 "确认关闭参考管理器。

  • 在解决方案资源管理器中选择项目时,选择项目->添加现有项目....。浏览到TX Text Control安装文件夹,从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

在 "解决方案资源管理器 "中选择步骤6中的文件,并将 "复制到输出目录 "设置为 "始终复制"。

在解决方案资源管理器中选择项目的同时,选择项目->添加新项目....。选择文本文件,将文件命名为licenses.licx,并单击 "添加 "关闭对话框。



打开新添加的文件,添加以下内容。
TXTextControl.ServerTextControl, TXTextControl.Server, Culture=neutral, PublicKeyToken=6b83fe9a75cfb638

将 "构建动作 "属性设置为 "嵌入资源"。

在 "解决方案资源管理器 "中选择项目,从 "项目主菜单 "中选择 "编辑项目文件"。找到PropertyGroup条目,用以下代码替换整个节点。

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

添加Web API端点

在Models文件夹中创建一个名为TransferDocument.cs的新类文件,并向该类添加以下代码。

public class TransferDocument {
  public string Document { get; set; }
}

打开HomeController.cs,添加以下方法。

	[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);
}

现在,编译并启动应用程序。输入一些文本,然后点击 "创建PDF "按钮来调用创建的端点。


如果您对Text Control感兴趣,可以咨询购买正版授权软件。

关注慧聚IT微信公众号 ☟☟☟,了解产品的最新动态及最新资讯。

1561953111.jpg


标签:文字处理控件

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP