GrapeCity 바코드와 IronBarcode: C# 바코드 라이브러리 비교
ComponentOne의 바코드 컨트롤은 Windows Forms 애플리케이션 내에서 바코드를 생성합니다. 이 프로그램은 이러한 점에서 뛰어납니다. API는 깔끔하고, 출력 품질은 우수하며, WinForms 디자이너와 자연스럽게 통합됩니다. 하지만 그 역할의 범위는 좁습니다. 바코드를 읽을 수 없습니다. 이 프로그램은 윈도우 환경 외부에서는 실행될 수 없습니다. 또한 이는 독립형 제품이 아니라, WinForms, WPF, Blazor 및 ASP.NET 용 100개 이상의 UI 컨트롤을 포함하는 연간 개발자 구독료 약 1,473달러인 ComponentOne Studio Enterprise 의 일부로 제공됩니다. .NET 프로젝트에 사용할 바코드 옵션을 평가하는 과정에서 ComponentOne을 비교 목록에 발견했다면, 이 글은 해당 옵션의 실제 적용 범위에 대한 내용입니다.
C1BarCode 이해하기
C1BarCode는 WinForms의 시각적 컨트롤입니다. 생성 워크플로에서는 인스턴스를 생성하고, 속성을 설정하고, GetImage()을 호출하여 System.Drawing.Image을 검색합니다:
// ComponentOne C1BarCode
using C1.Win.C1BarCode;
using System.Drawing;
// License must be set before first use
C1.C1License.Key = "YOUR-COMPONENTONE-KEY";
var barcode = new C1BarCode();
barcode.CodeType = CodeType.Code128;
barcode.Text = "ITEM-12345";
barcode.BarHeight = 100;
barcode.ModuleSize = 2;
barcode.ShowText = true;
barcode.CaptionPosition = CaptionPosition.Below;
using var image = barcode.GetImage();
image.Save("barcode.png", System.Drawing.Imaging.ImageFormat.Png);
// ComponentOne C1BarCode
using C1.Win.C1BarCode;
using System.Drawing;
// License must be set before first use
C1.C1License.Key = "YOUR-COMPONENTONE-KEY";
var barcode = new C1BarCode();
barcode.CodeType = CodeType.Code128;
barcode.Text = "ITEM-12345";
barcode.BarHeight = 100;
barcode.ModuleSize = 2;
barcode.ShowText = true;
barcode.CaptionPosition = CaptionPosition.Below;
using var image = barcode.GetImage();
image.Save("barcode.png", System.Drawing.Imaging.ImageFormat.Png);
Imports C1.Win.C1BarCode
Imports System.Drawing
Imports System.Drawing.Imaging
' License must be set before first use
C1.C1License.Key = "YOUR-COMPONENTONE-KEY"
Dim barcode As New C1BarCode()
barcode.CodeType = CodeType.Code128
barcode.Text = "ITEM-12345"
barcode.BarHeight = 100
barcode.ModuleSize = 2
barcode.ShowText = True
barcode.CaptionPosition = CaptionPosition.Below
Using image As Image = barcode.GetImage()
image.Save("barcode.png", ImageFormat.Png)
End Using
속성 설정 API는 WinForms 개발자에게 익숙하며, 디자이너 화면에 직접 매핑됩니다. CodeType, BarHeight, ModuleSize, ShowText, CaptionPosition는 모두 코드에서 동일하게 작동하는 디자이너 가시 속성입니다.
C1BarCode는 Code 39, Code 128, EAN-8, EAN-13, UPC-A, UPC-E, ITF, QR 코드, PDF417 등 주요 1D 및 2D 포맷을 지원합니다. WinForms 생성의 경우, 일반적인 사용 사례를 모두 다룹니다.
읽기 API 없음
이는 설정 옵션으로 해결할 수 있는 문제가 아닙니다. 코드-51318--@@ 클래스는 없습니다. Decode()에는 C1BarCode 메서드가 없습니다. ComponentOne의 바코드 제어 기능은 설계상 생성 전용입니다.
업로드된 이미지에서 바코드를 스캔하거나, 인쇄된 라벨을 검증하거나, 내장 코드가 있는 문서를 처리하거나, 웹 API에서 QR 코드로부터 데이터를 추출해야 하는 애플리케이션의 경우, C1BarCode로는 이러한 작업이 불가능합니다. 읽기를 위해서는 별도의 라이브러리가 필요하므로, 독립형 바코드 라이브러리가 두 가지 작업을 모두 지원하는 상황에서 100개 이상의 제어 기능을 갖춘 Enterprise Suite 내에서 바코드 생성 전용 구성 요소에 비용을 지불할 이유가 없다는 의문이 제기됩니다.
인쇄 출력을 위해 설계된 WinForms 바코드 컨트롤에서 읽기 API가 없는 것은 드문 일이 아닙니다. 결정의 순간이 되는 이유는 요구사항이 확대될 때인데, 바코드 요구사항은 거의 항상 확대됩니다.
Windows 전용 제약 조건
C1BarCode는 Windows 전용 대상 프레임워크 구성이 필요합니다.
<TargetFramework>net8.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<TargetFramework>net8.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
net8.0-windows 대상 프레임워크 명칭과 UseWindowsForms는 선택적 기본 설정이 아닙니다. C1.Win.C1BarCode은 Windows에만 존재하는 System.Windows.Forms 유형 - UserControl, PaintEventArgs, Graphics - 에 따라 달라집니다. net8.0-windows을 제거하면 빌드가 중단됩니다.
이에 반해 IronBarcode는 플랫폼 제한 없이 net8.0(또는 지원되는 모든 TFM)을 대상으로 합니다:
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
이는 여러 실제 상황에서 중요합니다.
- Linux용 Azure App Service: 새 App Service 배포를 위한 기본 플랜입니다.
net8.0-windows은 타겟팅할 수 없습니다. - 도커 컨테이너: 리눅스 컨테이너는 표준입니다. Windows 컨테이너는 크기가 더 크고 비용이 더 많이 들며 많은 클라우드 계층에서 사용할 수 없습니다.
- ASP.NET Core 웹 API: Windows에만 배포할 수 있는 바코드 생성 엔드포인트는 팀에서 결국 제거해야 할 배포 제약 조건입니다.
- Azure Functions: 사용량 기반 요금제는 Linux에서 실행됩니다. 코드-51331--@@ 대상이 @@인 바코드 생성 함수는 소비 요금제에 배포할 수 없습니다.
- macOS 개발: macOS 개발자는 생성 로직 테스트를 위해서라도
net8.0-windows프로젝트를 로컬에서 실행할 수 없습니다.
애플리케이션이 Windows에서만 실행되는 WinForms 데스크톱 도구인 경우 플랫폼 제약은 문제가 되지 않습니다. 배포 요구 사항에 Linux 또는 클라우드 환경이 포함되는 순간 문제가 발생합니다.
Suite 번들링
C1BarCode는 독립형 NuGet 패키지로 제공되지 않습니다. 이는 WinForms, WPF, Blazor 및 ASP.NET 용 ComponentOne 컨트롤 Suite 전체를 포함하는 ComponentOne Studio Enterprise 의 일부입니다. ComponentOne Studio Enterprise 의 가격은 개발자 1인당 연간 약 1,473달러(구독료)입니다.
해당 Suite 에는 그리드, 차트, 스케줄러, 입력 컨트롤, 보고서 디자이너, 지도 컨트롤, 게이지 등 100개 이상의 구성 요소가 포함되어 있습니다. 데이터가 많은 WinForms 애플리케이션을 개발 중이고 이러한 컨트롤이 많이 필요한 경우, Suite 가격 책정 방식이 합리적일 수 있습니다. 바코드 생성이 필요해서 검색 결과로 ComponentOne을 선택했다면, 사실상 단 하나의 컨트롤을 위해 대규모 Enterprise UI Suite 구매하는 셈입니다.
C1BarCode 패키지는 단독으로 제공되지 않습니다. dotnet add package C1.Win.C1BarCode이 존재하지 않습니다 - 패키지는 C1.Win.C1BarCode 라이선스 또는 ComponentOne Studio 설치 프로그램의 일부인 GrapeCity.Documents입니다. 전체 Suite 없이 바코드 기능만 원하는 개발자를 위한 부분 구매 옵션은 없습니다.
IronBarcode의 가격 구조는 다릅니다. IronBarcode는 독립형 바코드 라이브러리로, 개발자 1인 기준 영구 라이선스 가격이 749달러부터 시작합니다. 그리드 컨트롤도, 차트 라이브러리도, 보고서 디자이너도 없습니다. 오직 여러분이 찾고 있는 바코드 기능만 있습니다.
QR 코드 맞춤 설정
두 라이브러리 모두 사용자 지정 옵션을 통해 QR 코드 생성을 지원합니다. API 스타일이 상당히 다릅니다.
ComponentOne 속성 설정 방식:
// ComponentOne — QR code with error correction and color
using C1.Win.C1BarCode;
using System.Drawing;
C1.C1License.Key = "YOUR-COMPONENTONE-KEY";
var barcode = new C1BarCode();
barcode.CodeType = CodeType.QRCode;
barcode.Text = "https://example.com/product/4821";
barcode.QRCodeVersion = QRCodeVersion.Version5;
barcode.QRCodeErrorCorrectionLevel = QRCodeErrorCorrectionLevel.High;
barcode.QRCodeModel = QRCodeModel.Model2;
barcode.ForeColor = Color.DarkBlue;
barcode.BackColor = Color.White;
barcode.ModuleSize = 4;
using var image = barcode.GetImage();
image.Save("product-qr.png", System.Drawing.Imaging.ImageFormat.Png);
// ComponentOne — QR code with error correction and color
using C1.Win.C1BarCode;
using System.Drawing;
C1.C1License.Key = "YOUR-COMPONENTONE-KEY";
var barcode = new C1BarCode();
barcode.CodeType = CodeType.QRCode;
barcode.Text = "https://example.com/product/4821";
barcode.QRCodeVersion = QRCodeVersion.Version5;
barcode.QRCodeErrorCorrectionLevel = QRCodeErrorCorrectionLevel.High;
barcode.QRCodeModel = QRCodeModel.Model2;
barcode.ForeColor = Color.DarkBlue;
barcode.BackColor = Color.White;
barcode.ModuleSize = 4;
using var image = barcode.GetImage();
image.Save("product-qr.png", System.Drawing.Imaging.ImageFormat.Png);
Imports C1.Win.C1BarCode
Imports System.Drawing
Imports System.Drawing.Imaging
C1.C1License.Key = "YOUR-COMPONENTONE-KEY"
Dim barcode As New C1BarCode()
barcode.CodeType = CodeType.QRCode
barcode.Text = "https://example.com/product/4821"
barcode.QRCodeVersion = QRCodeVersion.Version5
barcode.QRCodeErrorCorrectionLevel = QRCodeErrorCorrectionLevel.High
barcode.QRCodeModel = QRCodeModel.Model2
barcode.ForeColor = Color.DarkBlue
barcode.BackColor = Color.White
barcode.ModuleSize = 4
Using image As Image = barcode.GetImage()
image.Save("product-qr.png", ImageFormat.Png)
End Using
IronBarcode 플루언트 체인:
//IronBarcode— QR code with error correction and color
// NuGet: dotnet add package IronBarcode
using IronBarCode;
using System.Drawing;
QRCodeWriter.CreateQrCode(
"https://example.com/product/4821",
300,
QRCodeWriter.QrErrorCorrectionLevel.Highest)
.ChangeBarCodeColor(Color.DarkBlue)
.SaveAsPng("product-qr.png");
//IronBarcode— QR code with error correction and color
// NuGet: dotnet add package IronBarcode
using IronBarCode;
using System.Drawing;
QRCodeWriter.CreateQrCode(
"https://example.com/product/4821",
300,
QRCodeWriter.QrErrorCorrectionLevel.Highest)
.ChangeBarCodeColor(Color.DarkBlue)
.SaveAsPng("product-qr.png");
Imports IronBarCode
Imports System.Drawing
QRCodeWriter.CreateQrCode( _
"https://example.com/product/4821", _
300, _
QRCodeWriter.QrErrorCorrectionLevel.Highest) _
.ChangeBarCodeColor(Color.DarkBlue) _
.SaveAsPng("product-qr.png")
ComponentOne 접근 방식에서는 C1BarCode 객체를 인스턴스화하고 GetImage()을 호출하기 전에 여러 속성을 설정해야 합니다. 각 연산이 바코드 객체를 반환하고 마지막에 QRCodeWriter을 호출하는 유창한 체인을 사용하는 IronBarcode의 .SaveAsPng(). 관리할 인스턴스가 없습니다.
IronBarcode C1BarCode와 달리 QR 코드에 로고를 삽입하는 기능을 지원합니다.
// QR code with embedded brand logo
QRCodeWriter.CreateQrCode("https://example.com/track/8821", 500)
.AddBrandLogo("company-logo.png")
.ChangeBarCodeColor(Color.DarkBlue)
.SaveAsPng("branded-qr.png");
// QR code with embedded brand logo
QRCodeWriter.CreateQrCode("https://example.com/track/8821", 500)
.AddBrandLogo("company-logo.png")
.ChangeBarCodeColor(Color.DarkBlue)
.SaveAsPng("branded-qr.png");
' QR code with embedded brand logo
QRCodeWriter.CreateQrCode("https://example.com/track/8821", 500) _
.AddBrandLogo("company-logo.png") _
.ChangeBarCodeColor(Color.DarkBlue) _
.SaveAsPng("branded-qr.png")
IronBarcode이해하기
IronBarcode 는 바코드 생성 및 읽기 기능을 포함하는 독립형 .NET 바코드 라이브러리입니다. NuGet(dotnet add package IronBarcode)에서 설치되며, 플랫폼 제한 없이 지원되는 모든 .NET TFM을 대상으로 하며, Windows, Linux, macOS, Docker, Azure 및 AWS Lambda에서 실행됩니다.
읽기 기능은 PDF 문서를 기본적으로 지원합니다.
// Read barcodes from a PDF — no image extraction needed
using IronBarCode;
var results = BarcodeReader.Read("invoice.pdf");
foreach (var barcode in results)
{
Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Format} — {barcode.Value}");
}
// Read barcodes from a PDF — no image extraction needed
using IronBarCode;
var results = BarcodeReader.Read("invoice.pdf");
foreach (var barcode in results)
{
Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Format} — {barcode.Value}");
}
Imports IronBarCode
' Read barcodes from a PDF — no image extraction needed
Dim results = BarcodeReader.Read("invoice.pdf")
For Each barcode In results
Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Format} — {barcode.Value}")
Next
처리량이 많은 시나리오의 경우 BarcodeReaderOptions는 속도와 정확도 간의 트레이드오프와 다중 바코드 감지를 제어합니다:
// Multi-barcode read with performance options
using IronBarCode;
var options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Balanced,
ExpectMultipleBarcodes = true,
ExpectedBarcodeTypes = BarcodeEncoding.Code128 | BarcodeEncoding.QRCode
};
var results = BarcodeReader.Read("warehouse-manifest.jpg", options);
// Multi-barcode read with performance options
using IronBarCode;
var options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Balanced,
ExpectMultipleBarcodes = true,
ExpectedBarcodeTypes = BarcodeEncoding.Code128 | BarcodeEncoding.QRCode
};
var results = BarcodeReader.Read("warehouse-manifest.jpg", options);
Imports IronBarCode
' Multi-barcode read with performance options
Dim options As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Balanced,
.ExpectMultipleBarcodes = True,
.ExpectedBarcodeTypes = BarcodeEncoding.Code128 Or BarcodeEncoding.QRCode
}
Dim results = BarcodeReader.Read("warehouse-manifest.jpg", options)
생성 과정에서는 일관된 정적 API를 사용하여 표준 형식을 지원합니다.
// Code 128 generation to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128)
.SaveAsPng("shipping-label.png");
// QR 코드 생성 to byte array (for HTTP response)
byte[] qrBytes = QRCodeWriter.CreateQrCode("https://example.com/order/7734", 400)
.ToPngBinaryData();
// Code 128 generation to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128)
.SaveAsPng("shipping-label.png");
// QR 코드 생성 to byte array (for HTTP response)
byte[] qrBytes = QRCodeWriter.CreateQrCode("https://example.com/order/7734", 400)
.ToPngBinaryData();
Imports System
' Code 128 generation to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128) _
.SaveAsPng("shipping-label.png")
' QR 코드 생성 to byte array (for HTTP response)
Dim qrBytes As Byte() = QRCodeWriter.CreateQrCode("https://example.com/order/7734", 400) _
.ToPngBinaryData()
지원 플랫폼: Windows, Linux, macOS, Docker, Azure(App Service 및 Functions), AWS Lambda. 지원되는 .NET 버전: .NET 4.6.2부터 .NET 9까지.
기능 비교
| 기능 | 그레이프시티 C1바코드 | IronBarcode |
|---|---|---|
| 바코드 생성 | 예 | 예 |
| 바코드 판독 | 아니요 | 예 |
| QR 코드 생성 | 예 | 예 |
| QR 로고 삽입 | 아니요 | 예 |
| 읽기용 PDF 입력 | 해당 없음 (읽을 내용 없음) | 예 (원어민) |
| .NET 플랫폼 대상 | net8.0-windows 전용 |
모든 TFM(net8.0 등) |
| WindowsForms를 사용해야 합니다. | 예 | 아니요 |
| Linux/Docker 배포 | 아니요 | 예 |
| macOS 배포 | 아니요 | 예 |
| Azure Functions(리눅스) | 아니요 | 예 |
| ASP.NET Core 서버 측 | 제한적 (Windows 전용) | 예 |
| 독립 실행 NuGet 패키지 | 아니요 (Suite만) | 예 |
| 독립형 가격 책정 | 해당 없음 | 749달러부터 영구적으로 |
| Suite 가격 | 약 $1,473/개발자/년 (구독료) | 해당 없음 |
| 플루언트 생성 API | 아니요 (속성 설정자) | 예 |
| @@--코드-51344--@@ | 아니요 | 예 |
| @@--코드-51345--@@ | 아니요 | 예 |
| @@--코드-51346--@@ | 아니요 | 예 |
| 지원되는 .NET 버전 | .NET 6 이상 (Windows) | .NET 4.6.2부터 .NET 9까지 |
| 영구 라이선스 옵션 | 아니오 (구독) | 예 |
API 매핑 참조
C1BarCode에서IronBarcode로 마이그레이션하는 팀의 경우, 다음과 같은 직접적인 동등 사항이 적용됩니다.
| 컴포넌트원 C1바코드 | IronBarcode |
|---|---|
| @@--코드-51347--@@ | @@--코드-51348--@@ |
| @@--코드-51349--@@ | 정적 — 인스턴스가 필요하지 않음 |
| @@--코드-51350--@@ | BarcodeEncoding.Code128(파라미터로 전달) |
| @@--코드-51352--@@ | BarcodeWriter.CreateBarcode()의 첫 번째 인수 |
| @@--코드-51354--@@ | 바코드 작성기의 .ResizeTo(width, 100) |
| @@--코드-51356--@@ | .ResizeTo() 픽셀 단위로 크기를 제어합니다 |
| @@--코드-51358--@@ | @@--코드-51359--@@ |
| @@--코드-51360--@@ | @@--코드-51361--@@ |
| @@--코드-51362--@@ | @@--코드-51363--@@ / @@--코드-51364--@@ |
| @@--코드-51365--@@ | QRCodeWriter.QrErrorCorrectionLevel 열거형 |
| @@--코드-51367--@@ | 자동 (또는 버전 매개변수) |
| 읽기 API 없음 | @@--코드-51368--@@ |
net8.0-windows 필수 |
net8.0(또는 모든 TFM) |
UseWindowsForms = true 필수 |
필요하지 않음 |
팀 전환 시
독서 요구 사항이 생겨납니다. 이것이 가장 흔한 원인입니다. 한 팀이 C1BarCode를 사용하여 바코드 라벨 생성 기능을 구축한 후, 스캔 검증, 입고 문서 처리 또는 업로드된 이미지에서 QR 코드 디코딩과 같은 요구 사항을 받게 됩니다. C1BarCode는 도움이 되지 않습니다. 선택지는 두 가지입니다. 바코드 읽기를 위한 두 번째 라이브러리를 추가하거나, C1BarCode를 두 가지 모두를 처리하는 라이브러리로 교체하는 것입니다.
Linux 또는 Docker 배포 환경입니다. Windows 데스크톱용으로 출시되는 WinForms 데스크톱 앱은 이러한 제약을 받지 않습니다. 바코드 이미지를 생성하는 ASP.NET Core API는 특히 Linux 컨테이너에서 실행하거나 Linux 기반 Azure App Service에 배포해야 하는 경우 이러한 요구 사항을 충족해야 합니다. net8.0-windows 대상 프레임워크는 이러한 배포 옵션을 즉시 차단합니다.
마이크로서비스 또는 서버리스 아키텍처. Azure Functions, AWS Lambda 및 컨테이너화된 마이크로서비스는 Linux를 우선으로 합니다. Linux에 배포할 수 없는 바코드 생성 서비스는 실용적인 마이크로서비스라고 할 수 없습니다.
Suite 구독 비용 대비 요구 사항 범위. ComponentOne Studio Enterprise 구독하고 이미 그리드, 차트 및 기타 컨트롤을 사용하고 있는 팀은 이미 구독료를 정당화한 셈입니다. 주로 또는 전적으로 바코드 생성을 위해 구독한 팀들은 사용하지 않는 100개 이상의 컨트롤에 대해 비용을 지불하고 있습니다. 개발자당 구독료는 팀 규모가 커질수록 증가합니다.
영구 라이선스를 선호합니다. ComponentOne Studio는 구독형 제품입니다. 영구 라이선스 옵션은 없습니다. 특히 규정 준수나 장기 유지 관리상의 이유로 자신들이 출시한 소프트웨어의 소유권을 유지하려는 팀의 경우, IronBarcode의 749달러부터 시작하는 영구 라이선스는 구조적으로 차별화됩니다.
결론
C1BarCode는 WinForms 환경에서 깔끔하게 바코드를 생성합니다. 그것이 바로 이 제품이 진정으로 잘하는 부분이며, Windows에서 레이블 생성만 필요한 WinForms 데스크톱 애플리케이션의 경우 ComponentOne Suite 내에서 기능적인 선택입니다.
범위는 거기서 끝납니다. 읽기 기능 없음, Windows 전용 배포, 독립 실행형 패키지 없음, 구독 라이선스 방식. 프로젝트 요구 사항이 Windows의 WinForms 생성 범위를 넘어 읽기 요구 사항, Linux 배포 대상, 웹 API, Docker 컨테이너, 클라우드 함수 등으로 확장될 경우, C1BarCode는 이러한 요구 사항을 모두 충족할 수 없습니다.IronBarcode바코드 생성 및 읽기 기능을 제공하며, .NET 지원하는 모든 플랫폼에서 실행되고, 100개 컨트롤로 구성된 Enterprise Suite 구독 없이도 독립 실행형 패키지로 사용할 수 있습니다.
자주 묻는 질문
GrapeCity 바코드란 무엇인가요?
GrapeCity 바코드는 C# 애플리케이션에서 바코드를 생성하고 판독하기 위한 .NET 바코드 라이브러리입니다. 개발자가 .NET 프로젝트용 바코드 솔루션을 선택할 때 평가하는 여러 대안 중 하나입니다.
GrapeCity 바코드와 IronBarcode의 주요 차이점은 무엇인가요?
IronBarcode는 인스턴스 관리가 필요 없는 정적 상태 비저장 API를 사용하는 반면, GrapeCity 바코드는 일반적으로 사용하기 전에 인스턴스 생성 및 구성이 필요합니다. 또한 IronBarcode는 모든 환경에서 기본 PDF 지원, 자동 형식 감지, 단일 키 라이선싱을 제공합니다.
IronBarcode가 GrapeCity 바코드보다 라이선스 취득이 더 쉬운가요?
IronBarcode는 개발 및 프로덕션 배포를 모두 포괄하는 단일 라이선스 키를 사용합니다. 따라서 SDK 키와 런타임 키를 분리하는 라이선싱 시스템에 비해 CI/CD 파이프라인 및 Docker 구성이 간소화됩니다.
IronBarcode는 GrapeCity 바코드가 지원하는 모든 바코드 형식을 지원하나요?
IronBarcode는 QR코드, Code 128, Code 39, DataMatrix, PDF417, Aztec, EAN-13, UPC-A, GS1 등 30개 이상의 바코드 심볼로지를 지원합니다. 형식 자동 감지 기능은 명시적인 형식 열거가 필요하지 않음을 의미합니다.
IronBarcode는 네이티브 PDF 바코드 판독을 지원하나요?
예. IronBarcode는 별도의 PDF 렌더링 라이브러리가 필요 없이 BarcodeReader.Read("document.pdf")를 사용하여 PDF 파일에서 직접 바코드를 판독합니다. 페이지별 결과에는 페이지 번호, 바코드 형식, 값 및 신뢰도 점수가 포함됩니다.
IronBarcode는 GrapeCity 바코드와 비교하여 일괄 처리를 어떻게 처리하나요?
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'를 실행하거나 CLI에서 '닷넷 추가 패키지 IronBarCode'를 실행합니다. 추가 SDK 인스톨러나 런타임 파일은 필요하지 않습니다.
GrapeCity와 달리 구매 전에 IronBarcode를 평가할 수 있나요?
예. IronBarcode의 평가판 모드는 완전한 디코딩된 바코드 값을 반환하며 생성된 출력 이미지에만 워터마크가 표시됩니다. 구매를 결정하기 전에 자신의 문서에서 판독 정확도를 벤치마킹할 수 있습니다.
GrapeCity Barcode와 IronBarcode의 가격 차이는 무엇인가요?
개발 및 프로덕션을 포함하는 단일 개발자 영구 라이선스의 IronBarcode 가격은 $749부터 시작합니다. 가격 세부 정보 및 볼륨 옵션은 IronBarcode 라이선스 페이지에서 확인할 수 있습니다. 별도의 런타임 라이선스 요구 사항은 없습니다.
GrapeCity 바코드에서 IronBarcode로 마이그레이션하는 것은 간단하나요?
GrapeCity Barcode에서 IronBarcode로의 마이그레이션에는 주로 인스턴스 기반 API 호출을 IronBarcode의 정적 메서드로 대체하고, 라이선스 상용구를 제거하며, 결과 속성 이름을 업데이트하는 작업이 포함됩니다. 대부분의 마이그레이션에는 코드를 추가하기보다는 줄이는 작업이 포함됩니다.
IronBarcode는 로고가 있는 QR 코드를 생성하나요?
예. QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png")는 구성 가능한 오류 수정을 통해 기본적으로 브랜드 이미지를 QR코드에 임베드합니다. ChangeBarCodeColor()를 통해 컬러 QR 코드도 지원됩니다.

