跳至页脚内容
与其他组件比较

IronOCR 和 AWS Textract OCR 之间的比较

什么是OCR?

将文本图像转换为机器可读的文本格式的过程称为光学字符识别(OCR)。 例如,如果您扫描表格、发票或收据,您的计算机将保存扫描件为图像文件。图像文件中的数据不能通过文本编辑器进行编辑、搜索或计数。 然而,您可以使用OCR解决方案将图像文件转换为以文本数据存储的文本文档。

在这个现代化时代,大多数业务工作流程涉及从印刷媒体接收信息。 不同的文档,如纸质表单、发票、扫描的法律文件、表格提取、打印文本或合同,都是业务流程的一部分。 此外,数字化这些文档内容会创建隐藏有文本的图像。 图像中的文本不能像文本文档一样由文字处理工具进行处理。 OCR技术通过将文本图像转换为可以由其他业务软件分析的文本数据来解决这个问题。

OCR如何工作?

OCR引擎通过以下步骤工作:

图像获取

在此过程中,扫描仪读取文件并将其转换为二进制数据。 OCR软件识别扫描的图像,并将亮区分类为背景,暗区分类为文本。

预处理

OCR软件首先清理图像并去除错误,以准备其数据进行读取。

文本识别

文本识别的两种主要类型的OCR算法是模式匹配和特征提取。

模式匹配

在模式匹配过程中,字符图片或字形被隔离,并与之前记录的字形进行比较。

特征提取

通过特征提取过程,字形被分解为线条、闭合环、线段方向和线条交叉点等特征。

后处理

技术将在分析后将检索回的文本数据转换为数字文件。 某些OCR系统可以创建包含扫描文档前后版本的注释PDF文档。

本文将讨论两种最流行的应用程序和OCR文档库之间的比较:

  • IronOCR
  • AWS OCR Textract

IronOCR库

IronOCR是一个C# .NET库,提供扫描、搜索、读取图像和PDF的服务。 它配有125+全球语言包。 输出可以以文本、结构化数据或可搜索的PDF形式实现。 支持.NET版本如6、5、Core、Standard和Framework。

IronOCR独特之处在于其能够自动检测并从扫描不完全的图像和文档中提取数据。 'IronTesseract'类拥有最简便的API。 它提供了Tesseract在任何平台上的最先进构建,具有更高的速度、准确性和本地DLL及API。

IronOCR也可以从所有图像格式扫描条形码和QR码,并使用最新的Tesseract 5引擎读取文本和执行PDF扫描。

功能

  • 它纯粹为.NET应用程序而设计。
  • 它可以支持125种不同语言。 IronOCR支持阿拉伯语、中文、英语、芬兰语、法语、德语、日语和许多其他语言。
  • 它可以矫正倾斜图像的位置,并去除图像的噪声以获得精确的输出。
  • 它在低分辨率图像(低DPI)上表现出色。
  • 它可以读取多种类型的QR码和条形码。
  • 它还支持Gif和Tiff格式。
  • 它允许多线程同时进行。 这是其他OCR库中不存在的一个出色功能。 它使过程更加流畅。
  • 它可以轻松对PDF文件进行OCR处理,并使用OCR导出可搜索的PDF文档。

现在,让我们看看AWS OCR。

AWS OCR Textract

亚马逊的 AWS Textract 是一项机器学习 (ML) 服务,可以自动从扫描的文档中提取文本和数据。 它超越简单的 OCR,利用深度学习识别、理解和提取表格数据。

AWS OCR Textract 使用机器学习读取和处理文档,快速提取文本和数据,无需人工干预。 Textract 可快速提取数据,无需耗费数小时或数天。 此外,您可以通过Amazon增强人工智能(AI)添加人为审核,以监督模型并检查敏感数据。

功能

  • 检测多种文档中的文本,包括财务报告、医疗记录、表格和纳税表单。
  • 使用文档分析API从结构化数据的文档中提取文本、表单和表格数据。
  • 使用Analyze Document API中的查询功能指定和提取文档中的信息。
  • 使用Analyze Expense API处理发票和收据。
  • 使用Analyze ID API处理政府签发的身份证件,例如驾照和护照。 - 可扩展的文档分析可以加速决策。
    1. 创建Visual Studio项目

文章的其余部分如下:

  1. 安装IronOCR
  2. 安装AWS OCR Textract
  3. 安装 AWS OCR Textract
  4. PDF 转文本
  5. 图像转文本
  6. 条形码和二维码转文本
  7. 结论
  8. 结论

1. 创建 Visual Studio 项目

本教程将使用 Visual Studio 2022 版本,因此我假设您已经安装了它。

  • 打开 Visual Studio 2022。
  • 生成一个新的 .NET Core 项目,然后选择控制台应用程序。
Aws Ocr Alternatives 1 related to 1. 创建 Visual Studio 项目

控制台应用程序

  • 给项目命名。 例如 TextReader。
  • 最新的、最稳定的 .NET 框架版本是 6.0。我们将使用这个版本。

.NET Framework

  • 点击创建按钮,项目将被创建。

接下来,我们将逐个安装库供我们使用。

  1. 使用Visual Studio NuGet包管理器。

IronOCR库可以通过四种方式下载和安装。 具体如下

  1. 使用 Visual Studio NuGet 包管理器。
  2. 通过 NuGet 网站直接下载。
  3. 通过 IronOCR 网页直接下载。

    2.1. 使用Visual Studio NuGet Manager

2.1. 使用Visual Studio NuGet管理器

  1. 展开工具或右键点击解决方案资源管理器。

  2. 展开工具或右键单击解决方案资源管理器。
  3. 扩展 NuGet 包管理器。
  4. 点击管理解决方案的 NuGet 包或在解决方案资源管理器中点击管理 NuGet 包。
Manage NuGet Package

管理 NuGet 程序包

之后,搜索栏中将出现一个新窗口:输入 IronOCR。 检查右侧的项目框并点击安装。

浏览 IronOCR

浏览 IronOCR

2.2. 通过NuGet网站直接下载

2.2. 通过 NuGet 网站直接下载

  1. 导航到链接"https://www.nuget.org/packages/IronOcr/"。

  2. 转到链接"https://www.nuget.org/packages/IronOcr/"。
  3. 双击下载的包。
  4. 双击下载包。 它将自动安装。

2.3. 通过IronOCR网页直接下载

开发人员可以使用此链接从网站直接下载IronOCR库。

开发者可以通过使用此链接直接从网站下载IronOCR库。

  1. 在解决方案窗口中右键单击项目。
  2. 接下来,点击确定以添加引用。

2.4. 在Visual Studio中使用命令行

2.4. 在Visual Studio中使用命令行

  1. 在 Visual Studio 中,转到工具-> NuGet 包管理器 -> 包管理器控制台。 现在包将下载/安装在当前项目中并准备使用。
Install-Package IronOcr
![包管理控制台](/static-assets/ocr/blog/aws-ocr-alternatives/aws-ocr-alternatives-4.webp)

class="content__image-caption">控制台应用

Package Manager Console

控制台应用程序

Install IronOCR

控制台应用程序

2.5. 添加IronOCR命名空间

在程序中包含这行代码以使用IronOCR:

现在让我们安装AWS Textract。

using IronOcr;
using IronOcr;
Imports IronOcr
$vbLabelText   $csharpLabel

3. 安装AWS Textract OCR

在您第一次使用Amazon Textract之前,完成以下任务:

  1. 注册AWS服务。

  2. 创建IAM用户。 一旦您成功注册账号并创建IAM用户,您现在可以在AWS控制台中设置访问密钥,以通过C#程序方式访问API。

您将需要: - SecretAccessKey

  • SecretAccessKey
  • RegionEndPoint(您的访问区域)- 在此示例中:AFSouth1

    3.1. 使用NuGet包管理器

3.1. 使用 NuGet 包管理器

  • 您可以从 NuGet 包管理器下载并安装 AWS Textract SDK。
NuGet包管理器

NuGet包管理器

  • 点击浏览并搜索 AWS Textract:
AWS Textract

AWS Textract

3.2. 添加 AWS OCR 命名空间

包含以下命名空间以使用 AWS Textract:

using Amazon.Textract;
using Amazon.Textract.Model;
using Amazon.Textract;
using Amazon.Textract.Model;
Imports Amazon.Textract
Imports Amazon.Textract.Model
$vbLabelText   $csharpLabel

4. PDF文件转文本

让我们一一看看代码。 ### 4.1. 使用IronOCR

4.1. 使用IronOCR

IronOCR允许使用高级Tesseract识别和读取PDF文档格式中的文本。 下面的简单代码用于提取信息:

var Ocr = new IronTesseract();
using (var input = new OcrInput())
{
    input.AddPdf("example.pdf", "password");
    // We can also select specific PDF page numbers to OCR
    var Result = Ocr.Read(input);
    Console.WriteLine(Result.Text);
    Console.WriteLine($"{Result.Pages.Count()} Pages");
    // Read every page of the PDF
}
var Ocr = new IronTesseract();
using (var input = new OcrInput())
{
    input.AddPdf("example.pdf", "password");
    // We can also select specific PDF page numbers to OCR
    var Result = Ocr.Read(input);
    Console.WriteLine(Result.Text);
    Console.WriteLine($"{Result.Pages.Count()} Pages");
    // Read every page of the PDF
}
Dim Ocr = New IronTesseract()
Using input = New OcrInput()
	input.AddPdf("example.pdf", "password")
	' We can also select specific PDF page numbers to OCR
	Dim Result = Ocr.Read(input)
	Console.WriteLine(Result.Text)
	Console.WriteLine($"{Result.Pages.Count()} Pages")
	' Read every page of the PDF
End Using
$vbLabelText   $csharpLabel

代码简单、清晰,易于理解和使用。

输入PDF文件

示例 PDF

示例 PDF

输出

IronOCR 输出

IronOCR 输出

4.2. AWS Textract

Amazon Textract使得在应用程序中添加文档文本检测和分析变得简单。 下面的代码用于读取PDF,并传入相同的PDF:

public static async void ReturnResult()
{
    AmazonTextractClient client = new AmazonTextractClient("your_access_key_id", "your_secret_access_key", Amazon.RegionEndpoint.AFSouth1);
    var request = new StartDocumentTextDetectionRequest();
    request.DocumentLocation = new DocumentLocation
    {
        S3Object = new S3Object
        {
            Bucket = "your_bucket_name",
            Name = "your_bucket_key"
        }
    };
    var id = await client.StartDocumentTextDetectionAsync(request);
    var jobId = id.JobId;
    var response = client.GetDocumentTextDetectionAsync(new GetDocumentTextDetectionRequest{
        JobId = jobId
    });
    response.Wait();
    if (response.Result.JobStatus.Equals("SUCCEEDED"))
    {
        foreach (var block in response.Result.Blocks)
        {
            if (block.BlockType == "WORD" || block.BlockType == "PAGE" || block.BlockType == "LINE")
            {
                Console.WriteLine(block.Text);
            }
        }
    }
}

static void Main(String[] args)
{
    ReturnResult();
}
public static async void ReturnResult()
{
    AmazonTextractClient client = new AmazonTextractClient("your_access_key_id", "your_secret_access_key", Amazon.RegionEndpoint.AFSouth1);
    var request = new StartDocumentTextDetectionRequest();
    request.DocumentLocation = new DocumentLocation
    {
        S3Object = new S3Object
        {
            Bucket = "your_bucket_name",
            Name = "your_bucket_key"
        }
    };
    var id = await client.StartDocumentTextDetectionAsync(request);
    var jobId = id.JobId;
    var response = client.GetDocumentTextDetectionAsync(new GetDocumentTextDetectionRequest{
        JobId = jobId
    });
    response.Wait();
    if (response.Result.JobStatus.Equals("SUCCEEDED"))
    {
        foreach (var block in response.Result.Blocks)
        {
            if (block.BlockType == "WORD" || block.BlockType == "PAGE" || block.BlockType == "LINE")
            {
                Console.WriteLine(block.Text);
            }
        }
    }
}

static void Main(String[] args)
{
    ReturnResult();
}
Public Shared Async Sub ReturnResult()
	Dim client As New AmazonTextractClient("your_access_key_id", "your_secret_access_key", Amazon.RegionEndpoint.AFSouth1)
	Dim request = New StartDocumentTextDetectionRequest()
	request.DocumentLocation = New DocumentLocation With {
		.S3Object = New S3Object With {
			.Bucket = "your_bucket_name",
			.Name = "your_bucket_key"
		}
	}
	Dim id = Await client.StartDocumentTextDetectionAsync(request)
	Dim jobId = id.JobId
	Dim response = client.GetDocumentTextDetectionAsync(New GetDocumentTextDetectionRequest With {.JobId = jobId})
	response.Wait()
	If response.Result.JobStatus.Equals("SUCCEEDED") Then
		For Each block In response.Result.Blocks
			If block.BlockType = "WORD" OrElse block.BlockType = "PAGE" OrElse block.BlockType = "LINE" Then
				Console.WriteLine(block.Text)
			End If
		Next block
	End If
End Sub

Shared Sub Main(ByVal args() As String)
	ReturnResult()
End Sub
$vbLabelText   $csharpLabel

首先,我们必须创建一个包含3个参数的AmazonTextractClient对象:AccessKeyIdSecretAccessKey区域。 然后我们必须使用StartDocumentTextDetectionRequest()方法启动请求。 请求对象然后使用存储桶名称和密钥设置DocumentLocation。 这个请求然后传递给StartDocumentTextDetectionAsync()方法。 由于这是一个异步方法,我们必须使用await关键字并使ReturnResult函数异步。 由于这是一个异步方法,我们必须使用await关键字并将ReturnResult函数设为异步。 jobId传递给GetDocumentTextDetectionAsync()方法,并等待SUCCEEDED响应。 使用foreach循环循环通过每个块,并检查它是"WORD"、"PAGE"还是"LINE",然后输出文本识别。 最后,在Main方法中调用此方法以处理文档。 最后,在Main方法中调用此方法以进行文档处理。

输出

输出与IronOCR非常相似。

AWS Textract 输出

AWS Textract 输出

从图像中读取数据很棘手,因为图像的质量在提取信息时起着关键作用。

从图像中读取数据是棘手的,因为图像质量在提取信息时起着至关重要的作用。 这两个库都提供了提取文本的功能。 ### 5.1. 使用IronOCR

代码几乎与之前的代码相似。

在这里,AddPDF方法被AddImage方法替换。 在这里,AddPDF方法被AddImage方法替换。

var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    Input.AddImage("test-files/redacted-employmentapp.png");
    //... you can add any number of images
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    Input.AddImage("test-files/redacted-employmentapp.png");
    //... you can add any number of images
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
	Input.AddImage("test-files/redacted-employmentapp.png")
	'... you can add any number of images
	Dim Result = Ocr.Read(Input)
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

输入图像

已编辑的员工数据

已编辑的员工数据

输出

![图像输出](/static-assets/ocr/blog/aws-ocr-alternatives/aws-ocr-alternatives-11.webp)

class="content__image-caption">图像输出

图像输出

图像输出

以下代码有助于检测图像中的文本:

同样,代码几乎与之前的代码相似。

public static async void ReturnResult()
{
    AmazonTextractClient client = new AmazonTextractClient("your_access_key_id", "your_secret_access_key", Amazon.RegionEndpoint.AFSouth1);
    var request = new DetectDocumentTextRequest();
    request.Document = new Document
    {
        Bytes = new MemoryStream(File.ReadAllBytes(@"test-files/redacted-employmentapp.png"))
    };    
    var result = await client.DetectDocumentTextAsync(request);
    foreach (var block in result.Blocks)
    {
        if (block.BlockType == "WORD")
        {
            Console.WriteLine(block.Text);
        }
    }
}

static void Main(String[] args)
{
    ReturnResult();
}
public static async void ReturnResult()
{
    AmazonTextractClient client = new AmazonTextractClient("your_access_key_id", "your_secret_access_key", Amazon.RegionEndpoint.AFSouth1);
    var request = new DetectDocumentTextRequest();
    request.Document = new Document
    {
        Bytes = new MemoryStream(File.ReadAllBytes(@"test-files/redacted-employmentapp.png"))
    };    
    var result = await client.DetectDocumentTextAsync(request);
    foreach (var block in result.Blocks)
    {
        if (block.BlockType == "WORD")
        {
            Console.WriteLine(block.Text);
        }
    }
}

static void Main(String[] args)
{
    ReturnResult();
}
Public Shared Async Sub ReturnResult()
	Dim client As New AmazonTextractClient("your_access_key_id", "your_secret_access_key", Amazon.RegionEndpoint.AFSouth1)
	Dim request = New DetectDocumentTextRequest()
	request.Document = New Document With {.Bytes = New MemoryStream(File.ReadAllBytes("test-files/redacted-employmentapp.png"))}
	Dim result = Await client.DetectDocumentTextAsync(request)
	For Each block In result.Blocks
		If block.BlockType = "WORD" Then
			Console.WriteLine(block.Text)
		End If
	Next block
End Sub

Shared Sub Main(ByVal args() As String)
	ReturnResult()
End Sub
$vbLabelText   $csharpLabel

在这里,我们必须使用DetectDocumentTextRequest()方法启动请求。 在这里,我们需要使用DetectDocumentTextRequest()方法发起请求。 该请求然后传递给DetectDocumentTextAsync()方法。 然后,此请求被传递到DetectDocumentTextAsync()方法。 由于这是一个异步方法,我们必须使用await关键字并将ReturnResult函数设为异步。 使用foreach循环循环通过每个块,并检查它是否是"WORD",然后输出文本识别。 foreach循环用于遍历每个块并检查是否为"WORD",然后打印出文本识别。 最后,在Main方法中调用此方法以进行文档处理。

6. 条形码和QR码到文本

AWS Textract不提供此功能。

IronOCR 的一个独特功能是它可以在扫描文本的同时读取文档中的条形码和二维码。 OcrResult.OcrBarcode 类的实例可为开发人员提供有关每个扫描条形码的详细信息。 IronOCR的代码如下:

代码不言自明且易于理解。

var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput())
{
    input.AddImage("test-files/Barcode.png");
    var Result = Ocr.Read(input);
    foreach (var Barcode in Result.Barcodes)
    {
        Console.WriteLine(Barcode.Value);
        // type and location properties also exposed
    }
}
var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput())
{
    input.AddImage("test-files/Barcode.png");
    var Result = Ocr.Read(input);
    foreach (var Barcode in Result.Barcodes)
    {
        Console.WriteLine(Barcode.Value);
        // type and location properties also exposed
    }
}
Dim Ocr = New IronTesseract()
Ocr.Configuration.ReadBarCodes = True
Using input = New OcrInput()
	input.AddImage("test-files/Barcode.png")
	Dim Result = Ocr.Read(input)
	For Each Barcode In Result.Barcodes
		Console.WriteLine(Barcode.Value)
		' type and location properties also exposed
	Next Barcode
End Using
$vbLabelText   $csharpLabel

7. 许可

IronOCR是一个提供开发者免费许可证的库。

IronOCR 是一个提供开发者许可证的免费库。 Lite套餐从$799开始,没有隐藏费用。 要查看IronOCR的完整价格结构和许可证详情,请点击此处。 SaaS 和 OEM 产品的再分发也是可能的。 所有许可证均附有 30 天内退款保证,一年的软件支持和升级,开发/过渡化/生产有效期,以及永久性许可证(一次性购买)。

IronOCR定价计划

class="content__image-caption">IronOCR定价计划

IronOCR定价方案

IronOCR定价方案

您可以通过一次性购买$1,599获得SaaS和OEM产品的免版税转售服务。

SaaS 服务

SaaS 服务

AWS Textract API为开发者提供AWS免费套餐服务。您可以免费开始使用Amazon Textract。 免费套餐持续三个月,定价如下。

定价表

价格表

价格表

You can have a look at the pricing details from this link. IronOCR为C#开发人员提供了我们所知的最先进的Tesseract API,可在任何平台上使用。

8. 结论

IronOCR可以在Windows、Linux、Mac、Azure、AWS、Lambda上部署,并支持.NET Framework项目以及.NET Standard.NET Core。 IronOCR 可以部署在 Windows、Linux、Mac、Azure、AWS、Lambda,并支持 .NET Framework 项目以及 .NET Standard.NET Core。 Amazon Textract基于由亚马逊计算机视觉科学家开发的经过验证的高可扩展性深度学习技术,每天分析数十亿张图像和视频。

Amazon Textract使得在应用程序中添加文档文本检测和分析变得简单。 您不需要任何机器学习专业知识即可使用它。 Amazon Textract包括简单易用的API,可以分析图像文件和PDF文件。 Amazon Textract包含简单易用的API,可以分析图像文件和PDF文件。 Amazon Textract一直在从新数据中学习,Amazon也不断为服务添加新功能。

AWS Textract许可证基于文档页数来提取信息和分析数据。 许可证是按月计算的,与IronOCR许可证相比,大量页面的价格非常高。 另外,IronOCR许可证是一次性购买,终身可用,并支持OME和SaaS分发。 总体比较中,IronOCR和AWS OCR都具备从文档或图像中检测文本的机器学习能力。

相较于 AWS OCR,IronOCR 速度更快,节省时间。 代码简单,检测文档中的文本时简单明了。 任务在少数方法中完成。 另一方面,AWS Textract使用许多方法来完成同一任务。 这增加了服务器响应,有时会耗费时间。 我们可以看到,即使我们将一个不完美的文档输入IronOCR,它也能准确地读取其内容,统计准确度约为99%,即使文档格式糟糕、倾斜并且有数字噪音。IronOCR可直接使用,无需进行性能调优或大量修改输入图像。 速度极快:IronOCR.2020+ 速度提高了十倍,错误发生率比之前的版本减少了超过250%。 此外,Iron Software目前提供一个五个工具的组合包,价格仅为其中两个。

  • IronWebScraper Iron Suite中包含的工具是:

  • IronBarcode
  • IronWebScraper
  • IronOCR
  • IronPDF 请访问此链接探索Iron Suite

请点击此链接探索IRONSUITE

常见问题解答

什么是光学字符识别 (OCR)?

光学字符识别 (OCR) 是一种技术,可以将扫描的纸质文档、PDF 或数码相机拍摄的图像等不同类型的文档转换为可编辑和可搜索的数据。IronOCR 是一个强大的 C# .NET 库,它使用先进的算法增强了这一过程。

如何使用 C# 将文本图像转换为机器可读文本?

您可以使用 IronOCR,一个 C# .NET 库,将文本图像转换为机器可读文本。它通过先进的 OCR 算法处理图像,并以可编程操作的格式输出识别的文本。

IronOCR 如何处理扫描不完善的图像?

IronOCR 旨在有效管理和处理扫描不完善的图像。它包括图像预处理功能,可以校正倾斜、增强文本对比度并改进图像质量,以提高 OCR 的准确性。

我可以使用 IronOCR 进行多线程处理吗?

可以,IronOCR 支持多线程,这允许同时处理多个文档,大大提高了在文档密集型应用程序中的性能和吞吐量。

IronOCR 支持哪些语言的 OCR 工作?

IronOCR 支持超过 125 种语言,使其成为处理多语言文档并将其转换为文本的全球应用中的多功能工具。

如何在 Visual Studio 项目中安装 IronOCR?

IronOCR 可以通过 NuGet 包管理器安装到 Visual Studio 项目中。您可以在 NuGet 控制台中搜索 'IronOCR' 并安装它,从而将 OCR 功能集成到您的 .NET 应用程序中。

IronOCR 的定价模型是什么?

IronOCR 提供一次性许可模式。这包括带有 30 天退款保证的永久授权,为开发者提供灵活性和安心。

AWS Textract 在技术上与 IronOCR 有何不同?

AWS Textract 使用机器学习和深度学习技术提取文本和数据,提供文档内容的详细分析。相比之下,IronOCR 专注于易用性和在 .NET 项目中的集成,提供全面语言支持的强大 OCR 解决方案。

IronOCR 能否读取和处理条形码和二维码?

可以,IronOCR 可以读取和处理条形码和二维码。它在轻松扫描文本的同时提取每个代码的详细信息,使其成为文档处理的综合工具。

IronOCR 支持哪些平台和环境?

IronOCR 兼容多个环境,包括 Windows, Linux, Mac, Azure, AWS 和 Lambda。它支持 .NET Framework、.NET Standard 和 .NET Core 项目,确保在不同的开发生态系统中保持灵活性。

Kannaopat Udonpant
软件工程师
在成为软件工程师之前,Kannapat 在日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了车辆机器人实验室的成员,隶属于生物生产工程系。2022 年,他利用自己的 C# 技能加入 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他可以直接从编写大多数 IronPDF 代码的开发者那里学习。除了同行学习外,Kannapat 还喜欢在 Iron Software 工作的社交方面。不撰写代码或文档时,Kannapat 通常可以在他的 PS5 上玩游戏或重温《最后生还者》。