푸터 콘텐츠로 바로가기
다른 구성 요소와 비교

DevExpress 바코드와 IronBarcode: C# 바코드 라이브러리 비교

MESCIUS 컴포넌트원 C1바코드 vs IronBarcode

MESCIUS ComponentOne의 바코드 제어기(이전 GrapeCity, 2023년 리브랜딩)는 Windows Forms, WPF, WinUI, Blazor 및 ASP.NET Core MVC 응용 프로그램 내에서 바코드를 생성합니다. 이 프로그램은 이러한 점에서 뛰어납니다. API는 깔끔하고, 출력 품질은 우수하며, WinForms 디자이너와 자연스럽게 통합됩니다. 하지만 그 역할의 범위는 좁습니다. 바코드를 읽을 수 없습니다. WinForms 및 WPF 버전은 Windows 전용 대상으로 실행됩니다. 독립 실행형 제품이 아니라 ComponentOne Studio Enterprise의 일부로 제공됩니다. 연간 개발자당 $1,299 구독으로 100개 이상의 UI 컨트롤을 포함합니다. .NET 프로젝트에 사용할 바코드 옵션을 평가하는 과정에서 ComponentOne을 비교 목록에 발견했다면, 이 글은 해당 옵션의 실제 적용 범위에 대한 내용입니다.

C1BarCode 이해하기

C1BarCode는 시각적 제어기입니다. 생성 워크플로는 인스턴스를 생성하고, 속성을 설정한 후, GetImage()를 호출하여 System.Drawing.Image를 검색합니다:

// ComponentOne C1BarCode
using C1.Win.Barcode;
using C1.BarCode;
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.Barcode;
using C1.BarCode;
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.Barcode
Imports C1.BarCode
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
$vbLabelText   $csharpLabel

속성 설정 API는 WinForms 개발자에게 익숙하며, 디자이너 화면에 직접 매핑됩니다. CodeType, BarHeight, ModuleSize, ShowTextCaptionPosition는 코드에서 동일하게 작동하는 디자이너가 볼 수 있는 속성입니다.

C1BarCode는 주류 1D 및 2D 형식을 포함한 38개의 심볼로지를 지원합니다. 여기에는 Code 39, Code 128, EAN-8, EAN-13, UPC-A, UPC-E, ITF, QR 코드, PDF417 및 DataMatrix 등이 포함됩니다. 바코드 생성의 경우 일반적인 사용 사례를 포함합니다.

읽기 API 없음

이는 설정 옵션으로 해결할 수 있는 문제가 아닙니다. C1BarCodeReader 클래스가 없습니다. Decode() 메서드가 C1BarCode에 없습니다. ComponentOne의 바코드 제어 기능은 설계상 생성 전용입니다.

업로드된 이미지에서 바코드를 스캔하거나, 인쇄된 라벨을 검증하거나, 내장 코드가 있는 문서를 처리하거나, 웹 API에서 QR 코드로부터 데이터를 추출해야 하는 애플리케이션의 경우, C1BarCode로는 이러한 작업이 불가능합니다. 읽기를 위해서는 별도의 라이브러리가 필요하므로, 독립형 바코드 라이브러리가 두 가지 작업을 모두 지원하는 상황에서 100개 이상의 제어 기능을 갖춘 Enterprise Suite 내에서 바코드 생성 전용 구성 요소에 비용을 지불할 이유가 없다는 의문이 제기됩니다.

인쇄 출력을 위해 설계된 WinForms 바코드 컨트롤에서 읽기 API가 없는 것은 드문 일이 아닙니다. 결정의 순간이 되는 이유는 요구사항이 확대될 때인데, 바코드 요구사항은 거의 항상 확대됩니다.

Windows 전용 제약 조건

C1BarCode의 WinForms 및 WPF 버전은 Windows 전용 대상 프레임워크 구성이 필요합니다:


<TargetFramework>net8.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>

<TargetFramework>net8.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
XML

net8.0-windows 대상 프레임워크 모니커와 UseWindowsForms는 선택적 선호사항이 아닙니다. C1.Win.BarCode는 Windows에만 존재하는 System.Windows.Forms 유형 — UserControl, PaintEventArgs, Graphics에 의존합니다. net8.0-windows를 제거하면 빌드가 중단됩니다. ComponentOne은 크로스 플랫폼 TFM을 타겟으로 하는 Blazor 및 ASP.NET Core MVC 버전의 바코드 제어기를 제공하지만, WinForms 및 WPF 패키지는 Windows에 묶입니다.

대조적으로, IronBarcode는 플랫폼 제한 없이 net8.0(또는 모든 지원되는 TFM)을 대상으로 합니다:


<TargetFramework>net8.0</TargetFramework>

<TargetFramework>net8.0</TargetFramework>
XML

이는 여러 실제 상황에서 중요합니다.

  • Linux용 Azure App Service: 새 App Service 배포를 위한 기본 플랜입니다. net8.0-windows는 그것을 대상으로 할 수 없습니다.
  • Docker 컨테이너: 리눅스 컨테이너는 표준입니다. Windows 컨테이너는 크기가 더 크고 비용이 더 많이 들며 많은 클라우드 계층에서 사용할 수 없습니다.
  • ASP.NET Core 웹 API: Windows에만 배포할 수 있는 바코드 생성 엔드포인트는 팀에서 결국 제거해야 할 배포 제약 조건입니다.
  • Azure Functions: 사용량 기반 요금제는 Linux에서 실행됩니다. net8.0-windows 대상을 가진 바코드 생성 함수를 소비 계획에 배포할 수 없습니다.
  • macOS 개발: macOS의 개발자는 net8.0-windows 프로젝트를 로컬에서 실행할 수 없으며, 생성 로직을 테스트할 때도 마찬가지입니다.

애플리케이션이 Windows에서만 실행되는 WinForms 데스크톱 도구인 경우 플랫폼 제약은 문제가 되지 않습니다. 배포 요구 사항에 Linux 또는 클라우드 환경이 포함되는 순간 문제가 발생합니다.

Suite 번들링

C1BarCode 제어기는 ComponentOne Studio Enterprise의 일부로 판매되며, WinForms, WPF, Blazor 및 ASP.NET의 전체 ComponentOne 제어기 Suite를 포함합니다. ComponentOne Studio Enterprise의 가격은 연간 개발자당 $1,299(구독); 단일 플랫폼 버전 (WinForms 또는 WPF)은 연간 개발자당 $799입니다.

해당 Suite 에는 그리드, 차트, 스케줄러, 입력 컨트롤, 보고서 디자이너, 지도 컨트롤, 게이지 등 100개 이상의 구성 요소가 포함되어 있습니다. 데이터 집약적 응용 프로그램을 구축 중이며 많은 컨트롤이 필요한 경우, Suite 가격이 합리적일 수 있습니다. 바코드 생성을 위해 ComponentOne을 찾게 된 것이라면, 기본적으로 한 가지 제어기를 위해 Enterprise UI Suite를 구매하는 것입니다.

NuGet 패키지는 WinForms에 대해 C1.Win.BarCode이며 (다른 플랫폼에 대해서는 C1.WPF.BarCode, C1.WinUI.BarCode, C1.Blazor.BarCode 포함), ComponentOne Studio 구독을 통해 라이센스가 부여됩니다. 전체 Suite 없이 바코드 기능을 원하는 개발자를 위해서는 별도의 바코드 전용 라이선스가 없습니다.

IronBarcode의 가격 구조는 다릅니다: 이는 독립 실행형 바코드 라이브러리로, 영구 라이선스는 단일 개발자(Lite) 용 $749 부터 시작하며, 3명 (Plus)을 위해 $1,499, 10명 (Professional) 을 위해 $2,999, 무제한 개발자 용 $5,999입니다. 그리드 컨트롤도, 차트 라이브러리도, 보고서 디자이너도 없습니다. 오직 여러분이 찾고 있는 바코드 기능만 있습니다.

QR 코드 맞춤 설정

두 라이브러리 모두 사용자 지정 옵션을 통해 QR 코드 생성을 지원합니다. API 스타일이 상당히 다릅니다.

ComponentOne 속성 설정 방식:

// ComponentOne — QR code with error correction and color
using C1.Win.Barcode;
using C1.BarCode;
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.Barcode;
using C1.BarCode;
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.Barcode
Imports C1.BarCode
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
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

ComponentOne 접근법은 C1BarCode 객체를 인스턴스화하고 여러 속성을 설정한 다음 GetImage()을 호출해야 합니다. IronBarcode의 QRCodeWriter는 유창한 체인을 사용하며, 각 작업은 바코드 객체를 반환하고, 마지막에 .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")
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

고처리량 시나리오의 경우, BarcodeReaderOptions는 속도 대 정확성 절충과 다중 바코드 감지를 제어합니다:

// Multi-barcode read with performance options
using IronBarCode;

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = 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,
    ExpectBarcodeTypes = 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,
    .ExpectBarcodeTypes = BarcodeEncoding.Code128 Or BarcodeEncoding.QRCode
}

Dim results = BarcodeReader.Read("warehouse-manifest.jpg", options)
$vbLabelText   $csharpLabel

생성 과정에서는 일관된 정적 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()
$vbLabelText   $csharpLabel

지원 플랫폼: Windows, Linux, macOS, Docker, Azure(App Service 및 Functions), AWS Lambda. 지원하는 .NET 버전: .NET Framework 4.6.2+, .NET Core 3.1+, 그리고 .NET 5/6/7/8.

기능 비교

기능 MESCIUS 컴포넌트원 C1바코드 IronBarcode
바코드 생성
바코드 판독 아니요
QR 코드 생성
QR 로고 삽입 아니요
읽기용 PDF 입력 해당 없음 (읽을 내용 없음) 예 (원어민)
.NET 플랫폼 대상 (WinForms/WPF 버전) net8.0-windows Any TFM (net8.0 등)
UseWindowsForms 필요 (WinForms 버전) 아니요
Linux/Docker 배포 Blazor/ASP.NET MVC 버전만
macOS 배포 Blazor/ASP.NET MVC 버전만
Azure Functions(리눅스) Blazor/ASP.NET MVC 버전만
ASP.NET Core 서버 측 ASP.NET Core MVC 버전
독립 실행 NuGet 패키지 Suite 라이선스 패키지
독립형 가격 책정 해당 없음 $749부터 시작하는 영구 라이선스(Lite)
Suite 가격 $1,299/개발자/년 Enterprise; $799/개발자/년 단일 플랫폼 해당 없음
플루언트 생성 API 아니요 (속성 설정자)
BarcodeReader.Read() 아니요
BarcodeWriter.CreateBarcode() 아니요
QRCodeWriter.CreateQrCode() 아니요
지원되는 .NET 버전 .NET 6+ (WinForms/WPF의 경우 Windows) .NET Framework 4.6.2+, .NET Core 3.1+, .NET 5–8
영구 라이선스 옵션 아니오 (구독)

API 매핑 참조

C1BarCode에서 IronBarcode로 마이그레이션하는 팀의 경우, 다음과 같은 직접적인 동등 사항이 적용됩니다.

컴포넌트원 C1바코드 IronBarcode
C1.C1License.Key = "..." IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
new C1BarCode() 정적 — 인스턴스가 필요하지 않음
barcode.CodeType = CodeType.Code128 BarcodeEncoding.Code128 (파라미터로 전달)
barcode.Text = "data" BarcodeWriter.CreateBarcode()의 첫 번째 인수
barcode.BarHeight = 100 바코드 작성기에서 .ResizeTo(width, 100)
barcode.ModuleSize = 2 .ResizeTo()는 픽셀 단위의 크기를 제어합니다
barcode.ForeColor = Color.DarkBlue .ChangeBarCodeColor(Color.DarkBlue)
barcode.BackColor = Color.White .ChangeBackgroundColor(Color.White)
barcode.GetImage() .SaveAsPng() / .ToPngBinaryData()
barcode.QRCodeErrorCorrectionLevel QRCodeWriter.QrErrorCorrectionLevel 열거형
barcode.QRCodeVersion 자동 (또는 버전 매개변수)
읽기 API 없음 BarcodeReader.Read(path)
net8.0-windows 필요 net8.0 (또는 Any 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 Lite)은 구조적으로 다릅니다.

결론

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 코드도 지원됩니다.

Curtis Chau
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해