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條碼生態系的其他特色包括:
-僅產生控制架構: SfBarcode 和 SfBarcodeGenerator 沒有讀取 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:Text、Symbology、BarHeight、@@--CODE-94579---94579--8-8--6。 在 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
這種模式意味著在每個呼叫它的專案中載入 Windows Forms 執行時間,包括控制台應用程式、ASP.NET Core 服務和 Azure Functions。 Blazor 變體 SfBarcodeGenerator 是 Razor 元件,完全沒有伺服器端檔案輸出路徑。
了解 IronBarcode
IronBarcode 是一個 .NET 條碼庫,專為在所有 .NET 應用程式模型中以程式設計方式產生和讀取條碼而建置。 它以單一 NuGet 套件的形式發布,在同一個 API 介面中涵蓋了產生和讀取操作,無需其他產品。
此函式庫是圍繞靜態 API 模型設計的:呼叫者呼叫靜態方法(BarcodeWriter.CreateBarcode、BarcodeReader.Read、QRCodeWriter.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 條碼 和IronBarcode之間的主要差異:
| 特點 | Syncfusion 條碼 | IronBarcode |
|---|---|---|
| 條碼生成 | 是的-使用者介面控制項(WinForms、WPF、Blazor、MAUI) | 是的-靜態程式化 API,所有環境 |
| 條碼讀取 | 不——需要單獨的條碼閱讀器 OPX 產品 | 是的——和上一代產品一樣。 |
| PDF條碼輸出 | 否——需單獨下載 Syncfusion.pdf 檔案。 | 是的 — SaveAsPdf() 內置 |
| PDF條碼讀取 | 無 | 是的——本地人 |
| 無頭/伺服器端生成 | 尷尬的是-UI控制項需要WinForms執行時間。 | 原生應用程式-靜態 API,無 UI 依賴 |
| 免費套餐 | 社區許可證(四個同時滿足的條件) | 30天試用期(僅含浮水印) |
| 許可模式 | 年度訂閱(基礎工作室套件) | 永久 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) 進行了封裝。 | 是的-ZXing.Net是免費的。 | 不適用 |
| PDF條碼讀取 | 無 | 是 |
| 自動格式偵測 | 不適用 | 是 |
| 多條碼檢測 | 不適用 | 是 |
| 平台 | ||
| ASP.NET Core 最小 API | 不支援乾淨俐落 | 全面支援 |
| 跨平台(Linux) | 限額 | 全面支援 |
| 授權 | ||
| 免費套餐 | 社區許可證(四個同時滿足的條件) | 30 天試用 |
| 商業許可模式 | 年度訂閱(Essential Studio) | 永久 |
| 入門商業價格 | 約995美元/開發者/年(標準) | $749 起永久 |
| 許可證密鑰範圍 | 版本特定(主要版本更新帶來的變更) | 主要版本內版本穩定 |
| 平台註冊開銷 | 多步驟(RegisterLicense + AddSyncfusionBlazor + ConfigureSyncfusionCore) | 單線 |
| PDF 支援 | ||
| PDF 輸出 | 否——需要額外的 Syncfusion.Pdf 套件。 | 是的-內建的 |
| PDF閱讀 | 無 | 是的-內建的 |
| 格式 | ||
| 一維格式 | Code 128、Code 39、EAN-8/13、UPC-A/E、Codabar 等 | 支援所有 Syncfusion 格式,以及 PDF417、Aztec、MaxiCode、GS1、USPS IMb 等 50 多種格式。 |
| 二維格式 | 二維碼,DataMatrix | QR碼、DataMatrix碼、PDF417碼、Micro PDF417碼、Aztec碼、MaxiCode碼 |
世代架構
Syncfusion Barcode 和IronBarcode之間的根本架構差異在於 UI 渲染控制項和程式化檔案產生庫之間的差異。
融合輸注法
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")
一維條碼產生文件涵蓋所有支援的條碼體系和輸出選項。 沒有控制項實例化,沒有預先指派的 Bitmap,也沒有 Windows Forms 執行時間相依性。
條碼讀取
融合輸注法
根據設計,SfBarcode 和 SfBarcodeGenerator 不具備讀取功能。 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
購買 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
條碼讀取文件涵蓋多條碼檢測、置信度評分、從位元組數組讀取以及速度與準確度調整。 讀取 PDF 文件也是原生功能,無需單獨的 PDF 庫。
授權架構
融合輸注法
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
MAUI 應用程式需要第四步:builder.ConfigureSyncfusionCore()。
IronBarcode方法
IronBarcode 許可證啟動只需一次操作,在所有平台和應用程式模型中都相同:
IronBarCode.License.LicenseKey = "YOUR-KEY";
IronBarCode.License.LicenseKey = "YOUR-KEY";
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-KEY"
IronBarcode 的許可頁面介紹了永久許可模式。 許可證金鑰設定指南涵蓋了 CI/CD 和 Docker 部署的環境變數模式。 同一主版本內的次要版本和補丁版本之間的金鑰不會改變,也不需要進行特定於平台的服務註冊。
PDF 輸出
融合輸注法
Syncfusion 條碼控制項無法產生 PDF 輸出。 使用 Syncfusion 工具在 PDF 文件中嵌入條碼需要將條碼控制包與 Syncfusion.Pdf 結合,產生 Bitmap 到 DrawToBitmap 的條碼,然後將該位圖作為圖像元素插入到 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")
該圖書館還可以直接從 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
條碼 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) |
手動 Bitmap → MemoryStream |
.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 條碼 遷移到IronBarcode時
條碼讀取要求
一個完全在 WinForms 或 Blazor 中工作的團隊可能會以 SfBarcode 或 SfBarcodeGenerator 開始顯示,之後會收到掃描上傳的圖像、電子郵件附件或相機拍攝的傳入條碼的要求。 此時,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 Studio 套件而不僅僅是條碼元件時。
減少版本特定配置開銷
在 CI/CD 管道中維護 Syncfusion 應用程式的運維團隊會遇到許可證金鑰輪替這項與 NuGet 版本升級相關的週期性任務。 適用於 Essential Studio 24.x 的金鑰在升級到 25.x 後停止工作,這意味著需要在每個部署環境中更新金鑰,並驗證試用水印是否未出現在生產輸出中。 對於頻繁發布或有多個部署目標的團隊來說,這種輪換開銷與所提供的收益不成比例,尤其是在底層用例是產生條碼影像而不是使用完整的 UI 元件套件的情況下。
常見的遷移考量
移除 SyncfusionLicenseProvider 註冊
Syncfusion 許可證呼叫 — SyncfusionLicenseProvider.RegisterLicense("KEY") — 通常出現在 Program.cs、App.xaml.cs 或應用程式啟動方法中。 必須在啟動序列的相同位置將其刪除並替換為 IronBarCode.License.LicenseKey = "KEY"。 如果專案中沒有其他 Syncfusion 元件,則也必須刪除關聯的服務註冊呼叫(AddSyncfusionBlazor、ConfigureSyncfusionCore)和 _Imports.razor 中的命名空間導入。
SfBarcode 到 BarcodeWriter 模式
SfBarcode 工作流程包含控制項實例化、屬性分配、尺寸規格和 DrawToBitmap 渲染。IronBarcode的等效方法是單一鍊式呼叫:BarcodeWriter.CreateBarcode(value, encoding).ResizeTo(w, h).SaveAsPng(path)。 BarcodeSymbolType 枚舉值直接對應到 BarcodeEncoding 值 — Code128A 映射到 Code128,QRBarcode--CODE-94664--@@,QRBarcode 映射到96--DEDECO
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 條碼是整合到大型元件套件中的 UI 渲染控制項;它的設計目標是在表單佈局中顯示條碼,並且它很好地實現了這一目標。IronBarcode是一個程式化的檔案產生和讀取庫,其設計目標是將條碼作為資料處理——產生檔案、讀取影像,並在任何部署環境中運行。 這些是針對不同主要用例而設計的不同工具,選擇哪種工具很大程度上取決於哪個用例適用於當前專案。
當團隊已經使用 Syncfusion Essential Studio 來建立其他 UI 元件(例如網格、圖表、日程安排程式)並且條碼需求是在表單或 Blazor 頁面中顯示條碼時,Syncfusion Barcode 是合適的選擇。 在這種情況下,條碼控制項已包含在現有授權中,將其新增至表單中只需將控制項拖曳到設計器中即可。 對於符合這些特定條件的團隊而言,購買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()` 函數建立彩色二維碼。

