푸터 콘텐츠로 바로가기
동영상

C#을 사용하여 QR 코드에 로고를 추가하고 사용자 지정하는 방법 | IronBracode

SyncfusionBarcode에서 IronBarcode로의 마이그레이션

이 가이드는 Syncfusion의 바코드 제어 SfBarcode for WinForms 및 WPF, SfBarcodeGenerator for Blazor 및 MAUI에서 IronBarcode로의 완전한 마이그레이션 경로를 제공합니다. 이 문서에서는 팀이 이러한 전환을 하는 구조적 이유, NuGet 패키지 교체 및 라이선스 설정에 대한 단계별 빠른 시작 가이드, 모든 일반적인 시나리오에 대한 전환 전후 코드 예제, 기존 코드베이스를 감사하기 위한 마이그레이션 체크리스트를 다룹니다. 프로젝트에서 다른Syncfusion구성 요소(그리드, 차트, 스케줄러)를 사용하는 경우 해당 패키지 및 등록에는 영향을 미치지 않으며 바코드 관련 코드만 변경됩니다.

Syncfusion바코드에서 마이그레이션해야 하는 이유는 무엇일까요?

읽기 간격: SfBarcodeSfBarcodeGenerator는 읽기 기능이 없는 생성 제어입니다. 양 클래스 모두 .Read() 또는 .Scan() 메서드가 없습니다. 프로젝트에서 업로드된 이미지, 스캔한 문서 또는 PDF 파일에서 바코드를 읽어야 하는 경우,Syncfusion바코드 제어 기능은 해결책을 제공하지 않습니다.Syncfusion문서에서는 팀에게 솔루션으로 바코드 리더 OPX를 권장하는데, 이는 별도로 구매, 라이선스 취득 및 유지 관리가 필요한 상용 제품입니다.

OPX는 무료 소프트웨어 위에 유료 래퍼를 씌운 바코드 리더입니다. OPX는 내부적으로 Apache 2.0 라이선스 하에 배포된 오픈 소스 바코드 판독 라이브러리인 ZXing .NET 을 사용합니다. Apache 2.0은 관대한 라이선스입니다. 어떤 .NET 개발자라도 dotnet add package ZXing.Net로 ZXing.Net을 직접 설치하고 상업용 애플리케이션에서 무료로 사용할 수 있습니다. 완전한Syncfusion읽기 및 생성 워크플로우에는 두 개의 개별Syncfusion제품, 두 개의 라이선스 계약 및 두 개의 API 표면이 필요합니다. 이는 OPX가 래핑하는 무료 라이브러리에서 직접 읽기 기능을 제공받을 수 있었을 것입니다.

커뮤니티 라이선스 조건: 싱크퓨전의 커뮤니티 라이선스를 취득하려면 다음 네 가지 조건을 동시에 그리고 지속적으로 충족해야 합니다. 연간 총매출 100만 달러 미만, 개발자 5명 이하, 총 직원 수 10명 이하, 그리고 총 외부 투자 유치액 300만 달러 미만. 정부 기관은 규모와 관계없이 자격이 없습니다. 이 조건 중 하나라도 충족하지 못하면 즉시 상업용 라이선스 의무가 발생합니다. 일반적으로 시리즈 A 투자 유치 라운드가 완료되면 모금액이 300만 달러를 넘어서게 되며, 이 경우 팀 규모나 수익과 관계없이 라이선스 비용이 발생합니다. 상업적 전환은 $0에서 개발자당 연간 Essential Studio 구독으로 전환됩니다 — 그 구독은 전체 스위트를 포함하며, 바코드 구성 요소만을 대상으로 하지 않습니다. Syncfusion의 게시된 경로는 영업 부서로부터의 맞춤 견적입니다.

버전별 키 순환:Syncfusion라이선스 키는 특정 Essential Studio 버전 범위에 연결되어 있습니다. 24.x 버전에서 25.x 버전으로 업그레이드하려면 계정 포털에서 새 키를 발급받고, 모든 배포 환경의 비밀 저장소에서 해당 키를 업데이트한 다음, 프로덕션 출력물에 평가판 워터마크가 나타나지 않도록 다시 배포해야 합니다. 릴리스 주기가 잦거나 배포 대상이 여러 개인 팀의 경우, 이러한 순환 작업은 바코드 이미지를 생성해야 하는 기본적인 요구 사항에 비해 과도한 운영 부담이 됩니다.

근본적인 문제

Syncfusion의 제어 아키텍처는 프로그램 방식의 파일 생성을 간접적으로 만듭니다. SfBarcode로 바코드 파일을 생성하려면 Bitmap를 미리 할당하고, DrawToBitmap를 호출한 다음 비트맵을 저장해야 합니다. 이는 Windows Forms 런타임을 종속성으로 가진 WinForms 렌더링 패턴입니다:

//SyncfusionSfBarcode: indirect file output through DrawToBitmap
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

var barcode = new SfBarcode();
barcode.Text = "SHIP-2024-001";
barcode.Symbology = BarcodeSymbolType.Code128A;
barcode.Width = 400;
barcode.Height = 150;

using var bitmap = new Bitmap(barcode.Width, barcode.Height);
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle);
bitmap.Save("shipping-label.png", ImageFormat.Png);
// Reading: not possible — requires separate OPX purchase
//SyncfusionSfBarcode: indirect file output through DrawToBitmap
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

var barcode = new SfBarcode();
barcode.Text = "SHIP-2024-001";
barcode.Symbology = BarcodeSymbolType.Code128A;
barcode.Width = 400;
barcode.Height = 150;

using var bitmap = new Bitmap(barcode.Width, barcode.Height);
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle);
bitmap.Save("shipping-label.png", ImageFormat.Png);
// Reading: not possible — requires separate OPX purchase
Imports Syncfusion.Licensing
Imports System.Drawing
Imports System.Drawing.Imaging

' SyncfusionSfBarcode: indirect file output through DrawToBitmap
SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY")

Dim barcode As New SfBarcode()
barcode.Text = "SHIP-2024-001"
barcode.Symbology = BarcodeSymbolType.Code128A
barcode.Width = 400
barcode.Height = 150

Using bitmap As New Bitmap(barcode.Width, barcode.Height)
    barcode.DrawToBitmap(bitmap, barcode.ClientRectangle)
    bitmap.Save("shipping-label.png", ImageFormat.Png)
End Using
' Reading: not possible — requires separate OPX purchase
$vbLabelText   $csharpLabel

IronBarcode 파일을 직접 생성하고 동일한 패키지를 사용하여 읽습니다.

// IronBarcode: direct generation and reading in one package
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

// Generate
BarcodeWriter.CreateBarcode("SHIP-2024-001", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPng("shipping-label.png");

// Read — same package, no additional product required
var results = BarcodeReader.Read("shipping-label.png");
foreach (var result in results)
    Console.WriteLine($"{result.Format}: {result.Value}");
// IronBarcode: direct generation and reading in one package
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

// Generate
BarcodeWriter.CreateBarcode("SHIP-2024-001", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPng("shipping-label.png");

// Read — same package, no additional product required
var results = BarcodeReader.Read("shipping-label.png");
foreach (var result in results)
    Console.WriteLine($"{result.Format}: {result.Value}");
Imports IronBarCode

' IronBarcode: direct generation and reading in one package
License.LicenseKey = "YOUR-LICENSE-KEY"

' Generate
BarcodeWriter.CreateBarcode("SHIP-2024-001", BarcodeEncoding.Code128) _
    .ResizeTo(400, 150) _
    .SaveAsPng("shipping-label.png")

' Read — same package, no additional product required
Dim results = BarcodeReader.Read("shipping-label.png")
For Each result In results
    Console.WriteLine($"{result.Format}: {result.Value}")
Next
$vbLabelText   $csharpLabel

IronBarcode와Syncfusion바코드: 기능 비교

기능 Syncfusion바코드 IronBarcode
바코드 생성 예 — UI 컨트롤(WinForms, WPF, Blazor, MAUI) 예, 정적 API, 모든 환경에서 사용 가능
바코드 판독 아니요, 별도의 바코드 판독기 OPX가 필요합니다. 네, 같은 패키지입니다.
OPX 읽기 제품은 ZXing .NET (Apache 2.0)을 래핑합니다. 해당 없음
PDF 바코드 출력 아니요, Syncfusion.Pdf 파일이 추가로 필요합니다. 예 — SaveAsPdf() 내장
PDF 바코드 읽기 아니요 네, 원어민입니다.
서버 측/헤드리스 생성 WinForms 런타임이 필요(DrawToBitmap) 네이티브 — UI 의존성 없음
Docker/Linux 배포 제한적 전체 지원
ASP.NET Core 최소 API 직접적인 지원은 제공되지 않습니다. 전체 지원
로고가 포함된 QR 코드 아니요 예 — .AddBrandLogo()
읽기 시 자동 형식 감지 해당 없음
커뮤니티/무료 티어 커뮤니티 라이선스(동시 적용되는 4가지 조건) 30일 무료 체험 (워터마크만 포함)
상업용 라이선스 모델 연간 구독 (에센셜 스튜디오) 영구적 (일회성, ironsoftware.com/csharp/barcode/licensing 참조)
라이선스 키 범위 버전별로 다르며 주요 NuGet 업데이트에 따라 변경됩니다. 주요 릴리스 내에서 버전 안정성 유지
플랫폼 등록 단계 3~4단계 (라이선스 등록 + SyncfusionBlazor 추가 + SyncfusionCore 구성 + Razor 가져오기) 한 줄로 모든 플랫폼 이용 가능
1D 포맷 범위 코드 128, 코드 39, EAN, UPC, 코다바 등 Syncfusion모든 형식 Plus PDF417, Aztec, MaxiCode, GS1, USPS IMb 및 50+ 형식을 지원합니다.
2D 포맷 범위 QR 코드, 데이터매트릭스 QR 코드, 데이터매트릭스, PDF417, 마이크로 PDF417, 아즈텍, 맥시코드

빠른 시작

단계 1: NuGet 패키지 교체

using 중인 플랫폼에 대한Syncfusion바코드 패키지를 제거하십시오. 프로젝트가 여러 플랫폼을 대상으로 하는 경우 각 플랫폼에 대해 제거 작업을 실행하십시오.

# Blazor
dotnet remove package Syncfusion.Blazor.BarcodeGenerator

# WinForms
dotnet remove package Syncfusion.SfBarcode.Windows

# WPF
dotnet remove package Syncfusion.SfBarcode.WPF

# MAUI
dotnet remove package Syncfusion.Maui.Barcode
# Blazor
dotnet remove package Syncfusion.Blazor.BarcodeGenerator

# WinForms
dotnet remove package Syncfusion.SfBarcode.Windows

# WPF
dotnet remove package Syncfusion.SfBarcode.WPF

# MAUI
dotnet remove package Syncfusion.Maui.Barcode
SHELL

바코드 패키지를 제거한 후 프로젝트에 다른Syncfusion패키지가 남아 있지 않으면 라이선스 패키지도 제거하십시오.

dotnet remove package Syncfusion.Licensing
dotnet remove package Syncfusion.Licensing
SHELL

IronBarcode 설치하세요. 모든 플랫폼에서 사용 가능한 단일 패키지입니다.

dotnet add package IronBarcode
dotnet add package IronBarcode
SHELL

단계 2: 네임스페이스 업데이트

Syncfusion 바코드 네임스페이스를 제거하고IronBarcode네임스페이스를 추가합니다.

// Remove these (barcode-specific; leave others if non-barcodeSyncfusioncontrols remain)
using Syncfusion.Windows.Forms.Barcode;
using Syncfusion.Licensing;
// @using Syncfusion.Blazor.BarcodeGenerator  (in _Imports.razor)

// Add this
using IronBarCode;
// Remove these (barcode-specific; leave others if non-barcodeSyncfusioncontrols remain)
using Syncfusion.Windows.Forms.Barcode;
using Syncfusion.Licensing;
// @using Syncfusion.Blazor.BarcodeGenerator  (in _Imports.razor)

// Add this
using IronBarCode;
Imports IronBarCode
$vbLabelText   $csharpLabel

단계 3: 라이선스 초기화

애플리케이션 시작 시Syncfusion라이선스 등록 및 플랫폼 구성을 제거합니다. 그런 다음 동일한 시작 위치에IronBarcode라이선스 항목을 하나 추가합니다.

// Remove from Program.cs / App.xaml.cs / MauiProgram.cs:
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");
builder.Services.AddSyncfusionBlazor();         // Blazor only — remove if no otherSyncfusioncontrols
builder.ConfigureSyncfusionCore();              // MAUI only — remove if no otherSyncfusioncontrols

// Add at the same startup point:
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
// Remove from Program.cs / App.xaml.cs / MauiProgram.cs:
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");
builder.Services.AddSyncfusionBlazor();         // Blazor only — remove if no otherSyncfusioncontrols
builder.ConfigureSyncfusionCore();              // MAUI only — remove if no otherSyncfusioncontrols

// Add at the same startup point:
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
' Remove from Program.vb / App.xaml.vb / MauiProgram.vb:
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY")
builder.Services.AddSyncfusionBlazor()         ' Blazor only — remove if no other Syncfusion controls
builder.ConfigureSyncfusionCore()              ' MAUI only — remove if no other Syncfusion controls

' Add at the same startup point:
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

CI/CD 파이프라인 및 Docker 컨테이너의 경우, 키를 환경 변수에 저장하세요.

IronBarCode.License.LicenseKey = Environment.GetEnvironmentVariable("IRONBARCODE_LICENSE");
IronBarCode.License.LicenseKey = Environment.GetEnvironmentVariable("IRONBARCODE_LICENSE");
Imports System

IronBarCode.License.LicenseKey = Environment.GetEnvironmentVariable("IRONBARCODE_LICENSE")
$vbLabelText   $csharpLabel

코드 마이그레이션 예제

WinForms SfBarcode를 BarcodeWriter로 변환

WinForms 마이그레이션은 DrawToBitmap 간접성을 제거하고 이를 직접 파일 출력 체인으로 대체합니다.Syncfusion패턴은 알려진 크기의 Bitmap을 미리 할당해야 합니다;IronBarcode생성 호출의 일부로 치수를 계산합니다.

Syncfusion 접근법:

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

Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

var barcode = new SfBarcode();
barcode.Text = "ORD-20240315-001";
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("order-label.png", ImageFormat.Png);
using Syncfusion.Windows.Forms.Barcode;
using System.Drawing;
using System.Drawing.Imaging;

Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

var barcode = new SfBarcode();
barcode.Text = "ORD-20240315-001";
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("order-label.png", ImageFormat.Png);
Imports Syncfusion.Windows.Forms.Barcode
Imports System.Drawing
Imports System.Drawing.Imaging

Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY")

Dim barcode As New SfBarcode()
barcode.Text = "ORD-20240315-001"
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("order-label.png", ImageFormat.Png)
End Using
$vbLabelText   $csharpLabel

IronBarcode 접근 방식:

using IronBarCode;

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

BarcodeWriter.CreateBarcode("ORD-20240315-001", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .AddBarcodeText()
    .SaveAsPng("order-label.png");
using IronBarCode;

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

BarcodeWriter.CreateBarcode("ORD-20240315-001", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .AddBarcodeText()
    .SaveAsPng("order-label.png");
Imports IronBarCode

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

BarcodeWriter.CreateBarcode("ORD-20240315-001", BarcodeEncoding.Code128) _
    .ResizeTo(400, 150) _
    .AddBarcodeText() _
    .SaveAsPng("order-label.png")
$vbLabelText   $csharpLabel

BarcodeSymbolType.Code128ABarcodeEncoding.Code128에 매핑됩니다. DrawToBitmap + Bitmap.Save 시퀀스는 .SaveAsPng()로 축소됩니다. 바코드를 디스크에 저장하는 대신 WinForms PictureBox 내에 표시해야 한다면, .ToPngBinaryData()를 사용하여 컨트롤에 이미지를 로드하십시오.IronBarcode에서 지원하는 1D 바코드 형식 은Syncfusion컨트롤에서 지원하는 목록을 훨씬 뛰어넘습니다.

Blazor SfBarcodeGenerator를 최소 API 엔드포인트로 변환

Blazor 마이그레이션은 단순히 코드 한 줄씩 교체하는 것이 아니라 구조적인 변화를 의미합니다. SfBarcodeGenerator는 Syncfusion의 JavaScript 레이어를 통해 브라우저에서 렌더링되는 Razor 컴포넌트입니다.IronBarcode에는 Razor 구성 요소가 없습니다. 이것은 서버 측 라이브러리입니다. 대체 패턴은 서버에서 바코드 바이트를 반환하는 최소한의 API 엔드포인트이며, 이는 Razor 페이지에서 이미지 소스로 참조됩니다.

Syncfusion 접근법:

@page "/fulfillment"
@using Syncfusion.Blazor.BarcodeGenerator

<SfBarcodeGenerator
    Width="300px"
    Height="150px"
    Type="BarcodeType.Code128"
    Value="@orderNumber">
    <BarcodeGeneratorDisplayText Visibility="true"></BarcodeGeneratorDisplayText>
</SfBarcodeGenerator>

@code {
    private string orderNumber = "ORD-20240315-001";
}

IronBarcode 접근 방식:

Program.cs에서 생성 엔드포인트를 추가하세요:

using IronBarCode;

app.MapGet("/barcode/{value}", (string value) =>
{
    var bytes = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128)
        .ResizeTo(300, 150)
        .AddBarcodeText()
        .ToPngBinaryData();

    return Results.File(bytes, "image/png");
});
using IronBarCode;

app.MapGet("/barcode/{value}", (string value) =>
{
    var bytes = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128)
        .ResizeTo(300, 150)
        .AddBarcodeText()
        .ToPngBinaryData();

    return Results.File(bytes, "image/png");
});
Imports IronBarCode

app.MapGet("/barcode/{value}", Function(value As String)
    Dim bytes = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128) _
        .ResizeTo(300, 150) _
        .AddBarcodeText() _
        .ToPngBinaryData()

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

Razor 컴포넌트에서 엔드포인트를 참조하세요.

@page "/fulfillment"

<img src="/barcode/@orderNumber" alt="Order barcode: @orderNumber" />

@code {
    private string orderNumber = "ORD-20240315-001";
}

이 엔드포인트는 독립적으로 테스트 가능하고, 모든 HTTP 클라이언트에서 재사용 가능하며, Blazor Server, 호스팅된 API 백엔드를 사용하는 Blazor WebAssembly 및 기타 모든 웹 프런트엔드와 호환됩니다.

QR 코드 생성

Syncfusion QR 구성 요소 또한 서버 측 출력 경로 없이 브라우저에서 렌더링됩니다.IronBarcode서버 측에서 QR 코드를 생성하고 파일을 직접 출력합니다.

Syncfusion 접근법:

@using Syncfusion.Blazor.BarcodeGenerator

<SfQRCodeGenerator
    Width="300px"
    Height="300px"
    Value="https://example.com/product/ABC-123">
    <QRCodeGeneratorDisplayText Visibility="false">
    </QRCodeGeneratorDisplayText>
</SfQRCodeGenerator>

IronBarcode 접근 방식:

using IronBarCode;

// Standard QR code
QRCodeWriter.CreateQrCode("https://example.com/product/ABC-123", 300,
    QRCodeWriter.QrErrorCorrectionLevel.High)
    .SaveAsPng("product-qr.png");

// QR code with embedded brand logo — not available in Syncfusion
QRCodeWriter.CreateQrCode("https://example.com/product/ABC-123", 500,
    QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .AddBrandLogo("company-logo.png")
    .SaveAsPng("product-qr-branded.png");
using IronBarCode;

// Standard QR code
QRCodeWriter.CreateQrCode("https://example.com/product/ABC-123", 300,
    QRCodeWriter.QrErrorCorrectionLevel.High)
    .SaveAsPng("product-qr.png");

// QR code with embedded brand logo — not available in Syncfusion
QRCodeWriter.CreateQrCode("https://example.com/product/ABC-123", 500,
    QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .AddBrandLogo("company-logo.png")
    .SaveAsPng("product-qr-branded.png");
Imports IronBarCode

' Standard QR code
QRCodeWriter.CreateQrCode("https://example.com/product/ABC-123", 300, QRCodeWriter.QrErrorCorrectionLevel.High) _
    .SaveAsPng("product-qr.png")

' QR code with embedded brand logo — not available in Syncfusion
QRCodeWriter.CreateQrCode("https://example.com/product/ABC-123", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest) _
    .AddBrandLogo("company-logo.png") _
    .SaveAsPng("product-qr-branded.png")
$vbLabelText   $csharpLabel

OPX 판독 교체

프로젝트에서 바코드 리더 OPX를 사용했거나 향후 OPX 구매를 통해 판독 요구 사항을 충족하도록 연기한 경우,IronBarcode이미 설치된 패키지로 해당 종속성을 대체합니다. 부가 제품이 없으면 추가 라이선스도 없습니다.

Syncfusion 방식(바코드 리더 OPX):

// Requires separateSyncfusion바코드 Reader OPX purchase
// OPX wraps ZXing.Net internally (Apache 2.0 — free to use directly)
using Syncfusion.BarcodeReader;

var reader = new BarcodeReader();
var results = reader.ReadBarcodes("warehouse-scan.png");
foreach (var result in results)
    Console.WriteLine($"Value: {result.Value}");
// Requires separateSyncfusion바코드 Reader OPX purchase
// OPX wraps ZXing.Net internally (Apache 2.0 — free to use directly)
using Syncfusion.BarcodeReader;

var reader = new BarcodeReader();
var results = reader.ReadBarcodes("warehouse-scan.png");
foreach (var result in results)
    Console.WriteLine($"Value: {result.Value}");
Imports Syncfusion.BarcodeReader

Dim reader As New BarcodeReader()
Dim results = reader.ReadBarcodes("warehouse-scan.png")
For Each result In results
    Console.WriteLine($"Value: {result.Value}")
Next
$vbLabelText   $csharpLabel

IronBarcode 접근 방식:

using IronBarCode;

// Included in the same NuGet package as generation — no second product required
var results = BarcodeReader.Read("warehouse-scan.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
    Console.WriteLine($"Confidence: {result.Confidence}%");
}
using IronBarCode;

// Included in the same NuGet package as generation — no second product required
var results = BarcodeReader.Read("warehouse-scan.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
    Console.WriteLine($"Confidence: {result.Confidence}%");
}
Imports IronBarCode

' Included in the same NuGet package as generation — no second product required
Dim results = BarcodeReader.Read("warehouse-scan.png")
For Each result In results
    Console.WriteLine($"Format: {result.Format}")
    Console.WriteLine($"Value: {result.Value}")
    Console.WriteLine($"Confidence: {result.Confidence}%")
Next
$vbLabelText   $csharpLabel

바코드 판독 관련 문서 에는 업로드 핸들러를 위한 바이트 배열 읽기, 속도와 정확도 조정, 다중 바코드 감지 등이 포함되어 있습니다.

PDF 바코드 생성

Syncfusion 바코드 컨트롤에는 PDF 출력 경로가 없습니다.IronBarcode PDF를 최상위 출력 형식으로 취급합니다.

Syncfusion 접근법:

// 아니요 direct path — requires combining Syncfusion.Barcode.WinForms and Syncfusion.Pdf
// Step 1: Generate to Bitmap via DrawToBitmap
// Step 2: LoadSyncfusionPDF document
// Step 3: Insert bitmap as image element
// Two packages, two APIs, two license obligations
// 아니요 direct path — requires combining Syncfusion.Barcode.WinForms and Syncfusion.Pdf
// Step 1: Generate to Bitmap via DrawToBitmap
// Step 2: LoadSyncfusionPDF document
// Step 3: Insert bitmap as image element
// Two packages, two APIs, two license obligations
' 아니요 direct path — requires combining Syncfusion.Barcode.WinForms and Syncfusion.Pdf
' Step 1: Generate to Bitmap via DrawToBitmap
' Step 2: LoadSyncfusionPDF document
' Step 3: Insert bitmap as image element
' Two packages, two APIs, two license obligations
$vbLabelText   $csharpLabel

IronBarcode 접근 방식:

using IronBarCode;

// Generate directly to PDF — no secondary library required
BarcodeWriter.CreateBarcode("PALLET-2024-0891", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPdf("pallet-label.pdf");

// Read barcodes from an existing PDF
var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
using IronBarCode;

// Generate directly to PDF — no secondary library required
BarcodeWriter.CreateBarcode("PALLET-2024-0891", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPdf("pallet-label.pdf");

// Read barcodes from an existing PDF
var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
Imports IronBarCode

' Generate directly to PDF — no secondary library required
BarcodeWriter.CreateBarcode("PALLET-2024-0891", BarcodeEncoding.Code128) _
    .ResizeTo(400, 150) _
    .SaveAsPdf("pallet-label.pdf")

' Read barcodes from an existing PDF
Dim pdfResults = BarcodeReader.Read("shipping-manifest.pdf")
For Each result In pdfResults
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}")
Next
$vbLabelText   $csharpLabel

바코드 PDF 생성 가이드는 여러 페이지로 구성된 PDF 출력 및 문서 내용과 함께 바코드를 삽입하는 방법을 다룹니다.

Syncfusion바코드 API와IronBarcode매핑 참조

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="..."> API 엔드포인트에서 BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128)
<SfQRCodeGenerator Value="..."> API 엔드포인트에서 QRCodeWriter.CreateQrCode(value, size)
BarcodeType.Code128 (Blazor 열거형) BarcodeEncoding.Code128
바코드 리더 OPX (별도 제품, ZXing .NET 포함) BarcodeReader.Read(path) — 네이티브, 동일한 패키지
제어에 읽기 API가 없습니다. BarcodeReader.Read(path)
제어에서 PDF 출력이 없습니다. .SaveAsPdf(path)
PDF 읽기 불가 BarcodeReader.Read("document.pdf")

일반적인 마이그레이션 문제와 해결책

문제 1: NuGet 업데이트 후 평가판 워터마크 표시

Syncfusion: Essential Studio 24.x에서 25.x로 업그레이드하면 기존 라이선스 키가 무효화됩니다. 비밀 저장소를 업데이트하기 전에 생성된 모든 출력물에는 시험용 워터마크가 표시됩니다. 이는 조용한 오류입니다. 애플리케이션은 계속 실행되지만 규정을 준수하지 않는 출력을 생성합니다.

해결 방법:IronBarcode NuGet 패키지를 업데이트한 후에도 주요 버전 내에서 라이선스 키가 변경되지 않습니다. 마이너 릴리스 또는 패치 릴리스의 경우 비밀 업데이트 또는 재배포가 필요하지 않습니다. 새로운 주요 버전으로 업그레이드할 때는 애플리케이션 진입점에서 제품 키를 한 번만 업데이트하십시오.

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

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

문제 2: 헤드리스 환경에서 DrawToBitmap 함수가 작동하지 않음

Syncfusion: SfBarcode.DrawToBitmap는 Windows Forms 렌더링 파이프라인에 의존합니다. ASP.NET Core 프로세스, Azure Function, 또는 Linux Docker 컨테이너에서는 DrawToBitmap를 호출하면 InvalidOperationException가 발생하거나 Windows Forms 메시지 루프가 없기 때문에 빈 비트맵이 생성됩니다.

솔루션: BarcodeWriter.CreateBarcode()로 대체하십시오.IronBarcode UI 런타임 종속성 없이 관리 코드에서 생성 작업을 수행합니다.

// Works in ASP.NET Core, Azure Functions, Docker on Linux, console apps
var bytes = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .ToPngBinaryData();
// Works in ASP.NET Core, Azure Functions, Docker on Linux, console apps
var bytes = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .ToPngBinaryData();
' Works in ASP.NET Core, Azure Functions, Docker on Linux, console apps
Dim bytes = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128) _
    .ResizeTo(400, 150) _
    .ToPngBinaryData()
$vbLabelText   $csharpLabel

문제 3: SfBarcodeGenerator에 서버 측 출력이 없음

Syncfusion: SfBarcodeGenerator는 서버 측 API 표면이 없는 Razor 컴포넌트입니다. 컨트롤러 액션이나 백그라운드 서비스에서 이를 사용하려고 시도하면 바코드 바이트를 생성하는 데 적합한 메서드를 찾을 수 없습니다.

해결책: 서버 측에서 바코드를 생성하고 HTTP 응답으로 반환하는 최소한의 API 엔드포인트를 만듭니다. Razor 컴포넌트에서 <img src="..."> 태그를 통해 엔드포인트를 참조하십시오:

app.MapGet("/barcode/{value}", (string value) =>
{
    var bytes = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128)
        .ResizeTo(300, 150)
        .ToPngBinaryData();
    return Results.File(bytes, "image/png");
});
app.MapGet("/barcode/{value}", (string value) =>
{
    var bytes = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128)
        .ResizeTo(300, 150)
        .ToPngBinaryData();
    return Results.File(bytes, "image/png");
});
Imports Microsoft.AspNetCore.Builder
Imports Microsoft.AspNetCore.Http

app.MapGet("/barcode/{value}", Function(value As String)
                                   Dim bytes = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128) _
                                       .ResizeTo(300, 150) _
                                       .ToPngBinaryData()
                                   Return Results.File(bytes, "image/png")
                               End Function)
$vbLabelText   $csharpLabel

문제 4: 판독 기능 부재 (OPX 미구매)

Syncfusion: OPX를 아직 구매하지 않아 바코드 판독을 연기한 프로젝트에는 마이그레이션할 판독 코드가 없습니다. 읽기 기능을 처음부터 추가하려면 OPX 구매, 통합 및 새로운 라이선스 계약이 필요합니다.

해결책:IronBarcode판독 기능이 동일 패키지에 포함되어 있습니다. 구매 또는 별도 허가는 필요하지 않습니다. 읽기가 필요한 모든 곳에 BarcodeReader.Read(path)를 추가하십시오:

var results = BarcodeReader.Read("incoming-scan.png");
var results = BarcodeReader.Read("incoming-scan.png");
Dim results = BarcodeReader.Read("incoming-scan.png")
$vbLabelText   $csharpLabel

문제 5: 마이그레이션 중 커뮤니티 라이선스 만료

Syncfusion: 커뮤니티 라이선스를 사용하는 팀이 마이그레이션 기간 동안 자격 요건(예: 자금 조달 라운드 종료)을 충족하는 경우, 마이그레이션이 완료되기 전에Syncfusion제어 기능이 유효한 출력을 생성하지 못할 수 있습니다.

해결책: IronBarcode의 30일 무료 체험판을 이용하면 매출, 인력 또는 자본 조건 없이 모든 기능을 완벽하게 평가할 수 있습니다. 생성된 출력물에 시험판 워터마크가 표시됩니다. 구매한 라이선스 키를 활성화하면 해당 라이선스가 제거됩니다.IronBarcode라이선스 모델에는 조직 규모에 대한 제한이 없습니다.

Syncfusion바코드 마이그레이션 체크리스트

이동 전 작업

코드베이스를 감사하여Syncfusion바코드를 참조하는 모든 파일을 찾으십시오.

grep -r "SyncfusionLicenseProvider.RegisterLicense\|AddSyncfusionBlazor\|ConfigureSyncfusionCore" --include="*.cs" .
grep -r "new SfBarcode\(\)\|SfBarcodeGenerator\|SfQRCodeGenerator" --include="*.cs" --include="*.razor" .
grep -r "BarcodeSymbolType\.\|BarcodeType\." --include="*.cs" --include="*.razor" .
grep -r "DrawToBitmap\|barcode\.Text\s*=" --include="*.cs" .
grep -r "Syncfusion\.Barcode\|Syncfusion\.Blazor\.BarcodeGenerator" --include="*.csproj" .
grep -r "SyncfusionLicenseProvider.RegisterLicense\|AddSyncfusionBlazor\|ConfigureSyncfusionCore" --include="*.cs" .
grep -r "new SfBarcode\(\)\|SfBarcodeGenerator\|SfQRCodeGenerator" --include="*.cs" --include="*.razor" .
grep -r "BarcodeSymbolType\.\|BarcodeType\." --include="*.cs" --include="*.razor" .
grep -r "DrawToBitmap\|barcode\.Text\s*=" --include="*.cs" .
grep -r "Syncfusion\.Barcode\|Syncfusion\.Blazor\.BarcodeGenerator" --include="*.csproj" .
SHELL

마이그레이션 코드를 작성하기 전에 다음 사항을 문서화하십시오.

  • SyncfusionLicenseProvider.RegisterLicense를 호출하는 모든 파일 나열
  • 모든 SfBarcode 인스턴스화 및 속성 할당 나열
  • 모든 <SfBarcodeGenerator><SfQRCodeGenerator> Razor 컴포넌트 사용 나열
  • 모든 DrawToBitmap 호출 및 하위 저장 또는 표시 경로 나열
  • 바코드 리더 OPX가 설치되어 있는지 확인하십시오. 그렇다면 모든 독서 통화 내역을 나열하십시오.

코드 업데이트 작업

  1. 프로젝트의 각 플랫폼에서Syncfusion바코드 NuGet 패키지를 제거합니다.
  2. 다른Syncfusion제어가 남아 있지 않으면 Syncfusion.Licensing NuGet 패키지를 제거하십시오
  3. IronBarcode NuGet 패키지를 설치하십시오
  4. 애플리케이션 진입 지점에서 SyncfusionLicenseProvider.RegisterLicense("KEY")IronBarCode.License.LicenseKey = "KEY"로 대체하세요
  5. 다른Syncfusion제어가 남아 있지 않으면 builder.Services.AddSyncfusionBlazor()를 제거하십시오
  6. 다른Syncfusion제어가 남아 있지 않으면 builder.ConfigureSyncfusionCore()를 제거하십시오
  7. _Imports.razor에서 @using Syncfusion.Blazor@using Syncfusion.Blazor.BarcodeGenerator을 제거하십시오 (적용 가능한 경우)
  8. using Syncfusion.Windows.Forms.Barcodeusing Syncfusion.Licensingusing IronBarCode로 대체하십시오
  9. new SfBarcode() + 속성 할당 + DrawToBitmap 블록을 BarcodeWriter.CreateBarcode(value, BarcodeEncoding.X).ResizeTo(w, h).SaveAsPng(path)로 대체하십시오
  10. BarcodeSymbolType.Code128A (및 동등한 것)을 BarcodeEncoding.Code128로 대체하십시오
  11. BarcodeType.Code128 (Blazor 열거형)을 BarcodeEncoding.Code128로 대체하십시오
  12. <SfBarcodeGenerator> Razor 컴포넌트를 최소한의 API 엔드포인트와 컴포넌트 내의 <img src="..."> 참조로 대체하십시오
  13. <SfQRCodeGenerator> Razor 컴포넌트를 QRCodeWriter.CreateQrCode() 엔드포인트와 <img src="..."> 참조로 대체하십시오
  14. 모든 Barcode Reader OPX 읽기 호출을 BarcodeReader.Read(path)로 대체하십시오
  15. OPX가 구매되지 않아 이전에 읽기 기능이 없었던 모든 곳에 BarcodeReader.Read(path)를 추가하십시오

마이그레이션 후 테스트

  • 하드웨어 스캐너 또는 참조 판독기 애플리케이션을 사용하여 생성된 바코드 이미지가 스캔 가능한지 확인합니다.
  • 라이선스 키 활성화 후 생성된 출력물에 체험판 워터마크가 나타나지 않는지 확인하십시오.
  • 각 바코드 유형에서 BarcodeReader.Read()가 예상된 값과 형식을 반환하는지 확인하십시오
  • 페이지 크기와 바코드 크기가 설계 요구 사항에 맞는지 확인하기 위해 .SaveAsPdf()로 PDF 출력을 테스트하십시오
  • Razor 컴포넌트 내에서 테스트하기 전에 Blazor 최소 API 엔드포인트를 직접(브라우저 또는 HTTP 클라이언트를 통해) 테스트하십시오.
  • Docker 및 Linux 배포 환경의 출력 결과가 Windows 개발 환경과 동일한지 확인합니다.
  • grep 감사를 최종 실행하여 SfBarcode, SfBarcodeGenerator, DrawToBitmap, BarcodeSymbolType, 또는 SyncfusionLicenseProvider에 대한 남은 참조가 없는지 확인하십시오

IronBarcode로 마이그레이션할 때의 주요 이점

통합된 생성 및 읽기: 마이그레이션 후, 생성과 읽기 작업은 하나의 NuGet 패키지를 통해 하나의 라이선스 하에 수행됩니다. 별도로 구매해야 할 제품도 없고, 배워야 할 별도의 API도 없으며, 라이선스 예산을 소모하는 ZXing .NET 래퍼 종속성도 없으므로 해당 예산을 오픈 소스 라이브러리 직접 구매에 사용할 수 있습니다.

버전별 키 순환 제거:IronBarcode라이선스 키는 주요 릴리스 내의 마이너 및 패치 업데이트 전반에 걸쳐 유효합니다. 새로운 키를 얻고, 모든 배포 환경에서 비밀 키를 업데이트하고, 주요 NuGet 버전 업데이트 시마다 평가판 워터마크를 제거하기 위해 재배포하는 데 필요한 운영 오버헤드가 완전히 제거됩니다.

플랫폼 독립적인 배포: 동일한IronBarcode패키지와 생성 API가 WinForms 데스크톱, ASP.NET Core 서비스, Azure Functions, 콘솔 애플리케이션 및 Linux Docker 컨테이너에서 작동합니다. DrawToBitmap에 의해 도입된 Windows Forms 런타임 종속성은 제거되었고, Blazor 배포가 브라우저 렌더링 컴포넌트에서 독립적으로 테스트 가능하고 클라이언트와 무관한 서버 측 API 엔드포인트로 이동되었습니다.

PDF 네이티브 지원: 생성 및 읽기 기능 모두 PDF를 네이티브로 지원합니다. 바코드 PDF를 생성하는 데 더 이상 두 가지Syncfusion제품을 연동할 필요가 없습니다. PDF 형식의 화물 명세서 및 운송 서류에서 바코드를 읽는 데 더 이상 별도의 PDF 추출 단계가 필요하지 않습니다.

예측 가능한 라이선스 경제성: IronBarcode의 영구 라이선스 모델은 매출, 직원 수, 임직원 수 또는 자본금에 대한 최소 기준을 부과하지 않습니다.Syncfusion커뮤니티 라이선스 자격 조건을 초과했거나 초과할 것으로 예상되는 팀은 조직 성장으로 인해 규정 준수 문제가 발생하지 않는 라이선스 모델로 전환합니다.

참고해 주세요Syncfusion과 ZXing.NET은 각각의 소유자의 등록 상표입니다. 이 사이트는Syncfusion또는 ZXing.NET와 관련이 없으며, 그들에 의해 승인되거나 후원되지 않습니다. 모든 제품명, 로고 및 브랜드는 해당 소유자의 자산입니다. 비교는 정보 제공 목적으로만 사용되며, 작성 시점에 공개적으로 이용 가능한 정보를 반영합니다.

자주 묻는 질문

Syncfusion 바코드에서 IronBarcode로 마이그레이션해야 하는 이유는 무엇인가요?

일반적인 이유로는 라이선스 간소화(SDK + 런타임 키 복잡성 제거), 처리량 제한 제거, 네이티브 PDF 지원 확보, Docker/CI/CD 배포 개선, 프로덕션 코드의 API 상용구 감소 등이 있습니다.

Syncfusion API 호출을 IronBarcode로 대체하려면 어떻게 해야 하나요?

인스턴스 생성 및 라이선스 상용구를 IronBarCode.License.LicenseKey = "key"로 대체합니다. 판독기 호출을 BarcodeReader.Read(경로)로, 쓰기 호출을 BarcodeWriter.CreateBarcode(데이터, 인코딩)로 바꿉니다. 정적 메서드는 인스턴스 관리가 필요하지 않습니다.

싱크퓨전 바코드에서 IronBarcode로 마이그레이션할 때 얼마나 많은 코드가 변경되나요?

대부분의 마이그레이션은 더 적은 코드 줄로 이루어집니다. 라이선스 상용구, 인스턴스 생성자, 명시적 형식 구성이 제거됩니다. 핵심 읽기/쓰기 작업이 더 간결한 결과 객체를 가진 더 짧은 IronBarcode에 매핑됩니다.

마이그레이션하는 동안 Syncfusion 바코드와 IronBarcode를 모두 설치해야 하나요?

아니요. 대부분의 마이그레이션은 병렬 작업이 아닌 직접 교체 작업입니다. 한 번에 하나의 서비스 클래스를 마이그레이션하고, NuGet 참조를 교체하고, 인스턴스화 및 API 호출 패턴을 업데이트한 후 다음 클래스로 이동합니다.

IronBarcode의 NuGet 패키지 이름은 무엇인가요?

패키지는 'IronBarCode'(대문자 B와 C 포함)입니다. '설치-패키지 IronBarCode' 또는 '닷넷 추가 패키지 IronBarCode'로 설치합니다. 코드의 사용 지시어는 'using IronBarCode;'입니다.

IronBarcode는 Syncfusion 바코드와 비교하여 어떻게 Docker 배포를 간소화하나요?

IronBarcode는 외부 SDK 파일이나 마운트된 라이선스 구성이 없는 NuGet 패키지입니다. Docker에서 IRONBARCODE_LICENSE_KEY 환경 변수를 설정하면 패키지가 시작 시 라이선스 유효성 검사를 처리합니다.

Syncfusion에서 마이그레이션한 후 IronBarcode가 모든 바코드 형식을 자동으로 감지하나요?

예. IronBarcode는 지원되는 모든 형식에서 기호를 자동으로 감지합니다. 명시적인 바코드 유형 열거가 필요하지 않습니다. 형식이 이미 알려져 있고 성능이 중요한 경우 BarcodeReaderOptions를 사용하여 검색 공간을 최적화하여 제한할 수 있습니다.

IronBarcode는 별도의 라이브러리 없이 PDF에서 바코드를 판독할 수 있나요?

예. BarcodeReader.Read("document.pdf")는 기본적으로 PDF 파일을 처리합니다. 결과에는 발견된 각 바코드에 대한 페이지 번호, 형식, 값 및 신뢰도가 포함됩니다. 외부 PDF 렌더링 단계가 필요하지 않습니다.

IronBarcode는 병렬 바코드 처리를 어떻게 처리하나요?

IronBarcode의 정적 메서드는 상태 저장소가 없고 스레드에 안전합니다. 스레드별 인스턴스 관리 없이 파일 목록에 직접 Parallel.ForEach를 사용할 수 있습니다. BarcodeReaderOptions.MaxParallelThreads는 내부 스레드 예산을 제어합니다.

Syncfusion 바코드에서 IronBarcode로 마이그레이션하면 어떤 결과 속성이 변경되나요?

일반적인 이름 변경: 바코드 값은 값으로, 바코드 유형은 형식으로 바뀝니다. IronBarcode 결과에는 신뢰도 및 페이지 번호도 추가됩니다. 솔루션 전반의 검색 및 바꾸기 기능은 기존 결과 처리 코드에서 이름 변경을 처리합니다.

CI/CD 파이프라인에서 IronBarcode 라이선싱을 설정하려면 어떻게 해야 하나요?

IRONBARCODE_LICENSE_KEY를 파이프라인 시크릿으로 저장하고 애플리케이션 시작 코드에 IronBarCode.License.LicenseKey를 할당하세요. 하나의 비밀은 개발, 테스트, 스테이징 및 프로덕션을 포함한 모든 환경에 적용됩니다.

IronBarcode는 사용자 지정 스타일로 QR 코드 생성을 지원하나요?

예. QRCodeWriter.CreateQrCode()는 변경바코드색()을 통한 사용자 지정 색상, 추가브랜드 로고()를 통한 로고 임베딩, 구성 가능한 오류 수정 수준, PNG, JPG, PDF, 스트림을 포함한 여러 출력 형식을 지원합니다.

Curtis Chau
기술 문서 작성자

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

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

아이언 서포트 팀

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