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

Syncfusion Barcode 与 IronBarcode:C# 条形码库比较

Syncfusion 的条形码生态系统通过 UI 控件生成条形码,并销售名为 Barcode Reader OPX 的独立产品用于读取条形码。 该阅读产品内部使用了 ZXing .NET一个根据 Apache 2.0 许可证发布的库,任何开发者都可以免费直接安装。 既需要生成又需要读取的团队,通过付费封装程序来使用免费图书馆,而这种安排影响了Syncfusion条形码故事中后续的每一个架构和成本决策。

了解Syncfusion条形码

Syncfusion条形码不是一个独立的库; 它是 Syncfusion Essential Studio 套件中的一个组件。生成端以 UI 控件的形式提供:SfBarcode 用于 WinForms 和 WPF,SfBarcodeGenerator 用于 Blazor 和 MAUI。 这些控件在运行时将条形码渲染到表单上,旨在与 Syncfusion 更广泛的 UI 组件生态系统一起使用。

阅读功能是完全独立的商业产品。 Barcode Reader OPX 是Syncfusion 的一个独立产品,拥有自己的许可证、自己的NuGet包和自己的 API。 既需要生成又需要读取的团队必须购买、维护和配置两种产品,而不是一种。

Syncfusion社区许可证为符合条件的组织提供免费版本,但要符合资格,需要同时且持续满足以下四个条件:

-收入门槛:公司年度总收入低于 100 万美元(所有收入来源,不仅限于软件收入) -开发人员人数门槛:团队中开发人员不超过五人 员工人数门槛:员工总数不超过十人 -资本门槛:所有融资轮次中筹集的外部资本总额低于 300 万美元

无论规模大小,政府机构均绝对不符合资格。各项条件均由机构自行认证,且必须持续满足——一旦超过任何一项门槛,即触发商业许可义务。

Syncfusion条形码生态系统的其他特点包括:

-仅生成控制架构: SfBarcodeSfBarcodeGenerator 没有读取 API。 控制界面中任何地方都没有 .Read().Scan() 方法。 -版本特定的许可证密钥: Syncfusion许可证密钥与特定的 Essential Studio 版本范围绑定。 从 24.x 版本升级到 25.x 版本需要一个新的密钥,在每个环境中更新密钥,并重新部署以避免试用水印出现在生产环境中。 -多步骤平台注册:每个平台目标(Blazor、MAUI)除了基本许可证调用外,还需要平台特定的服务注册调用。

  • Blazor 没有无头生成路径: SfBarcodeGenerator 是一个在浏览器中渲染的 Razor 组件。 它没有服务器端文件输出 API。 -不支持 PDF 输出: WinForms 和Blazor控件都无法直接将条形码写入 PDF 文件。 -仅限套件许可: Syncfusion条形码已捆绑在 Essential Studio 中。 没有单独的条形码包出售。
  • OPX 阅读器封装了自由软件:条形码阅读器 OPX 内部使用 ZXing .NET (Apache 2.0)。 ZXing .NET可通过NuGet直接免费获取。

仅生成控制架构

SfBarcode 是一个 WinForms 控件,具有基于属性的 API:TextSymbologyBarHeightNarrowBarWidthShowText。 在 WinForms 设计器中,将条形码渲染到表单上可以按预期工作。 以编程方式生成条形码文件需要使用 DrawToBitmap 模式,这涉及到在渲染之前预先分配一个具有正确尺寸的 Bitmap

using Syncfusion.Windows.Forms.Barcode;
using System.Drawing;
using System.Drawing.Imaging;

// Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

var barcode = new SfBarcode();
barcode.Text = "12345678";
barcode.Symbology = BarcodeSymbolType.Code128A;
barcode.BarHeight = 100;
barcode.NarrowBarWidth = 1;
barcode.ShowText = true;

barcode.Width = 400;
barcode.Height = 150;
using var bitmap = new Bitmap(barcode.Width, barcode.Height);
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle);
bitmap.Save("barcode.png", ImageFormat.Png);
using Syncfusion.Windows.Forms.Barcode;
using System.Drawing;
using System.Drawing.Imaging;

// Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

var barcode = new SfBarcode();
barcode.Text = "12345678";
barcode.Symbology = BarcodeSymbolType.Code128A;
barcode.BarHeight = 100;
barcode.NarrowBarWidth = 1;
barcode.ShowText = true;

barcode.Width = 400;
barcode.Height = 150;
using var bitmap = new Bitmap(barcode.Width, barcode.Height);
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle);
bitmap.Save("barcode.png", ImageFormat.Png);
Imports Syncfusion.Windows.Forms.Barcode
Imports System.Drawing
Imports System.Drawing.Imaging

' Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY")

Dim barcode As New SfBarcode()
barcode.Text = "12345678"
barcode.Symbology = BarcodeSymbolType.Code128A
barcode.BarHeight = 100
barcode.NarrowBarWidth = 1
barcode.ShowText = True

barcode.Width = 400
barcode.Height = 150
Using bitmap As New Bitmap(barcode.Width, barcode.Height)
    barcode.DrawToBitmap(bitmap, barcode.ClientRectangle)
    bitmap.Save("barcode.png", ImageFormat.Png)
End Using
$vbLabelText   $csharpLabel

这种模式意味着在每个调用它的项目中加载 Windows Forms 运行时,包括控制台应用程序、 ASP.NET Core服务和 Azure Functions。 Blazor 变体 SfBarcodeGenerator 是一个 Razor 组件,完全没有服务器端文件输出路径。

了解IronBarcode

IronBarcode是一个.NET条形码库,专为在所有.NET应用程序模型中以编程方式生成和读取条形码而构建。 它以单个NuGet包的形式发布,在同一个 API 接口中涵盖了生成和读取操作,无需其他产品。

该库是围绕静态 API 模型设计的:调用者调用静态方法(BarcodeWriter.CreateBarcodeBarcodeReader.ReadQRCodeWriter.CreateQrCode),并直接在结果上链接输出方法。 这种模式在 WinForms 桌面应用程序、 ASP.NET Core Web 服务、Azure Functions、控制台应用程序和 Linux Docker 容器中同样适用。

主要特点包括

-统一生成和读取:这两个功能都在同一个NuGet包中,使用同一个许可证和同一个 API 接口。 -静态 API:无需控件实例化,无需 UI 运行时依赖,无需 DrawToBitmap 间接。 -平台无关:相同的代码和相同的许可证密钥可在 WinForms、 Blazor、MAUI、 ASP.NET Core、控制台、Azure Functions 和 Linux 上的 Docker 中使用。 -直接文件输出:条形码可以直接保存为 PNG、JPEG、SVG、HTML、PDF 等格式,无需中间 Bitmap 分配。 -内置 PDF 支持: SaveAsPdf() 是一种一流的输出方法; 该库还可以直接读取 PDF 文档中的条形码。 -读取时自动格式检测: BarcodeReader.Read 自动识别条形码格式,无需调用者指定类型。 -单一版本稳定密钥:在主要版本内, NuGet 的次要更新或补丁更新之间,许可证密钥不会改变。 -二维码功能:支持在生成 API 中直接嵌入品牌标识和颜色自定义。

功能对比

下表总结了Syncfusion Barcode和IronBarcode之间的主要区别:

特征 Syncfusion条形码 IronBarcode
条形码生成 是的——UI控件(WinForms、WPF、 Blazor、MAUI) 是的——静态程序化 API,所有环境
条形码读取 不——需要单独的条形码阅读器 OPX 产品 是的——和上一代产品一样。
PDF条形码输出 不——需要单独Syncfusion。 是的 — SaveAsPdf() 内置
PDF条形码读取 是的——本地人
无头/服务器端生成 尴尬的是——UI控件需要WinForms运行时。 原生应用——静态 API,无 UI 依赖
免费套餐 社区许可证(四个同时满足的条件) 30天试用期(仅带水印)
许可模式 年度订阅(基础工作室Suite) 永久 749 美元起

详细功能对比

特征 Syncfusion条形码 IronBarcode
一代
WinForms 生成 是的(SfBarcode
WPF生成 是的(SfBarcode
Blazor一代 是的(SfBarcodeGenerator,浏览器渲染) 是的(服务器端 API)
MAUI 生成 是的(SfBarcodeGenerator
控制台/Azure Functions 需要 WinForms 运行时 本地
Docker / Linux 有限的 全面支持
直接文件输出 通过 DrawToBitmap + Bitmap.Save .SaveAsPng(), .SaveAsPdf(), .SaveAsSvg(), 等等。
带有嵌入式徽标的二维码 是的 — .AddBrandLogo()
阅读
条形码包中的读取 API 是的 — BarcodeReader.Read()
独立阅读产品 是的——条形码阅读器 OPX(付费) 不需要
OPX 封装了 ZXing .NET (Apache 2.0) 是的.NET是免费的。 不适用
PDF条形码读取
自动格式检测 不适用
多条形码检测 不适用
平台
ASP.NET Core最小 API 不支持干净利落 全面支持
跨平台(Linux) 有限的 全面支持
许可
免费套餐 社区许可证(四个同时满足的条件) 30 天试用期
商业许可模式 年度订阅(Essential Studio) 永久
入门级商业价格 约995美元/开发者/年(标准) 749 美元起永久
许可证密钥范围 版本特定(主要版本更新带来的变化) 主要版本内的版本稳定
平台注册开销 多步骤(RegisterLicense + AddSyncfusionBlazor + ConfigureSyncfusionCore) 单线
PDF 支持
PDF 输出 否——需要Syncfusion作为附加包。 是的——内置的
PDF阅读 是的——内置的
格式
一维格式 Code 128、Code 39、EAN-8/13、UPC-A/E、Codabar 等 支持所有Syncfusion格式,PlusPDF417、Aztec、MaxiCode、GS1、USPS IMb 等 50 多种格式。
二维格式 二维码,DataMatrix QR码、DataMatrix码、PDF417码、Micro PDF417码、Aztec码、MaxiCode码

世代架构

Syncfusion Barcode 和IronBarcode之间的根本架构差异在于 UI 渲染控件和程序化文件生成库之间的区别。

Syncfusion法

SfBarcode 是一个 WinForms 控件。 它的作用是将条形码渲染成表单视觉布局的一部分。 要从中生成文件,开发人员必须预先分配一个与预期输出大小匹配的 Bitmap,调用 DrawToBitmap,然后调用 Bitmap.Save。 每一步都需要 Windows Forms 运行时环境。

SfBarcodeGenerator for Blazor 是一个 Razor 组件,它通过 Syncfusion Blazor JavaScript 层在浏览器中渲染。 SfBarcodeGenerator 没有服务器端 API。 从Blazor应用程序生成可下载的条形码需要JavaScript互操作和浏览器下载触发器,而不是服务器 API 调用。

对于 MAUI 应用程序,SfBarcodeGenerator 在 MAUI 布局系统中渲染条形码。 将条形码生成为文件以进行传输或打印需要额外的编组步骤,而这些步骤并非控件本身提供的。

IronBarcode方法

IronBarcode使用静态的、可链式调用的 API,直接生成文件输出。 相同的调用模式无需修改即可在任何.NET应用程序模型中运行:

// NuGet: dotnet add package IronBarcode
using IronBarCode;

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

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPng("barcode.png");
// NuGet: dotnet add package IronBarcode
using IronBarCode;

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

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPng("barcode.png");
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-KEY"

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
    .ResizeTo(400, 150) _
    .SaveAsPng("barcode.png")
$vbLabelText   $csharpLabel

一维条码生成文档涵盖所有支持的条码体系和输出选项。 没有控件实例化,没有预分配的 Bitmap,也没有 Windows Forms 运行时依赖项。

条形码读取

Syncfusion法

SfBarcodeSfBarcodeGenerator 根据设计,它们不具备读取功能。 Syncfusion生态系统通过条形码阅读器 OPX 来弥补这一差距,OPX 是一款独立的商业产品,拥有自己的许可证和购买途径。

条形码阅读器 OPX 内部使用 ZXing .NET 。 ZXing .NET是一个开源条形码读取库,根据 Apache 2.0 许可证发布。 Apache 2.0 是一种宽松的许可证,允许不受限制的商业用途。 任何开发者都可以直接安装 ZXing .NET :

dotnet add package ZXing.Net
dotnet add package ZXing.Net
SHELL

购买 Barcode Reader OPX 意味着要为Syncfusion 的一个封装库支付订阅费用,而该库本身是免费的。要实现涵盖条码生成和读取的完整Syncfusion条码工作流程,需要两个独立的Syncfusion产品、两份许可协议和两个不同的 API 接口。

IronBarcode方法

条形码读取功能与生成功能包含在同一个NuGet包中。 无需其他产品或许可证:

using IronBarCode;

var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}
using IronBarCode;

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

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

条形码读取文档涵盖多条形码检测、置信度评分、从字节数组读取以及速度与准确性调整。 读取 PDF 文档也是原生功能,无需单独的 PDF 库。

许可架构

Syncfusion法

Syncfusion社区许可提供免费访问权限,但同时要求满足四个资格条件:年总收入低于 100 万美元,开发人员不超过 5 人,员工不超过 10 人,外部资本总额低于 300 万美元。所有四个条件必须持续满足。 政府机构不符合资格。 违反任何条件都会立即产生商业许可义务,从社区许可过渡到商业许可的费用将从 0 美元增加到标准层级的每位开发商每年约 995 美元。

除了资格要求外, Syncfusion许可证密钥还与版本相关。 为 Essential Studio 24.x 颁发的密钥在升级到 25.x 后无法验证。 每次NuGet版本重大更新都需要从帐户门户获取新密钥、更新环境密钥并重新部署,以防止试用版水印出现在生产输出中。

平台注册还需要更多步骤。 Blazor应用程序需要三个独立的配置项:

// Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

// Step 2: Service registration in Program.cs
builder.Services.AddSyncfusionBlazor();

// Step 3: Namespace imports in _Imports.razor
// @using Syncfusion.Blazor
// @using Syncfusion.Blazor.BarcodeGenerator
// Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

// Step 2: Service registration in Program.cs
builder.Services.AddSyncfusionBlazor();

// Step 3: Namespace imports in _Imports.razor
// @using Syncfusion.Blazor
// @using Syncfusion.Blazor.BarcodeGenerator
' Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY")

' Step 2: Service registration in Program.vb
builder.Services.AddSyncfusionBlazor()

' Step 3: Namespace imports in _Imports.razor
' @Imports Syncfusion.Blazor
' @Imports Syncfusion.Blazor.BarcodeGenerator
$vbLabelText   $csharpLabel

MAUI 应用程序需要第四步:builder.ConfigureSyncfusionCore()

IronBarcode方法

IronBarcode许可证激活只需一次操作,在所有平台和应用程序模型中都相同:

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

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

IronBarcode 的许可页面介绍了永久许可模式。 许可证密钥设置指南涵盖了 CI/CD 和 Docker 部署的环境变量模式。 同一主版本内的次要版本和补丁版本之间的密钥不会改变,也不需要进行特定于平台的服务注册。

PDF 输出

Syncfusion法

Syncfusion条形码控件无法生成 PDF 输出。 使用 Syncfusion 工具在 PDF 文档中嵌入条形码需要将条形码控制包与 Syncfusion.Pdf 结合,生成 BitmapDrawToBitmap 的条形码,然后将该位图作为图像元素插入到 PDF 文档对象模型中。 该工作流程涉及两个独立的Syncfusion产品、两个NuGet包和一个多步骤渲染管道。

条形码控件或条形码阅读器 OPX 均不支持从现有 PDF 文档中读取条形码。

IronBarcode方法

PDF 是IronBarcode中的一流输出格式。 无需辅助库:

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPdf("barcode.pdf");
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPdf("barcode.pdf");
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
    .ResizeTo(400, 150) _
    .SaveAsPdf("barcode.pdf")
$vbLabelText   $csharpLabel

该图书馆还可以直接从 PDF 文档中读取条形码:

var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
Dim pdfResults = BarcodeReader.Read("shipping-manifest.pdf")
For Each result In pdfResults
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}")
Next
$vbLabelText   $csharpLabel

条形码 PDF 生成指南涵盖多页输出以及将条形码嵌入到其他 PDF 内容中。

API 映射参考

Syncfusion条形码 IronBarcode等效物
SyncfusionLicenseProvider.RegisterLicense("KEY") IronBarCode.License.LicenseKey = "key"
builder.Services.AddSyncfusionBlazor() 不要求
builder.ConfigureSyncfusionCore() 不要求
new SfBarcode() BarcodeWriter.CreateBarcode()(静态)
barcode.Text = "value" CreateBarcode() 的第一个参数
barcode.Symbology = BarcodeSymbolType.Code128A BarcodeEncoding.Code128
barcode.Symbology = BarcodeSymbolType.QRBarcode QRCodeWriter.CreateQrCode()
barcode.BarHeight = 100 .ResizeTo(width, 100)
barcode.ShowText = true .AddBarcodeText()
barcode.DrawToBitmap(bitmap, rect) .SaveAsPng(path)
手动 BitmapMemoryStream .ToPngBinaryData()
<SfBarcodeGenerator Type="BarcodeType.Code128" Value="..."> BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128) 服务器端
<SfQRCodeGenerator Value="..."> QRCodeWriter.CreateQrCode(value, size) 服务器端
BarcodeType.Code128(Blazor 枚举) BarcodeEncoding.Code128
条形码阅读器 OPX(封装了 ZXing .NET) BarcodeReader.Read(path) — 原生,无封装
条形码控件中没有读取 API BarcodeReader.Read(path)
无 PDF 输出 BarcodeWriter.CreateBarcode(...).SaveAsPdf(path)

当团队考虑从Syncfusion Barcode 迁移到IronBarcode时

条形码读取要求

一个完全在 WinForms 或 Blazor 中工作的团队可能会以 SfBarcodeSfBarcodeGenerator 开始显示,之后会收到扫描上传的图像、电子邮件附件或相机拍摄的传入条形码的要求。 此时, Syncfusion控制界面无法提供任何前进方向。 Syncfusion文档将团队引导至 Barcode Reader OPX,这是一个单独的商业购买项目,它封装了 ZXing .NET一个根据 Apache 2.0 许可证免费提供的库。 发现这一点的团队经常会重新评估,在自由软件周围维护付费包装是否是合适的架构决策,尤其是在统一的生成和读取库可以完全消除间接性的情况下。

服务器端和后端生成

最初以 WinForms 或 WPF 桌面工具形式开发的应用程序,有时会发展到包含 Web API 层、后台处理服务或需要生成条形码文件的云函数。 SfBarcode 包含一个 Windows Forms 运行时依赖项,该依赖项无法干净地转换为 ASP.NET Core 服务、Azure Functions 或 Linux Docker 容器。 DrawToBitmap 模式需要一个 WinForms 渲染表面,而该表面在无头环境中可能不存在。 达到这种程度的团队通常需要一个从一开始就将生成模型与 UI 渲染堆栈解耦的库。

社区许可证资格变更

Syncfusion 的社区许可证对处于快速增长期的早期团队极具吸引力。 收入、员工人数、雇员人数和筹集资金这四个同时满足的资格条件,造成了许可审批的难度,而且这种难度可能会突然出现。 A 轮融资通常会使初创公司在融资完成当天的资金超过 300 万美元的门槛,从而触发商业许可义务,无论开发人员数量或收入如何。 围绕社区许可证构建生产工作流程的团队需要考虑这种过渡的成本和时间,特别是当商业许可证涵盖整个 Essential StudioSuite而不仅仅是条形码组件时。

减少版本特定配置开销

在 CI/CD 管道中维护Syncfusion应用程序的运维团队会遇到许可证密钥轮换这一与NuGet版本升级相关的周期性任务。 适用于 Essential Studio 24.x 的密钥在升级到 25.x 后停止工作,这意味着需要在每个部署环境中更新密钥,并验证试用水印是否未出现在生产输出中。 对于发布节奏频繁或部署目标较多的团队来说,这种轮换开销与所提供的收益不成比例,尤其是在底层用例是生成条形码图像而不是使用完整的 UI 组件Suite的情况下。

常见迁移注意事项

移除 SyncfusionLicenseProvider 注册

Syncfusion 许可证调用 — SyncfusionLicenseProvider.RegisterLicense("KEY") — 通常出现在 Program.csApp.xaml.cs 或应用程序启动方法中。 必须在启动序列的同一位置将其删除并替换为 IronBarCode.License.LicenseKey = "KEY"。 如果项目中没有其他 Syncfusion 组件,则还必须删除 AddSyncfusionBlazorConfigureSyncfusionCore 中的相关服务注册调用和命名空间导入。

SfBarcode 到 BarcodeWriter 模式

SfBarcode 工作流程包括控件实例化、属性分配、尺寸规范和 DrawToBitmap 渲染。IronBarcode的等效项是一个链式调用:BarcodeWriter.CreateBarcode(value, encoding).ResizeTo(w, h).SaveAsPng(path)BarcodeSymbolType 枚举值直接映射到 BarcodeEncoding 值 — Code128A 映射到 Code128QRBarcode 映射到 QRCodeWriter.CreateQrCode

Blazor组件到 API 端点模式

SfBarcodeGenerator 是一个 Razor 组件; 用IronBarcode替换它是一种结构性改变,而不是逐行替换。 Blazor 的IronBarcode模式是一个最小的 API 端点,它以字节形式返回条形码图像,并通过标准的 <img src="..."> 标签从 Razor 组件引用。 这种方法生成的是一个服务器端端点,该端点可以独立地进行测试,并且可以在客户端之间重复使用,而不是一个与Syncfusion Blazor JavaScript层绑定的浏览器渲染组件。

IronBarcode的其他功能

以下IronBarcode功能未在上述章节中讨论,但根据项目需求,这些功能可能与项目相关:

-带有嵌入式品牌标识的二维码 .AddBrandLogo("logo.png") 在二维码中心嵌入公司标识,同时通过纠错保持扫描可靠性。

  • SVG 输出条形码可以导出为矢量 SVG 文件,适用于印刷生产和高 DPI 显示器。
  • HTML 输出条形码可以导出为独立的 HTML 文件。 -多条形码检测 BarcodeReader.Read 检测并返回单个图像中存在的所有条形码。 -对读取结果进行置信度评分每个读取结果都包含一个置信度分数,用于过滤低质量的检测结果。 -注释和样式生成的条形码支持边距、颜色、字体和注释自定义,无需外部图像编辑步骤。
  • GS1 和 USPS IMb 格式 IronBarcode支持 Syncfusion 控制中不存在的特殊格式,包括 GS1-128、USPS Intelligent Mail Barcode、MaxiCode 和 Aztec。

.NET兼容性和未来准备情况

IronBarcode面向.NET Standard 2.0 及更高版本,并兼容.NET Framework 4.6.2 及更高版本、 .NET Core 3.1 以及所有当前.NET版本,包括.NET 8 和.NET 9。该库会根据微软的.NET发布计划定期更新,确保与 .NET 10 的兼容性,尤其是在.NET 10 于 2026 年底发布之际。由于IronBarcode是一个静态程序库,而非 UI 控件,因此它不受 WinForms、WPF、 Blazor和 MAUI 等平台演进差异的影响——同一个NuGet包和同一个 API 即可在所有当前和未来的.NET应用程序模型中运行,无需任何平台特定的兼容层。

结论

Syncfusion Barcode 和IronBarcode在架构层面上存在差异,这种差异不仅仅体现在功能数量上。 Syncfusion条形码是一个集成到大型组件Suite中的 UI 渲染控件;它的设计目标是在表单布局中显示条形码,并且它很好地实现了这个目标。 IronBarcode是一个程序化的文件生成和读取库,其设计目标是将条形码作为数据进行处理——生成文件、读取图像,并在任何部署环境中运行。 这些是针对不同主要用例而设计的不同工具,选择哪种工具很大程度上取决于哪个用例适用于当前项目。

当团队已经使用Syncfusion Essential Studio 来创建其他 UI 组件(例如网格、图表、日程安排程序)并且条形码需求是在表单或Blazor页面中显示条形码时, Syncfusion条形码 是合适的选择。 在这种情况下,条形码控件已经包含在现有许可证中,将其添加到表单中只需将控件拖放到设计器中即可。 对于符合这些特定条件的团队而言,购买IronBarcode并不能带来现有许可证所不具备的价值。

当需求超出表单显示范围时, IronBarcode是合适的选择:从上传的图像中读取条形码、在后端服务中生成条形码文件、从 PDF 文档中读取条形码、在 Linux 上的 Docker 容器中部署,或者构建返回条形码图像的 Web API 端点。 对于许可情况无法永久满足所有四个Syncfusion社区许可条件的团队,或者希望避免在NuGet升级过程中进行版本特定的密钥轮换的团队来说,这也是合适的选择。IronBarcode的永久许可模式和统一的生成和读取软件包直接解决了这些操作问题。

Syncfusion 条形码生态系统的决定性限制是,生成和读取是分开的,并且读取产品是围绕自由软件的商业包装。 对于需要这两种功能的团队来说,这种安排会产生两份许可证费用、两个 API 接口,并且依赖于原本可以直接使用的 ZXing .NET 。IronBarcode的单包模式消除了这种间接性。 正确的选择是与实际需求相匹配的架构:如果全部目标只是在现有的Syncfusion UI 中显示条形码,那么Syncfusion就是最佳选择; 如果条形码处理是后端问题,那么IronBarcode是更合适的解决方案。

常见问题解答

什么是 Syncfusion 条形码?

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

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

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

IronBarcode 的授权是否比 Syncfusion Barcode 更容易?

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

IronBarcode 是否支持 Syncfusion 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 渲染库。每页的读取结果包括页码、条形码格式、数值和置信度评分。

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

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 安装程序或运行时文件。

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

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

Syncfusion Barcode 和 IronBarcode 的价格有什么区别?

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

从 Syncfusion Barcode 迁移到 IronBarcode 是否很简单?

从 Syncfusion 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 小时在线。
聊天
电子邮件
打电话给我