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

DevExpress Barcode 与 IronBarcode:C# 条形码库对比

DevExpress 是一款备受好评的.NET UI 工具包。 网格、日程安排、图表和数据透视表控件确实非常出色,已被成千上万的Enterprise团队使用。 然而,条形码支持的情况则有所不同。 DevExpress 提供了一个 WinForms 控件(BarCodeControl)和一个 Blazor 标签(DxBarCode),允许您在设计时将条形码渲染到窗体上。当被问及条形码识别问题时,他们的支持团队的回答始终如一:目前尚无读取功能,也没有添加此功能的计划。 如果您的条形码位于后台作业、Web API、PDF 文档或任何没有 UI 表单的环境中,则此控件不适用。

这一限制将 DevExpress 条形码产品的功能缩小到一个特定的领域:在 DevExpress WinForms 或Blazor UI 中以可视方式呈现条形码。 对于特定应用场景,它完全够用。但对于其他任何应用——例如服务器端生成、读取图像或 PDF 文件、在 Azure Functions 或 Docker 容器中进行无头处理——都需要使用不同的工具。

了解 DevExpress 条码控件

DevExpress 条形码功能位于 DevExpress.XtraBars.BarCode 和相关符号命名空间中。 它不是一个独立的库。 它包含在 DXperienceSuite中,该套件每年的费用约为 2,499 美元以上。 没有单独的仅包含条形码的NuGet包可供安装。

BarCodeControl 是一个继承自控件层次结构的 WinForms 控件。 您可以使用符号系统对象对其进行配置,设置属性,然后它会在屏幕上呈现。 将渲染结果保存到文件需要调用 DrawToBitmap,该函数需要一个预先分配的、大小合适的 Bitmap 空间:

// DevExpress WinForms: UI control, not a library
using DevExpress.XtraBars.BarCode;
using DevExpress.XtraBars.BarCode.Symbologies;
using System.Drawing;
using System.Drawing.Imaging;

var barCode = new BarCodeControl();
var symbology = new Code128Generator();
symbology.CharacterSet = Code128CharacterSet.CharsetAuto;
barCode.Symbology = symbology;
barCode.Text = "ITEM-12345";
barCode.Module = 0.02f;  // document units, not pixels
barCode.ShowText = true;

// File output requires DrawToBitmap — you must size the Bitmap manually
barCode.Width = 400;
barCode.Height = 100;
var bitmap = new Bitmap(barCode.Width, barCode.Height);
barCode.DrawToBitmap(bitmap, new Rectangle(0, 0, barCode.Width, barCode.Height));
bitmap.Save("barcode.png", ImageFormat.Png);
bitmap.Dispose();
// DevExpress WinForms: UI control, not a library
using DevExpress.XtraBars.BarCode;
using DevExpress.XtraBars.BarCode.Symbologies;
using System.Drawing;
using System.Drawing.Imaging;

var barCode = new BarCodeControl();
var symbology = new Code128Generator();
symbology.CharacterSet = Code128CharacterSet.CharsetAuto;
barCode.Symbology = symbology;
barCode.Text = "ITEM-12345";
barCode.Module = 0.02f;  // document units, not pixels
barCode.ShowText = true;

// File output requires DrawToBitmap — you must size the Bitmap manually
barCode.Width = 400;
barCode.Height = 100;
var bitmap = new Bitmap(barCode.Width, barCode.Height);
barCode.DrawToBitmap(bitmap, new Rectangle(0, 0, barCode.Width, barCode.Height));
bitmap.Save("barcode.png", ImageFormat.Png);
bitmap.Dispose();
Imports DevExpress.XtraBars.BarCode
Imports DevExpress.XtraBars.BarCode.Symbologies
Imports System.Drawing
Imports System.Drawing.Imaging

Dim barCode As New BarCodeControl()
Dim symbology As New Code128Generator()
symbology.CharacterSet = Code128CharacterSet.CharsetAuto
barCode.Symbology = symbology
barCode.Text = "ITEM-12345"
barCode.Module = 0.02F ' document units, not pixels
barCode.ShowText = True

' File output requires DrawToBitmap — you must size the Bitmap manually
barCode.Width = 400
barCode.Height = 100
Dim bitmap As New Bitmap(barCode.Width, barCode.Height)
barCode.DrawToBitmap(bitmap, New Rectangle(0, 0, barCode.Width, barCode.Height))
bitmap.Save("barcode.png", ImageFormat.Png)
bitmap.Dispose()
$vbLabelText   $csharpLabel

请注意这里存在几个摩擦点。 首先,barCode.Module 是以文档单位而不是像素为单位的,如果您以像素尺寸来考虑,就会造成不匹配。 其次,在分配 Bitmap 之前,您必须知道最终像素大小。 第三,该控件需要加载 WinForms 程序集——这意味着ASP.NET Core最小 API 或控制台后台服务必须加载 Windows Forms 基础结构才能生成条形码图像。

Blazor DxBarCode 标签在概念上类似,但它是 Razor 组件,用于 UI 渲染,而不是服务器端生成 API。

无读取功能

DevExpress 的官方立场是,他们不提供条形码识别或扫描功能。 这并非一个等待在即将发布的版本中填补的空白——多年来,答案一直如此。

对于那些最初使用 DevExpress WinForms 应用程序开发,之后又需要扫描上传图片中的条形码或读取 PDF 附件中的二维码的团队来说,DevExpress 工具箱无法提供帮助。您需要引入一个单独的库来处理读取操作,这就引出了一个问题:为了保持 API 的一致性,生成端是否也应该迁移到该库?

IronBarcode可以处理双向通信:

//IronBarcodereading — works on images, PDFs, and byte arrays
// NuGet: dotnet add package IronBarcode
using IronBarCode;

var results = BarcodeReader.Read("scanned-label.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}
//IronBarcodereading — works on images, PDFs, and byte arrays
// NuGet: dotnet add package IronBarcode
using IronBarCode;

var results = BarcodeReader.Read("scanned-label.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}
Imports IronBarCode

' IronBarcode reading — works on images, PDFs, and byte arrays
' NuGet: dotnet add package IronBarcode

Dim results = BarcodeReader.Read("scanned-label.png")
For Each result In results
    Console.WriteLine($"Format: {result.Format}")
    Console.WriteLine($"Value: {result.Value}")
Next
$vbLabelText   $csharpLabel

读取PDF文件不需要任何额外的库:

// Reading barcodes from a PDF — no PdfiumViewer or similar required
var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
    Console.WriteLine($"Page barcode: {result.Value}");
}
// Reading barcodes from a PDF — no PdfiumViewer or similar required
var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
    Console.WriteLine($"Page barcode: {result.Value}");
}
Imports System

' Reading barcodes from a PDF — no PdfiumViewer or similar required
Dim pdfResults = BarcodeReader.Read("shipping-manifest.pdf")
For Each result In pdfResults
    Console.WriteLine($"Page barcode: {result.Value}")
Next
$vbLabelText   $csharpLabel

Suite捆绑问题

DevExpress 条形码组件不作为独立产品出售。 要在任何项目中使用 BarCodeControl,您的团队需要 DXperience 套件许可证,每位开发人员每年大约需要 2,499 美元。 该Suite包括网格、图表、日程安排器、透视表和许多其他控件——如果您正在构建完整的 DevExpress WinForms 或Blazor应用程序,这是合理的。 如果您只需要为后端服务生成条形码,那么您实际上是在为整个 UI 工具包付费,而该服务永远不会使用这个工具包。

IronBarcode是一个独立软件包:

dotnet add package IronBarcode
dotnet add package IronBarcode
SHELL

永久Lite许可证起价为 749 美元(适用于一位开发者)。 未捆绑任何用户界面工具包。 您将获得条形码生成和读取功能、跨平台支持,以及其他您未要求的功能。

无头模式使用限制

在服务器端场景中,BarCodeControl 的根本问题在于它是一个 WinForms 控件。 在.NET 6+ ASP.NET Core最小 API 项目中,默认情况下不引用 WinForms 程序集。 要实例化 BarCodeControl,您的 API 项目必须显式地以 Windows 为目标并加载 Windows Forms 运行时,或者添加变通引用来引入您的 API 永远不会呈现的 UI 基础架构。

在 Azure 函数消耗计划中,完全没有 UI 层。 在运行 Linux 基础镜像的 Docker 容器中,Windows Forms GDI+ 依赖项可能完全缺失。 DevExpress 官方不支持在这些无头环境中使用 BarCodeControl

IronBarcode使用完全程序化的静态 API:

// IronBarcode: works in WinForms, ASP.NET Core, Azure Function, console — same code
// NuGet: dotnet add package IronBarcode
using IronBarCode;

BarcodeWriter.CreateBarcode("ITEM-12345", BarcodeEncoding.Code128)
    .SaveAsPng("barcode.png");
// IronBarcode: works in WinForms, ASP.NET Core, Azure Function, console — same code
// NuGet: dotnet add package IronBarcode
using IronBarCode;

BarcodeWriter.CreateBarcode("ITEM-12345", BarcodeEncoding.Code128)
    .SaveAsPng("barcode.png");
Imports IronBarCode

' IronBarcode: works in WinForms, ASP.NET Core, Azure Function, console — same code
' NuGet: dotnet add package IronBarcode

BarcodeWriter.CreateBarcode("ITEM-12345", BarcodeEncoding.Code128) _
    .SaveAsPng("barcode.png")
$vbLabelText   $csharpLabel

这个调用可以在控制台应用程序、 ASP.NET Core控制器、由服务总线消息触发的 Azure 函数或在 Linux 上运行的 Docker 容器中正常工作。 API在不同环境下不会改变。 没有用户界面程序集依赖项。

返回条形码(PNG 文件响应)的 ASP.NET Core端点如下所示:

app.MapGet("/barcode/{sku}", (string sku) =>
{
    var bytes = BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128)
        .ResizeTo(400, 100)
        .ToPngBinaryData();

    return Results.File(bytes, "image/png");
});
app.MapGet("/barcode/{sku}", (string sku) =>
{
    var bytes = BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128)
        .ResizeTo(400, 100)
        .ToPngBinaryData();

    return Results.File(bytes, "image/png");
});
Imports Microsoft.AspNetCore.Builder
Imports Microsoft.AspNetCore.Http

app.MapGet("/barcode/{sku}", Function(sku As String)
                                Dim bytes = BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128) _
                                    .ResizeTo(400, 100) _
                                    .ToPngBinaryData()

                                Return Results.File(bytes, "image/png")
                             End Function)
$vbLabelText   $csharpLabel

没有与 BarCodeControl 等效的模式,除非采取一些特殊的变通方法。

了解IronBarcode

IronBarcode是一个独立的.NET库,用于生成和读取条形码。 API 是完全静态的——无需管理实例,无需控制生命周期,也无需依赖 UI。 生成和读取操作都在同一个调用中完成:

// NuGet: dotnet add package IronBarcode
using IronBarCode;

// Generate Code 128
BarcodeWriter.CreateBarcode("ORDER-9921", BarcodeEncoding.Code128)
    .ResizeTo(450, 120)
    .SaveAsPng("order-label.png");

// Generate and get bytes (for HTTP responses, blob storage, etc.)
byte[] pngBytes = BarcodeWriter.CreateBarcode("ORDER-9921", BarcodeEncoding.Code128)
    .ResizeTo(450, 120)
    .ToPngBinaryData();

// Read from an image file
var results = BarcodeReader.Read("order-label.png");
Console.WriteLine(results.First().Value); // ORDER-9921
// NuGet: dotnet add package IronBarcode
using IronBarCode;

// Generate Code 128
BarcodeWriter.CreateBarcode("ORDER-9921", BarcodeEncoding.Code128)
    .ResizeTo(450, 120)
    .SaveAsPng("order-label.png");

// Generate and get bytes (for HTTP responses, blob storage, etc.)
byte[] pngBytes = BarcodeWriter.CreateBarcode("ORDER-9921", BarcodeEncoding.Code128)
    .ResizeTo(450, 120)
    .ToPngBinaryData();

// Read from an image file
var results = BarcodeReader.Read("order-label.png");
Console.WriteLine(results.First().Value); // ORDER-9921
Imports IronBarCode

' Generate Code 128
BarcodeWriter.CreateBarcode("ORDER-9921", BarcodeEncoding.Code128) _
    .ResizeTo(450, 120) _
    .SaveAsPng("order-label.png")

' Generate and get bytes (for HTTP responses, blob storage, etc.)
Dim pngBytes As Byte() = BarcodeWriter.CreateBarcode("ORDER-9921", BarcodeEncoding.Code128) _
    .ResizeTo(450, 120) _
    .ToPngBinaryData()

' Read from an image file
Dim results = BarcodeReader.Read("order-label.png")
Console.WriteLine(results.First().Value) ' ORDER-9921
$vbLabelText   $csharpLabel

许可证激活只需在启动时执行一行命令:

IronBarCode.License.LicenseKey = "YOUR-KEY";
IronBarCode.License.LicenseKey = "YOUR-KEY";
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-KEY"
$vbLabelText   $csharpLabel

无网络通话。 没有错误处理样板代码。 本地验证。

并排二维码

二维码说明了用户界面控件和程序库之间的 API 差距。

DevExpress 二维码 — WinForms 控件:

// DevExpress: QR via BarCodeControl + QRCodeGenerator symbology
using DevExpress.XtraBars.BarCode;
using DevExpress.XtraBars.BarCode.Symbologies;

var barCode = new BarCodeControl();
var symbology = new QRCodeGenerator();
symbology.ErrorCorrectionLevel = QRCodeErrorCorrectionLevel.H;
symbology.CompactionMode = QRCodeCompactionMode.AlphaNumeric;
barCode.Symbology = symbology;
barCode.Text = "https://example.com";
barCode.Width = 500;
barCode.Height = 500;

var bitmap = new Bitmap(barCode.Width, barCode.Height);
barCode.DrawToBitmap(bitmap, new Rectangle(0, 0, barCode.Width, barCode.Height));
bitmap.Save("qr.png", ImageFormat.Png);
bitmap.Dispose();
// DevExpress: QR via BarCodeControl + QRCodeGenerator symbology
using DevExpress.XtraBars.BarCode;
using DevExpress.XtraBars.BarCode.Symbologies;

var barCode = new BarCodeControl();
var symbology = new QRCodeGenerator();
symbology.ErrorCorrectionLevel = QRCodeErrorCorrectionLevel.H;
symbology.CompactionMode = QRCodeCompactionMode.AlphaNumeric;
barCode.Symbology = symbology;
barCode.Text = "https://example.com";
barCode.Width = 500;
barCode.Height = 500;

var bitmap = new Bitmap(barCode.Width, barCode.Height);
barCode.DrawToBitmap(bitmap, new Rectangle(0, 0, barCode.Width, barCode.Height));
bitmap.Save("qr.png", ImageFormat.Png);
bitmap.Dispose();
Imports DevExpress.XtraBars.BarCode
Imports DevExpress.XtraBars.BarCode.Symbologies
Imports System.Drawing
Imports System.Drawing.Imaging

Dim barCode As New BarCodeControl()
Dim symbology As New QRCodeGenerator()
symbology.ErrorCorrectionLevel = QRCodeErrorCorrectionLevel.H
symbology.CompactionMode = QRCodeCompactionMode.AlphaNumeric
barCode.Symbology = symbology
barCode.Text = "https://example.com"
barCode.Width = 500
barCode.Height = 500

Dim bitmap As New Bitmap(barCode.Width, barCode.Height)
barCode.DrawToBitmap(bitmap, New Rectangle(0, 0, barCode.Width, barCode.Height))
bitmap.Save("qr.png", ImageFormat.Png)
bitmap.Dispose()
$vbLabelText   $csharpLabel

IronBarcode二维码——效果相同,无需组装用户界面:

// IronBarcode: QR in one method chain
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .SaveAsPng("qr.png");
// IronBarcode: QR in one method chain
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .SaveAsPng("qr.png");
$vbLabelText   $csharpLabel

在二维码中心添加品牌标识:

QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .AddBrandLogo("company-logo.png")
    .SaveAsPng("qr-branded.png");
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .AddBrandLogo("company-logo.png")
    .SaveAsPng("qr-branded.png");
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest) _
    .AddBrandLogo("company-logo.png") _
    .SaveAsPng("qr-branded.png")
$vbLabelText   $csharpLabel

DevExpress 没有类似的嵌入式徽标功能。 该控件仅生成一个标准的二维码,没有其他功能。

功能对比

特征 DevExpress 条形码 IronBarcode
条形码生成 是的(WinForms控件, Blazor标签) 是的(程序化 API,所有环境)
条形码读取/扫描 不——已正式确认 是的——图像、PDF、字节数组
PDF条形码读取 是的——原生支持,无需额外库
独立NuGet包 不需要——需要 DXperienceSuite 是的 — IronBarcode 仅限
Suite费用 每年约 2,499 美元以上(完整 UISuite) 不适用 — 独立
许可证费用 仅限订阅 永久 749 美元起
ASP.NET Core / 最小 API 需要使用 WinForms 变通方法 本地支持
Azure 函数 不支持无头模式 全面支持
Docker / Linux Linux 基础镜像上的 GDI+ 问题 全面支持
控制台应用程序 需要加载 WinForms 程序集 本地支持
二维码生成 是的(通过 QRCodeGenerator 符号系统) 是的(二维码写入器)
带有嵌入式徽标的二维码 是的——.AddBrandLogo()
QR误差校正水平 H、Q、M、L 最高、高、中、低
代码 128
数据矩阵
PDF417
阿兹特克
文件输出 DrawToBitmap — 手动位图分配 .SaveAsPng()、.SaveAsGif()、.SaveAsSvg()
二进制输出(HTTP响应) 手动位图 → 内存流 .ToPngBinaryData()
多线程读取 不适用——无读数 最大并行线程数 = 4
多条形码读取 不适用——无读数 ExpectMultipleBarcodes = true
平台 Windows(WinForms / Blazor) Windows、Linux、macOS、Docker、Azure、AWS Lambda
.NET版本支持 .NET Framework + 现代.NET (Windows) .NET 4.6.2 至.NET 9

API 映射参考

熟悉 DevExpress BarCodeControl 模式的团队会发现以下等效项很有用:

DevExpress 条形码 IronBarcode
new BarCodeControl() 静态——无需实例
new Code128Generator() + barCode.Symbology = symbology BarcodeEncoding.Code128 作为参数传递
new QRCodeGenerator() + QRCodeErrorCorrectionLevel.H QRCodeWriter.CreateQrCode("data", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
new DataMatrixGenerator() + DataMatrixSize.Matrix26x26 BarcodeWriter.CreateBarcode("data", BarcodeEncoding.DataMatrix)
new PDF417Generator() BarcodeWriter.CreateBarcode("data", BarcodeEncoding.PDF417)
new AztecGenerator() BarcodeWriter.CreateBarcode("data", BarcodeEncoding.Aztec)
barCode.Module = 0.02f(文档单元) .ResizeTo(width, height)(像素)
barCode.ShowText = true .AddBarcodeText()
DrawToBitmap(bitmap, rect) — 手动位图分配 .SaveAsPng(path) — 自动处理尺寸调整
HTTP 响应的手动操作 BitmapMemoryStream .ToPngBinaryData()
无读取 API BarcodeReader.Read(imagePath)
TextResult 类型 .Value(字符串),.Format(条形码编码)
每个项目都需要 UI 程序集 适用于任何.NET项目类型
仅限套房(约 2,499 美元/年起) 独立版(永久版起价 749 美元)

当球队切换

通常有几个特定场景会触发从 DevExpress 条形码控件迁移到IronBarcode。

读取需求出现。最常见的情况是,一个 WinForms 应用程序多年来一直在生成条形码,现在收到一项新功能请求:该应用程序必须能够扫描或验证上传图像或相机拍摄图像中的条形码。 DevExpress 没有读取 API。 无论如何,团队都需要一个新的库,将生成过程整合到同一个库中也是合理的。

需要一个 Web API 端点。一个团队正在构建一个微服务,用于按需生成条形码标签——该服务可从 Web 前端、移动应用或其他服务调用。该ASP.NET Core项目不依赖 WinForms,团队也不希望添加 WinForms。IronBarcode的静态 API 可以集成到 HTTP 端点中,无需任何 UI 组装。

Azure 函数或 Lambda 部署。无服务器部署通常使用基于 Linux 的镜像和最小化的运行时环境。 BarCodeControl 不适用于此环境。 IronBarcode无需任何配置更改即可在 Linux、Docker 容器、Azure Functions 和 AWS Lambda 上运行。

套件续订费用仅包含单个功能。当续订临近,团队审核他们实际使用的 DXperience 套件功能时,如果发现某个服务中唯一的 DevExpress 组件是 BarCodeControl,就会引发成本方面的讨论。 为条形码生成功能支付Suite订阅费用,而一个独立的条形码生成库的永久费用为 749 美元,这很难让人信服。

从 PDF 中读取多个条形码。文档处理工作流程——从发票 PDF、发货清单或扫描表单中读取条形码——需要同时支持 PDF 和具备读取能力。 IronBarcode可以直接读取 PDF 文件,无需额外的库。 DevExpress 不具备这两种功能。

结论

DevExpress 的条形码解决方案最好理解为 UI 工具包中捆绑的一个 UI 渲染功能。 如果您的应用程序是 WinForms 或 Blazor 应用程序,并且已经使用 DevExpress 作为其网格和图表控件,而您唯一的条形码需求是在表单上以可视方式显示条形码,那么 BarCodeControl 是一个合理的选择——您已经拥有许可证。

当您需要以下任何功能时,BarCodeControl 就不再是合适的工具了:读取条形码、在服务器端上下文中生成条形码、在无头环境中运行、在 Linux 上工作或在没有 WinForms 程序集引用的情况下运行。 DevExpress技术支持已确认目前没有读取功能,并且没有计划添加该功能。 无头模式的限制是架构问题,而不是配置问题。 UI控件就是UI控件。

IronBarcode专为程序化条形码工作而构建——通过静态 API 在任何环境、任何平台上生成和读取条形码。 这两种工具解决的是不同的问题。 DevExpress 条形码用于在表单内渲染。 IronBarcode用于处理条形码代码。

常见问题解答

什么是 DevExpress 条形码?

DevExpress Barcode 是一个 .NET 条形码库,用于在 C# 应用程序中生成和读取条形码。它是开发人员在为 .NET 项目选择条形码解决方案时评估的几个备选方案之一。

DevExpress Barcode 和 IronBarcode 的主要区别是什么?

IronBarcode 使用静态、无状态的 API,无需实例管理,而 DevExpress Barcode 通常需要在使用前创建和配置实例。IronBarcode 还提供原生 PDF 支持、自动格式检测以及跨所有环境的单密钥许可。

IronBarcode 的授权比 DevExpress Barcode 更容易吗?

IronBarcode 使用单一许可证密钥,同时涵盖开发和生产部署。与将 SDK 密钥与运行时密钥分开的许可系统相比,这简化了 CI/CD 流水线和 Docker 配置。

IronBarcode是否支持DevExpress Barcode支持的所有条形码格式?

IronBarcode 支持超过 30 种条码符号体系,包括 QR 码、Code 128、Code 39、DataMatrix、PDF417、Aztec、EAN-13、UPC-A、GS1 等等。格式自动检测功能意味着无需显式枚举格式。

IronBarcode是否支持原生PDF条码读取?

是的。IronBarcode 可以直接从 PDF 文件中读取条形码,使用 `BarcodeReader.Read("document.pdf")` 方法,无需单独的 PDF 渲染库。每页的读取结果包括页码、条形码格式、数值和置信度评分。

IronBarcode 与 DevExpress Barcode 相比,在批量处理方面有何不同?

IronBarcode 的静态方法是无状态的,并且天然线程安全,因此可以直接使用 Parallel.ForEach,而无需进行线程级实例管理。所有定价层级均无吞吐量上限。

IronBarcode支持哪些.NET版本?

IronBarcode 在单个 NuGet 包中支持 .NET Framework 4.6.2+、.NET Core 3.1 以及 .NET 5、6、7、8 和 9。平台目标包括 Windows x64/x86、Linux x64 和 macOS x64/ARM。

如何在.NET项目中安装IronBarcode?

通过 NuGet 安装 IronBarcode:在程序包管理器控制台中运行“Install-Package IronBarCode”,或在命令行界面中运行“dotnet add package IronBarCode”。无需其他 SDK 安装程序或运行时文件。

与 DevExpress 不同,我可以在购买前评估 IronBarcode 吗?

是的。IronBarcode 的试用模式会返回完整的解码条形码值——只有生成的输出图像才会带有水印。您可以在购买前,用自己的文档测试读取准确率。

DevExpress Barcode 和 IronBarcode 的价格差异是多少?

IronBarcode 的永久单开发者许可证起价为 749 美元,涵盖开发和生产环境。定价详情和批量许可选项请访问 IronBarcode 许可页面。无需单独的运行时许可证。

从 DevExpress Barcode 迁移到 IronBarcode 是否简单?

从 DevExpress Barcode 迁移到 IronBarcode 主要涉及将基于实例的 API 调用替换为 IronBarcode 的静态方法、移除许可相关的样板代码以及更新结果属性名称。大多数迁移都是减少代码,而不是增加代码。

IronBarcode 能生成带有 logo 的二维码吗?

是的。`QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png")` 可以将品牌图片原生嵌入二维码中,并支持配置纠错功能。此外,它还支持通过 `ChangeBarCodeColor()` 函数创建彩色二维码。

Jordi Bardia
软件工程师
Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 利用这些技能时,他就在游戏编程。分享产品测试、产品开发和研究的责任,Jordi 在持续的产品改进中增加了巨大的价值。多样的经验使他面临挑战并保持投入,他表示这是在 Iron Software 工作的最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我