LEADTOOLS SDK对文档服务执行POCO调用 - 控制台C# .NET 6

 对文档服务执行 POCO 调用 - 控制台 C# .NET 6

本教程介绍如何在 C# Windows 控制台应用程序中对 LEADTOOLS SDK 文档服务执行 POCO 调用。本教程中介绍的调用将执行以下操作:

  • 确保服务已准备就绪
  • 将文件从 URI 加载到文档服务缓存中
  • 收集已加载文件的文本。
概述 
概括本教程介绍如何在 C# Windows 控制台应用程序中处理与 LEADTOOLS 文档服务之间的 POCO 调用。
完成时间20分钟
Visual Studio 项目下载教程项目 (1 KB)
平台C# Windows 控制台应用程序
集成开发环境Visual Studio 2022
开发许可证下载 LEADTOOLS

所需知识

在开始执行对文档服务执行 POCO 调用 -控制台 C# 教程之前,请先查看“开始使用文档查看器演示”教程中的“使用文档服务设置和配置演示”部分,熟悉设置和运行文档服务项目的基本步骤。

构建 Leadtools.Document.Service.dll

打开位于以下文件路径的类库项目。 <INSTALL_DIR>\LEADTOOLS23\Examples\Document\DotNet\Document.Service\net

构建项目以构建Leadtools.Document.Service.dll

创建项目并添加 LEADTOOLS 引用

从一个全新的 .NET 6 控制台项目开始。本教程不需要“添加引用”和“设置许可证”教程中包含的代码。

所需的引用取决于项目的目的。可以通过本地 DLL 引用添加引用。

本教程所需的 DLL 仅为Leadtools.Document.Service.dllNewtonsoft.Json。这两个 DLL 是Leadtools.Document.Service.dll在上一步中创建的。该 DLL 应位于此处:<INSTALL_DIR>\LEADTOOLS23\Examples\Document\DotNet\Document.Service\obj_\Debug

有关您的应用程序所需的 DLL 文件的完整列表,请参阅应用程序中要包含的文件

设置许可证文件

许可证用于解锁项目所需的功能。必须在调用任何工具包函数之前设置许可证。有关详细信息(包括不同平台的教程),请参阅设置运行时许可证

运行时许可证有两种类型:

  • 评估许可证,在下载评估工具包时获得。它允许对工具包进行评估。
  • 部署许可证。如果需要部署许可证文件和开发者密钥,请参阅获取许可证

注意:在添加引用和设置许可证教程中更详细地介绍了添加 LEADTOOLS NuGet 和本地引用以及设置许可证

与文档服务应用程序交互

创建项目、添加参考并设置许可证后,就可以开始编码了。

解决方案资源管理器中,打开Program.cs。将以下语句添加到顶部的 using 块中Program.cs

C#
using Leadtools.Document.Service; 
using Leadtools.Document.Service.Document; 
using Leadtools.Document.Service.Models; 
using Leadtools.Document.Service.Models.Factory; 
using Leadtools.Document.Service.Models.Page; 

文档服务具有不同的 API 调用,可以使用或不使用任何 HTML5/JS UI 进行交互。

  • 第一步是确定文档服务是否已连接。

在该Program.cs文件中,创建一个名为 的新static async Task对象CallDocumentService()。创建一个DocumentService对象,并将 设置ServiceAddress为文档服务正在使用的 URI。接下来,创建一个请求对象,用于在服务准备就绪时进行 ping 操作。在本教程中,.NET 6 文档服务运行在 上http://localhost:30000

C#
static async Task CallDocumentService(){ 
    var service = new DocumentService(); 
    service.ServiceAddress = new Uri("http://localhost:30000"); 
    var pingRequest = new Request(); 
    await service.Test.PingGet(pingRequest); 
} 
  • 下一步是创建一个调用,将文件从 URI 加载到文档服务缓存中。更新该CallDocumentService()方法并添加以下代码。以下代码将创建一个LoadFromUriRequest对象并返回一个LEADDocument对象。

一旦文件被加载到文档服务的缓存中,DocumentId就需要从页面中收集文本LEADDocument

C#
static async Task CallDocumentService(){ 
    var service = new DocumentService(); 
    service.ServiceAddress = new Uri("http://localhost:30000"); 
    var pingRequest = new Request(); 
    await service.Test.PingGet(pingRequest); 
 
    var loadFromUriRequest = new LoadFromUriRequest 
    { 
        Uri = new Uri("https://demo.leadtools.com/images/pdf/leadtools.pdf"), 
        Options = new LoadDocumentOptions { }, 
    }; 
 
    var loadFromUriResult = await service.Factory.LoadFromUri(loadFromUriRequest); 
    var document = LEADDocument.FromJSON(loadFromUriResult.Response.Document); 
 
    Console.WriteLine($"Document ID: {document.DocumentId}\n"); 
} 
  • 更新CallDocumentService()方法以接收文本并将其输出到控制台。
C#
static async Task CallDocumentService(){ 
    var service = new DocumentService(); 
    service.ServiceAddress = new Uri("http://localhost:30000"); 
    var pingRequest = new Request(); 
    await service.Test.PingGet(pingRequest); 
 
    var loadFromUriRequest = new LoadFromUriRequest 
    { 
        Uri = new Uri("https://demo.leadtools.com/images/pdf/leadtools.pdf"), 
        Options = new LoadDocumentOptions { }, 
    }; 
 
    var loadFromUriResult = await service.Factory.LoadFromUri(loadFromUriRequest); 
    var document = LEADDocument.FromJSON(loadFromUriResult.Response.Document); 
 
    Console.WriteLine($"Document ID: {document.DocumentId}\n"); 
 
    var getTextRequest = new GetTextRequest 
    { 
        BuildText = true, 
        BuildWords = true, 
        DocumentId = document.DocumentId, 
        ImagesRecognitionMode = DocumentTextImagesRecognitionMode.Auto, 
        PageNumber = 1, 
        TextExtractionMode = DocumentTextExtractionMode.OcrOnly, 
    }; 
 
    var getTextResult = await service.Page.GetText(getTextRequest); 
    var documentPageText = getTextResult.Response.PageText; 
 
    Console.WriteLine(documentPageText.Text); 
} 
  • 添加下面的代码行来运行该CallDocumentService()函数。
C#
static void Main(string[] args){ 
    CallDocumentService().GetAwaiter().GetResult(); 
} 

运行项目

确保 .NET 6 文档服务正常运行。“文档查看器演示入门”教程中的“使用文档服务设置和配置演示”部分介绍了此内容。

按F5或选择“调试”->“开始调试”来运行项目。

如果正确遵循这些步骤,应用程序就会运行,并且提取的文档 ID 和文本将显示在控制台上。

显示控制台输出的屏幕截图。

本教程展示了如何与 LEADTOOLS SDK 文档服务进行交互。此外,还展示了如何构建 Leadtools.Document.Service.dll 并在 C# .NET 6 项目中引用它。

参见

基于实时迭代的数值鲁棒NMPC双模稳定预测模型(Matlab代码实现)内容概要:本文介绍了基于实时迭代的数值鲁棒非线性模型预测控制(NMPC)双模稳定预测模型的研究与Matlab代码实现,重点在于提升系统在存在不确定性与扰动情况下的控制性能与稳定性。该模型结合实时迭代优化机制,增强了传统NMPC的数值鲁棒性,并通过双模控制策略兼顾动态响应与稳态精度,适用于复杂非线性系统的预测控制问题。文中还列举了多个相关技术方向的应用案例,涵盖电力系统、路径规划、信号处理、机器学习等多个领域,展示了该方法的广泛适用性与工程价值。; 适合人群:具备一定控制理论基础和Matlab编程能力,从事自动化、电气工程、智能制造、机器人控制等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于非线性系统的高性能预测控制设计,如电力系统调度、无人机控制、机器人轨迹跟踪等;②解决存在模型不确定性、外部扰动下的系统稳定控制问题;③通过Matlab仿真验证控制算法的有效性与鲁棒性,支撑科研论文复现与工程原型开发。; 阅读建议:建议读者结合提供的Matlab代码进行实践,重点关注NMPC的实时迭代机制与双模切换逻辑的设计细节,同时参考文中列举的相关研究方向拓展应用场景,强化对数值鲁棒性与系统稳定性之间平衡的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值