C#에서 데이터를 이용해 바코드를 생성하는 방법

C#에서 텍스트, URL, ID 및 이진 데이터로부터 바코드 생성

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode는 C# 개발자가 문자열, 바이트 배열, 메모리 스트림을 포함한 다양한 데이터 소스에서 바코드를 생성할 수 있도록 하며, QR 코드, Code128, PDF417과 같은 여러 바코드 형식을 지원하는 BarcodeWriter.CreateBarcode() 메서드를 사용합니다.

빠른 시작: 한 줄의 코드로 문자열에서 바코드 생성

IronBarcode의 API를 사용하여 간단한 설정으로 바코드를 생성할 수 있습니다. 이 예제는 단순한 문자열로부터 코드 한 줄로 바코드를 생성하는 방법을 보여줍니다. 포괄적인 예제를 원하신다면 Barcode Quickstart 가이드를 확인하세요.

  1. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/BarCode 설치하기

    PM > Install-Package BarCode
  2. 다음 코드 조각을 복사하여 실행하세요.

    var barcode = IronBarCode.BarcodeWriter.CreateBarcode("Order123", IronBarCode.BarcodeWriterEncoding.Code128);
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronBarcode 사용 시작하기

    arrow pointer


문자열로부터 바코드를 생성하는 방법은?

어떤 바코드 형식이 다른 문자열 유형에 가장 적합한가요?

다양한 바코드 형식은 특정 데이터 유형과 용도에 최적화되어 있습니다. 지원되는 바코드 형식을 이해하여 적절한 인코딩을 선택하세요: 지원되는 바코드 형식 이해

  • QR 코드: URL, 이메일 주소, 대용량 텍스트 데이터에 가장 적합합니다. 오류 수정과 함께 최대 4,296개의 영숫자 문자를 지원합니다.
  • Code128: 주문 번호 및 일련 번호와 같은 영숫자 데이터에 이상적입니다. 현대 애플리케이션에 대해 매우 효율적입니다.
  • PDF417: 항공권 및 정부 ID와 같은 복잡한 데이터에 적합합니다. 최대 1,850개의 영숫자 문자를 저장합니다.
  • Code93: 우편 서비스 및 인벤토리 추적과 같은 간단한 숫자 데이터에 우수합니다.
  • Aztec: 모바일 티켓팅 및 교통 수단에 최적이며, QR 코드보다 적은 공간을 필요로 합니다.

다음 코드는 문자열로 바코드를 작성하는 방법을 보여줍니다:

:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-string.cs
using IronBarCode;

string text = "Hello, World!";
string url = "https://ironsoftware.com/csharp/barcode/";
string receiptID = "2023-08-04-12345"; // Receipt ID (numeric id)
string flightID = "FLT2023NYC-LAX123456"; // Flight ID (alphanumeric id)
string number = "1234";

BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png");
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png");
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png");
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png");
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png");
$vbLabelText   $csharpLabel

생성된 바코드 결과는 무엇인가요?

이 코드는 다섯 가지 데이터 예제를 다섯 가지 바코드 유형으로 인코딩합니다: 간단한 텍스트를 Aztec으로, URL을 QR 코드로, 숫자 ID를 Code 93으로, 영숫자 ID를 PDF417로, 숫자를 Codabar로. 이미지는 PNG로 저장됩니다. 고급 내보내기 옵션은 이미지로 바코드 생성 가이드를 참조하세요.

Aztec barcode containing 'Hello, World!' text with characteristic square spiral pattern
QR code generated from URL input demonstrating barcode creation functionality
Generated Code93 barcode example showing vertical black and white bars pattern
PDF417 barcode with stacked rows encoding flight ID alphanumeric data
Codabar barcode displaying numeric data with start/stop characters

생성된 바코드를 어떻게 커스터마이즈할 수 있나요?

바코드를 생성한 후, IronBarcode의 스타일링 기능을 사용하여 외관을 개선하세요. 다음은 색상, 주석 및 여백을 가진 맞춤형 바코드를 생성하는 방법입니다:

using IronBarCode;

// Create a barcode with custom styling
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128);

// Apply custom styling
myBarcode.ResizeTo(300, 100);
myBarcode.SetMargins(10);
myBarcode.ChangeBarCodeColor(Color.DarkBlue);

// Add text annotations
myBarcode.AddBarcodeValue텍스트BelowBarcode();
myBarcode.AddAnnotation텍스트AboveBarcode("Product SKU", Font.Arial, Color.Black, 12);

// Save the customized barcode
myBarcode.SaveAsPng("customized-barcode.png");
using IronBarCode;

// Create a barcode with custom styling
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128);

// Apply custom styling
myBarcode.ResizeTo(300, 100);
myBarcode.SetMargins(10);
myBarcode.ChangeBarCodeColor(Color.DarkBlue);

// Add text annotations
myBarcode.AddBarcodeValue텍스트BelowBarcode();
myBarcode.AddAnnotation텍스트AboveBarcode("Product SKU", Font.Arial, Color.Black, 12);

// Save the customized barcode
myBarcode.SaveAsPng("customized-barcode.png");
$vbLabelText   $csharpLabel

바코드 스타일 커스터마이즈 튜토리얼에서 더 많은 스타일링 옵션을 탐색하세요.

바이트 배열에서 바코드를 어떻게 생성하나요?

바이트 배열 바코드에 왜 문자 인코딩이 중요한가요?

바이트 배열로부터 바코드를 생성하려면, 각 바코드 유형이 서로 다른 문자 인코딩을 허용하므로 필요한 BarcodeEncoding와 문자 인코딩이 일치해야 합니다. 출력 데이터 형식을 이해하면 호환성을 보장합니다. IronBarcode에서 사용할 수 있는 문자 인코딩은 다음과 같습니다:

  • ASCII: 영어 문자, 숫자 및 구두점을 위해 문자당 7비트를 사용합니다. 예: 'A' = 65.
  • UTF-8: 모든 유니코드 문자를 위한 가변 길이 인코딩입니다. 예: € = 0xE2 0x82 0xAC.
  • UTF-16: 유니코드를 위한 16비트 시퀀스를 사용합니다. 예: α = 0x03B1.
  • UTF-32: 문자당 고정된 32비트 시퀀스입니다. 예: α = 0x000003B1.
  • ISO-8859-1: 서유럽어를 위한 ASCII 확장입니다. 예: é = 233.

[{i:IronBarcode의 기본 문자 인코딩은 ISO-8859-1입니다.}]

바이트 배열을 바코드로 어떻게 변환하나요?

다음 코드는 바이트 데이터에서 바코드를 생성하는 방법을 보여줍니다:

:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-byte.cs
using IronBarCode;
using System.Text;

byte[] text = Encoding.UTF8.GetBytes("Hello, World!");
byte[] url = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");
byte[] receiptID = Encoding.UTF8.GetBytes("2023-08-04-12345"); // Receipt ID (numeric id)
byte[] flightID = Encoding.UTF8.GetBytes("FLT2023NYC-LAX123456"); // Flight id (alphanumeric id)
byte[] number = Encoding.UTF8.GetBytes("1234");

BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png");
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png");
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png");
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png");
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png");
$vbLabelText   $csharpLabel

이 코드 스니펫은 다섯 개의 문자열 입력을 System.Byte[] 객체로 변환합니다. 이 바이트 배열을 바코드로 변환하려면, 원하는 BarcodeEncoding와 함께 BarcodeWriter에 전달하십시오. 선택적으로 바코드 크기를 위해 MaxWidthMaxHeight를 설정하십시오.

바이너리 데이터 및 특수 문자 작업

바이너리 데이터 또는 특수 문자를 사용할 때는 국제 문자 지원을 위해 유니코드 바코드 작성을 사용하세요. 여기 바이너리 데이터를 처리하는 예가 있습니다:

using IronBarCode;
using System.텍스트;
using System.IO;

// Example: Encoding binary data (like a small file) into QR Code
byte[] binaryData = File.ReadAllBytes("document.pdf");
string base64Data = Convert.ToBase64String(binaryData);

// Create QR code with high error correction for binary data
GeneratedBarcode binaryBarcode = BarcodeWriter.CreateBarcode(
    base64Data, 
    BarcodeEncoding.QRCode
);

// Set high error correction for data integrity
binaryBarcode.SetQRCodeErrorCorrection(QRCodeErrorCorrection.High);

// Save with appropriate size for data density
binaryBarcode.ResizeTo(500, 500);
binaryBarcode.SaveAsPng("binary-data-qr.png");
using IronBarCode;
using System.텍스트;
using System.IO;

// Example: Encoding binary data (like a small file) into QR Code
byte[] binaryData = File.ReadAllBytes("document.pdf");
string base64Data = Convert.ToBase64String(binaryData);

// Create QR code with high error correction for binary data
GeneratedBarcode binaryBarcode = BarcodeWriter.CreateBarcode(
    base64Data, 
    BarcodeEncoding.QRCode
);

// Set high error correction for data integrity
binaryBarcode.SetQRCodeErrorCorrection(QRCodeErrorCorrection.High);

// Save with appropriate size for data density
binaryBarcode.ResizeTo(500, 500);
binaryBarcode.SaveAsPng("binary-data-qr.png");
$vbLabelText   $csharpLabel

메모리 스트림에서 바코드를 어떻게 생성하나요?

바코드 생성에 메모리 스트림을 언제 사용해야 하나요?

디스크 저장이 필요하지 않은 데이터를 처리할 때, 예를 들어 웹 애플리케이션에서 동적으로 생성되는 콘텐츠나 데이터베이스 처리에서 메모리 스트림이 가장 효과적입니다. 스트림으로 바코드 내보내기 가이드는 스트림 기반 워크플로에 대한 추가 컨텍스트를 제공합니다.

다음 코드는 메모리 스트림에서 바코드를 생성하는 방법을 보여줍니다:

:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-stream.cs
using IronBarCode;
using System.IO;
using System.Text;

MemoryStream text = new MemoryStream(Encoding.UTF8.GetBytes("Hello, World!"));
MemoryStream url = new MemoryStream(Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/"));
MemoryStream receiptID = new MemoryStream(Encoding.UTF8.GetBytes("2023-08-04-12345")); // Receipt ID (numeric id)
MemoryStream flightID = new MemoryStream(Encoding.UTF8.GetBytes("FLT2023NYC-LAX123456")); // Flight id (alphanumeric id)
MemoryStream number = new MemoryStream(Encoding.UTF8.GetBytes("1234"));

BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png");
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png");
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png");
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png");
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png");
$vbLabelText   $csharpLabel

메모리 스트림을 사용하면 어떤 장점이 있나요?

이 코드 스니펫은 System.Byte[] 객체로부터 MemoryStream를 생성한 다음, 이를 BarcodeWriter.CreateBarcode()의 입력으로 사용하여 메모리 스트림 데이터에서 바코드를 생성합니다. 메모리 스트림은 여러 가지 장점이 있습니다:

  1. 성능: 디스크 I/O 연산이 없고, 임시 데이터에 대해 더 빠릅니다.
  2. 보안: 데이터가 메모리에 남아 민감한 정보 노출을 줄입니다.
  3. 유연성: 스트림 기반 API 및 라이브러리와의 쉬운 통합.
  4. 리소스 효율성: 자동 메모리 관리 및 처분.

고급 스트림 처리 예제

스트림 처리를 포함하는 복잡한 시나리오에서는 IronBarcode를 다른 스트리밍 작업과 결합하세요.

using IronBarCode;
using System.IO;
using System.텍스트;

// Example: Processing multiple barcodes in a batch using streams
public static List<Stream> GenerateBarcodeStreams(List<string> dataItems)
{
    var barcodeStreams = new List<Stream>();

    foreach (var item in dataItems)
    {
        // Convert string to stream
        var dataStream = new MemoryStream(Encoding.UTF8.GetBytes(item));

        // Generate barcode from stream
        var barcode = BarcodeWriter.CreateBarcode(dataStream, BarcodeEncoding.Code128);

        // Export barcode back to stream
        var outputStream = new MemoryStream();
        barcode.SaveAsPng(outputStream);
        outputStream.Position = 0; // Reset position for reading

        barcodeStreams.Add(outputStream);
    }

    return barcodeStreams;
}

// Usage example
var order번호s = new List<string> { "ORD-001", "ORD-002", "ORD-003" };
var barcodes = GenerateBarcodeStreams(order번호s);
using IronBarCode;
using System.IO;
using System.텍스트;

// Example: Processing multiple barcodes in a batch using streams
public static List<Stream> GenerateBarcodeStreams(List<string> dataItems)
{
    var barcodeStreams = new List<Stream>();

    foreach (var item in dataItems)
    {
        // Convert string to stream
        var dataStream = new MemoryStream(Encoding.UTF8.GetBytes(item));

        // Generate barcode from stream
        var barcode = BarcodeWriter.CreateBarcode(dataStream, BarcodeEncoding.Code128);

        // Export barcode back to stream
        var outputStream = new MemoryStream();
        barcode.SaveAsPng(outputStream);
        outputStream.Position = 0; // Reset position for reading

        barcodeStreams.Add(outputStream);
    }

    return barcodeStreams;
}

// Usage example
var order번호s = new List<string> { "ORD-001", "ORD-002", "ORD-003" };
var barcodes = GenerateBarcodeStreams(order번호s);
$vbLabelText   $csharpLabel

비동기 연산 및 개선된 성능을 위해 멀티 스레드 애플리케이션에서 비동기 및 멀티스레드를 사용하는 방법을 참조하세요.

자주 묻는 질문

C#에서 텍스트로 바코드를 생성하는 방법은 무엇인가요?

IronBarcode를 사용하면 C#에서 단 한 줄의 코드로 텍스트에서 바코드를 생성할 수 있습니다. BarcodeWriter.CreateBarcode("YourText", BarcodeWriterEncoding.Code128). IronBarcode는 QR 코드, Code128, PDF417, Aztec 등 다양한 형식을 지원합니다.

바코드에 어떤 유형의 데이터를 인코딩할 수 있나요?

IronBarcode는 문자열, URL, ID, 바이너리 데이터(바이트 배열) 및 메모리 스트림을 포함한 다양한 데이터 유형을 인코딩할 수 있도록 지원합니다. 이 라이브러리는 사용자가 선택한 바코드 형식에 따라 변환 및 인코딩을 자동으로 처리합니다.

URL에 어떤 바코드 형식을 사용해야 할까요?

IronBarcode에서 URL을 인코딩하는 데에는 QR 코드가 최적의 선택입니다. QR 코드는 최대 4,296자의 영숫자를 저장할 수 있으며 오류 수정 기능도 갖추고 있어 웹 주소 및 이메일 주소에 이상적입니다.

주문 번호와 일련 번호에 가장 적합한 바코드 형식은 무엇입니까?

IronBarcode를 사용할 때 Code128은 주문 번호 및 일련 번호와 같은 영숫자 데이터에 이상적인 형식입니다. 최신 애플리케이션에 매우 효율적이며 다양한 문자 집합에 대해 탁월한 데이터 밀도를 제공합니다.

이진 데이터로 바코드를 생성할 수 있나요?

예, IronBarcode는 CreateBarcode 메서드를 통해 System.Byte[] 배열 또는 System.IO.Stream 입력을 사용하여 이진 데이터로부터 바코드를 생성하는 것을 지원하므로 모든 유형의 이진 정보를 인코딩할 수 있습니다.

바코드를 저장할 수 있는 이미지 형식은 무엇인가요?

IronBarcode를 사용하면 생성된 바코드를 PNG, JPEG, BMP, GIF, TIFF 등 다양한 이미지 형식으로 저장할 수 있습니다. 이 라이브러리는 다양한 사용 사례에 맞춰 유연한 내보내기 옵션을 제공합니다.

PDF417 바코드에 얼마나 많은 데이터를 저장할 수 있나요?

IronBarcode로 생성된 PDF417 바코드는 최대 1,850자의 영숫자를 저장할 수 있어 항공권, 배송 라벨, 정부 발행 신분증과 같은 복잡한 데이터에 적합합니다.

모바일 티켓팅에 가장 적합한 바코드 형식은 무엇일까요?

IronBarcode를 사용할 경우, 아즈텍 바코드는 모바일 티켓팅 및 교통 애플리케이션에 최적입니다. QR 코드보다 공간을 적게 차지하면서도 높은 데이터 용량과 모바일 기기에서의 뛰어난 가독성을 유지합니다.

하릴 하시미 빈 오마르
소프트웨어 엔지니어
모든 훌륭한 엔지니어처럼, 하이릴은 열정적인 학습자입니다. 그는 C#, Python, Java에 대한 지식을 갈고닦아 Iron Software의 팀원들에게 가치를 더하고 있습니다. 하이릴은 말레이시아의 Universiti Teknologi MARA에서 화학 및 공정 공학 학사 학위를 취득한 후 Iron Software 팀에 합류했습니다.
시작할 준비 되셨나요?
Nuget 다운로드 2,108,094 | 버전: 2026.3 방금 출시되었습니다
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package BarCode
샘플을 실행하세요 실이 바코드로 변하는 모습을 지켜보세요.