IRONSOFTWAREHOME
동영상

Spire.Barcode에서 IronBarcode로의 마이그레이션

Curtis Chau
Curtis Chau
Updated: 2026년 8월 1일

Spire.Barcode의 BarcodeScanner.Scan()는 모든 호출에 BarCodeType 인수가 필요합니다. 코드베이스가 다양한 문서 소스, 새로운 공급업체 라벨, 새로운 바코드 형식을 처리해야 할 정도로 커짐에 따라, 이러한 설계 방식은 시간이 지남에 따라 유지 관리 비용을 증가시키는 타입 추측 루프를 생성합니다. 이 가이드는 Spire.Barcode에서IronBarcode로의 전환 과정을 완벽하게 다룹니다. 팀이 이러한 전환을 하는 이유, 전환을 실행하는 구체적인 단계, 그리고 모든 일반적인 작업에 대한 전환 전후의 코드 패턴을 설명합니다.

Spire.Barcode에서 마이그레이션해야 하는 이유

형식 명세 오버헤드: Spire.Barcode에서 BarcodeScanner.Scan()를 호출할 때마다 호출 코드가 제공해야 하는 BarCodeType 열거형 값이 필요합니다. 출처를 알 수 없거나 형식이 혼합된 바코드를 처리하는 애플리케이션은 가능한 유형의 후보 목록을 유지하고 일치하는 유형을 찾을 때까지 해당 목록을 순회해야 합니다. 워크플로에 추가되는 각 형식에 대해 후보 배열을 업데이트하고, 감지 로직을 재테스트하고, 반복 순서로 인해 한 형식이 다른 형식을 가리지 않는지 확인해야 합니다. 이러한 추가 비용은 형식의 다양성에 비례하여 증가합니다.

무료 평가판 제한 사항: FreeSpire.Barcode는 상용 제품에 비해 판독 성능을 의도적으로 저하시키고 사용 가능한 심볼 세트를 제한합니다. FreeSpire.Barcode 평가 중에 수행된 벤치마크 및 포맷 적용 범위 테스트는 상용 Spire.Barcode의 동작을 나타내지 않습니다. 무료 평가판을 사용해 본 후 구매를 결정한 팀은 구매 후 실제 운영 환경에서 제품이 다르게 작동한다는 사실을 알게 될 수 있습니다. 특히 처리량 및 지원되는 심볼 종류와 관련하여 이러한 차이가 나타날 수 있습니다.

PDF 파일에 두 개의 라이브러리가 필요합니다: Spire.Barcode는 PDF 파일에서 바코드를 직접 읽을 수 없습니다. PDF 기반 워크플로우에서는 자체 라이선스를 가진 개별 Spire.PDF 패키지가 필요하며 개발자가 작성한 코드를 사용하여 페이지를 반복하고 각 페이지에서 이미지를 추출한 후 해당 이미지를 바코드 스캐너에 전달해야 합니다. 개념적으로 바코드 판독에 속하는 작업이 두 개의 제품, 두 개의 라이선스 계약, 그리고 상당한 규모의 인프라 코드로 분산되어 있습니다.

반환 형식 복잡성: BarcodeScanner.Scan()string[]를 반환하며, 이 값은 디코드된 값만 포함합니다. 감지된 바코드 형식은 반환 값에 포함되지 않습니다. 예를 들어 QR 코드 값은 한 프로세서로, Code128 값은 다른 프로세서로 전송하는 등 형식별로 결과를 라우팅해야 하는 애플리케이션은 결과를 생성한 반복 단계에서 파생된 별도의 유형 변수를 유지해야 하므로 스캔 자체 외에 추가적인 상태 관리가 필요합니다.

근본적인 문제

형식 추측 루프는 필수 BarCodeType 제약의 가장 눈에 띄는 증상입니다. 여러 소스의 문서를 처리하는 Spire.Barcode 코드베이스에서 다음과 같은 패턴이 반복적으로 나타납니다.

// Spire.Barcode: growing candidate loop with silent misses
BarcodeScanner scanner = new BarcodeScanner();
var candidates = new[] { BarCodeType.Code128, BarCodeType.QRCode, BarCodeType.DataMatrix, BarCodeType.EAN13, BarCodeType.PDF417 };

string foundValue = null;
foreach (var type in candidates)
{
    string[] found = scanner.Scan("barcode.png", type);
    if (found.Length > 0)
    {
        foundValue = found[0];
        break;
    }
}

IronBarcode 루프를 완전히 제거합니다. 형식 감지 기능이 라이브러리에 내장되어 있습니다.

// IronBarcode: single call, all formats, type included in result
var results = BarcodeReader.Read("barcode.png");

foreach (var result in results)
{
    Console.WriteLine($"{result.Format}: {result.Value}");
}

##IronBarcode와 Spire.Barcode의 기능 비교

기능Spire.BarcodeIronBarcode
자동 형식 감지아니요
BarCodeType 매개변수는 필수입니다.아니요
결과의 메타데이터 형식아니요
네이티브 PDF 읽기아니요 (Spire.PDF 파일이 필요합니다)
PDF용 추가 라이브러리Spire.PDF (별도 라이선스)None
무료 요금제 읽기 성능의도적으로 저하됨전속력
무료 티어 워터마크크기가 커서 바코드를 덮습니다.작고, 가장자리만
무료 티어 심볼약 20가지 종류50가지 이상의 종류
무료 등급 등록아니요
생성 API 모델설정 객체 + 생성기유동적인 체인을 갖춘 정적 공장
맞춤 로고가 포함된 QR 코드상업용 등급 전용모든 등급
읽기 결과의 반환 유형string[]BarcodeResults (유형 메타데이터 포함)
기호 개수39세 이상 (상업용)50세 이상
라이선스 모델좌석별 영구 구독갱신 옵션이 있는 영구 계약

빠른 시작

1단계: NuGet 패키지 교체

현재 사용 중인 Spire 패키지를 제거하십시오.

# Remove whichever variant is installed
dotnet remove package FreeSpire.Barcode
# or
dotnet remove package Spire.Barcode

# If Spire.PDF was installed only for barcode extraction, remove it as well
dotnet remove package Spire.PDF
SHELL

바코드 추출 외의 문서 작업에 Spire.PDF가 사용되는 경우, 보존하고 바코드 관련 코드 경로만 제거하십시오.

IronBarcode 설치하세요:

dotnet add package IronBarcode
SHELL

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

모든 Spire 네임스페이스 가져오기를IronBarcode네임스페이스로 대체하십시오:

// Remove:
using Spire.Barcode;
using Spire.Pdf;

// Add:
using IronBarCode;

단계 3: 라이선스 초기화

Spire 라이선스 초기화를 애플리케이션 시작 시 단일IronBarcode속성 할당으로 대체하십시오. 키 형식 및 배포 옵션에 대한 자세한 내용은IronBarcode 라이선스 페이지를 참조하십시오.

// Remove (FreeSpire registration):
Spire.Barcode.BarcodeSettings.ApplyKey("your-free-key");

// Remove (commercial Spire license):
Spire.License.LicenseProvider.SetLicenseKey("your-commercial-key");

// Add (IronBarcode):
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

Docker 및 CI 환경의 경우, 라이선스 키는 환경 변수를 통해 제공할 수 있습니다.

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

코드 마이그레이션 예제

알려진 형식의 바코드 읽기

Spire.Barcode에서 단일 형식 읽기는 유형을 명시적으로 전달하고 string[]를 수신합니다.

Spire.Barcode 접근 방식:

using Spire.Barcode;

BarcodeScanner scanner = new BarcodeScanner();
string[] results = scanner.Scan("shipping-label.png", BarCodeType.Code128);

if (results.Length > 0)
{
    ProcessShipment(results[0]);
}

IronBarcode 접근 방식:

using IronBarCode;

var results = BarcodeReader.Read("shipping-label.png");

if (results.Any())
{
    ProcessShipment(results.First().Value);
}

BarCodeType 매개변수가 제거됩니다. 하위 로직에서 감지된 형식을 확인해야 하는 경우 results.First().Format가 별도의 상태 변수를 요구하지 않고 제공합니다.

혼합 형식 유형 루프 축소

Spire.Barcode 코드베이스가 여러 형식을 포함할 수 있는 문서를 처리할 때, 새로운 형식이 워크플로에 추가됨에 따라 형식 추측 루프가 시간이 지남에 따라 누적됩니다.

Spire.Barcode 접근 방식:

using Spire.Barcode;

BarcodeScanner scanner = new BarcodeScanner();
BarCodeType[] candidates = new[]
{
    BarCodeType.Code128,
    BarCodeType.QRCode,
    BarCodeType.DataMatrix,
    BarCodeType.EAN13,
    BarCodeType.PDF417
};

List<string> allValues = new List<string>();
foreach (BarCodeType type in candidates)
{
    string[] found = scanner.Scan("document-scan.png", type);
    allValues.AddRange(found);
}

IronBarcode 접근 방식:

using IronBarCode;

// The entire loop is replaced by a single call
var results = BarcodeReader.Read("document-scan.png");
List<string> allValues = results.Select(r => r.Value).ToList();

IronBarcode의 이미지 읽기 기능은 50개 이상의 모든 심볼을 한 번에 처리합니다. 대량 배치 처리에 대해서 읽기 속도를 조정해야 할 때, BarcodeReaderOptions가 형식별 분기를 추가하지 않고 해당 제어를 제공합니다:

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true
};
var results = BarcodeReader.Read("document-scan.png", options);

적절한 ReadingSpeed 값을 선택하는 방법에 대한 안내는 읽기 속도 옵션 문서를 참조하십시오.

바코드 생성

Spire.Barcode 생성을 위해서는 BarcodeSettings 개체를 인스턴스화하고, 각각의 속성을 개별적으로 할당하고, 설정을 BarCodeGenerator에 전달한 뒤에 파일 작성 전에 GenerateImage()를 호출해야 합니다.

Spire.Barcode 접근 방식:

using Spire.Barcode;

BarcodeSettings settings = new BarcodeSettings();
settings.Type = BarCodeType.Code128;
settings.Data = "SHIP-9842-XZ";
settings.ShowText = true;
settings.TextMargin = 5;
settings.BarHeight = 60;
settings.Unit = GraphicsUnit.Pixel;

BarCodeGenerator generator = new BarCodeGenerator(settings);
Image barcodeImage = generator.GenerateImage();
barcodeImage.Save("shipping-label.png", ImageFormat.Png);

IronBarcode 접근 방식:

using IronBarCode;

BarcodeWriter.CreateBarcode("SHIP-9842-XZ", BarcodeEncoding.Code128)
    .ResizeTo(400, 100)
    .SaveAsPng("shipping-label.png");

변경 가능한 BarcodeSettings 개체와 개별적인 BarCodeGenerator 인스턴스는 플루언트 체인이 포함된 단일 정적 팩토리 호출로 대체됩니다. 각 CreateBarcode() 호출이 독립적이기 때문에 설정이 동시에 호출되는 동안 실수로 공유될 위험이 없습니다.

PDF 문서에서 바코드 읽기

Spire.Barcode는 PDF 파일을 직접 읽을 수 없습니다. Spire 기반 접근 방식에서는 파일을 열고, 페이지를 반복하고, 각 페이지에서 래스터 이미지를 추출한 다음, 해당 이미지를 바코드 스캐너로 한 번에 전달하기 위해 별도의 Spire.PDF 패키지가 필요합니다.

Spire.Barcode 접근 방식:

using Spire.Pdf;
using Spire.Barcode;

var pdf = new PdfDocument();
pdf.LoadFromFile("invoices.pdf");

var scanner = new BarcodeScanner();
var extractedValues = new List<string>();

foreach (PdfPageBase page in pdf.Pages)
{
    Image[] images = page.ExtractImages();
    foreach (Image image in images)
    {
        string[] found = scanner.Scan(image, BarCodeType.QRCode);
        extractedValues.AddRange(found);
    }
}

IronBarcode 접근 방식:

using IronBarCode;

var results = BarcodeReader.Read("invoices.pdf");

foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Format} = {barcode.Value}");
}

IronBarcode는 PDF 문서를 직접 읽습니다 Spire.PDF 또는 수작업의 페이지 관리가 필요하지 않습니다. 각 바코드가 추출된 페이지 번호는 결과 객체에서 확인할 수 있습니다. PDF 읽기 코드가 대체되면, 프로젝트에서 Spire.PDF 패키지 참조 및 모든 using Spire.Pdf; Import를 제거할 수 있습니다.

Spire.Barcode API와IronBarcode매핑 참조

Spire.BarcodeIronBarcode노트
new BarcodeScanner()BarcodeReader.Read() (정적)스캐너 인스턴스가 필요하지 않습니다.
scanner.Scan(path, BarCodeType.X)BarcodeReader.Read(path)타입 매개변수가 제거되었습니다.
BarCodeType.Code128 (필수)자동 감지됨동등한 자격이 필요하지 않습니다.
BarCodeType.QRCode (필수)자동 감지됨동등한 자격이 필요하지 않습니다.
string[] results from Scan()BarcodeResults 컬렉션.Value를 통해 값에 접근
results[0] (문자열)results[0].Value
결과 형식을 알 수 없습니다.result.Format결과 객체에 포함된 유형
new BarcodeSettings()CreateBarcode()의 매개변수설정 객체가 필요하지 않습니다.
settings.Type = BarCodeType.XBarcodeEncoding.X를 두 번째 매개변수로 사용
settings.Data = "value"CreateBarcode()의 첫 번째 매개변수
new BarCodeGenerator(settings)필요 없음정적 공장이 그것을 대체합니다.
generator.GenerateImage().SaveAsPng() / .SaveAsJpeg()형식별 출력 방법
BarcodeSettings.ApplyKey("key")IronBarCode.License.LicenseKey = "key"시작 시 한 번만 설정됩니다.
Spire.License.LicenseProvider.SetLicenseKey("key")IronBarCode.License.LicenseKey = "key"동일한 단일 라인 교체
Spire.PDF (PDF 읽기 용)필요 없음PDF를 기본적으로 지원합니다.

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

문제 1: BarCodeType 매개변수 제거

Spire.Barcode: scanner.Scan(path, BarCodeType.Code128) — 메서드 서명에 의해 유형 인수가 필요합니다. 해당 부분을 제거하면 컴파일 오류가 발생합니다.

해결책: 전체 호출을 BarcodeReader.Read(path)로 대체하십시오. BarCodeType.를 코드베이스에서 검색하여 모든 발생 위치를 찾으십시오. 형식 추측 루프 (BarCodeType[] 후보 배열을 반복하는 foreach 블록)는 전체를 삭제할 수 있습니다; 단일 BarcodeReader.Read() 호출이 루프를 대체합니다.

문제 2: string[] 반환 유형

Spire.Barcode: Scan()string[]를 반환합니다. 이것을 string[] 변수에 할당하거나 string[]를 기대하는 메서드에 전달하는 하위 코드는 마이그레이션 후 컴파일에 실패합니다.

해결책: BarcodeResults과 함께 작동하도록 호출 위치를 업데이트하십시오. 일반 문자열 배열을 얻으려면 .Select(r => r.Value).ToArray()를 사용하십시오. 첫 번째 결과에 접근하려면 .First()?.Value를 사용하십시오. 하위 로직에서 감지된 형식이 필요하다면, 결과 객체의 .Format를 통해 제공됩니다 - 별도의 상태 변수가 필요하지 않습니다.

// If a plain string array is needed:
string[] texts = BarcodeReader.Read("barcode.png")
    .Select(r => r.Value)
    .ToArray();

// If only the first value is needed:
string first = BarcodeReader.Read("barcode.png").First()?.Value;

이슈 3: Spire.PDF 패키지 정리

Spire.Barcode: PDF 읽기 워크플로우는 페이지 액세스 및 이미지 추출에 Spire.PDF에 의존합니다. 프로젝트는 패키지를 참조하고 using Spire.Pdf; Import와 PdfDocument / PdfPageBase 사용을 여러 파일에 걸쳐 포함하고 있습니다.

해결책: 모든 PDF 바코드 추출 코드를 BarcodeReader.Read("file.pdf")로 대체한 후 패키지를 제거하기 전에 남아있는 Spire.Pdf 참조가 없는지 확인하기 위해 grep 감사(audit)를 실행하십시오.

grep -r "using Spire.Pdf" --include="*.cs" .
grep -r "Spire\.Pdf\|PdfPageBase\|ExtractImages" --include="*.cs" .
SHELL

모든 참조가 삭제된 후에만 패키지를 제거하십시오.

dotnet remove package Spire.PDF
SHELL

이슈 4: 네임스페이스 변경

Spire.Barcode: Spire.Barcode 네임스페이스는 BarcodeScanner, BarcodeSettings, BarCodeGenerator, BarCodeType를 포함합니다. IronBarCode 네임스페이스는 BarcodeReader, BarcodeWriter, BarcodeEncoding, BarcodeReaderOptions를 포함합니다.

해결책: using Spire.Barcode;를 전역적으로 using IronBarCode;로 대체하십시오. 생성에서 사용된 BarCodeType 열거형이 BarcodeEncoding로 대체됩니다. 읽기에 사용된 BarCodeType 열거형은 IronBarcode에 해당하는 것이 없습니다 - 형식 감지가 자동으로 이루어지므로 단순히 제거됩니다.

Spire.Barcode 마이그레이션 체크리스트

이동 전 작업

변경 작업을 수행하기 전에 코드베이스를 검토하여 Spire.Barcode 사용 부분을 모두 확인하십시오.

grep -r "using Spire.Barcode" --include="*.cs" .
grep -r "using Spire.Pdf" --include="*.cs" .
grep -r "BarcodeScanner\|BarcodeSettings\|BarCodeGenerator\|BarCodeType\." --include="*.cs" .
grep -r "ApplyKey\|SetLicenseKey" --include="*.cs" .
grep -r "ExtractImages\|PdfPageBase" --include="*.cs" .
SHELL
  • BarCodeType 후보 배열(제거할 형식 추측 루프)을 포함하는 모든 파일을 문서화하십시오.
  • string[]의 결과를 수신하는 Scan() 변수를 식별하고 유형 업데이트가 필요한지 여부를 확인하십시오.
  • Spire.PDF가 바코드 추출 이외의 작업에 사용되는지 확인하십시오.

코드 업데이트 작업

  1. FreeSpire.Barcode 또는 Spire.Barcode NuGet 패키지를 제거합니다.
  2. 바코드 추출이 유일한 사용이었다면 Spire.PDF NuGet 패키지를 제거하십시오.
  3. IronBarcode NuGet 패키지를 설치하십시오.
  4. 모든 using Spire.Barcode;using IronBarCode;로 대체하십시오.
  5. 더 이상 필요하지 않은 모든 using Spire.Pdf; Import를 제거하십시오.
  6. 라이선스 초기화를 다음으로 대체하십시오: ApplyKey() 또는 SetLicenseKey()IronBarCode.License.LicenseKey = "key"
  7. 모든 new BarcodeScanner() 인스턴스화를 제거합니다.
  8. 모든 scanner.Scan(path, BarCodeType.X) 호출을 BarcodeReader.Read(path)로 대체합니다.
  9. 타입 추측을 사용하는 foreach 루프를 삭제하세요. 각각을 단일 BarcodeReader.Read() 호출로 대체하십시오.
  10. PDF 페이지 반복 및 이미지 추출 블록을 제거합니다. BarcodeReader.Read("file.pdf")로 대체하십시오.
  11. string[] 결과 할당을 .Value 또는 .Select(r => r.Value).ToArray()을 사용하도록 업데이트하십시오.
  12. new BarcodeSettings() 블록을 BarcodeWriter.CreateBarcode(data, encoding) 체인으로 대체하십시오.
  13. new BarCodeGenerator(settings) 인스턴스화를 제거하십시오.
  14. .GenerateImage() + image.Save().SaveAsPng() 또는 .SaveAsJpeg()로 대체하십시오.
  15. 생성에서 BarCodeType.X 열거형 값을 BarcodeEncoding.X로 대체하십시오.

마이그레이션 후 테스트

  • 후보기 루프를 통해 이전에 스캔된 모든 형식을 BarcodeReader.Read()로 정확하게 감지하는지 확인하십시오.
  • 배치 처리량을 측정하고 생산 요구 사항을 충족하는지 확인합니다.
  • PDF 바코드 추출 결과가 올바른 값과 페이지 번호를 생성하는지 확인합니다.
  • 생성된 바코드 출력 품질과 스캔 가능 여부를 물리적 또는 소프트웨어 스캐너로 확인합니다.
  • 모든 배포 환경(로컬, 스테이징, 프로덕션, CI/CD)에서 라이선스 키가 올바르게 로드되었는지 확인하십시오.
  • 마이그레이션 전 작업에서 grep 감사 명령을 실행하여 Spire 참조가 남아 있지 않은지 확인합니다.

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

포맷 유지 관리 오버헤드 제거: 마이그레이션 후에는 유지 관리해야 할 후보 유형 목록이 없으며, 새로운 바코드 포맷이 워크플로에 추가될 때 업데이트해야 할 유형 추측 루프도 없습니다. BarcodeReader.Read()는 전체 심볼 세트를 자동으로 처리하며, 감지된 형식이 하위 라우팅을 위한 각 결과 객체에 포함됩니다.

**구매 전 정확한 평가:**IronBarcode평가판은 정식 라이선스 제품과 동일한 바이너리 파일을 사용하여 전체 읽기 속도와 모든 심볼 세트를 지원합니다. 시험 평가 중에 실시된 성능 벤치마크 및 포맷 커버리지 테스트 결과는 실제 제품에 그대로 적용됩니다. 팀은 평가된 동작이 실제로 배포되는 동작이라는 확신을 가지고 구매 결정을 내릴 수 있습니다.

단일 패키지 PDF 지원: 이미지에 사용된 BarcodeReader.Read() 호출로 PDF 파일의 바코드 추출을 처리합니다. 별도의 라이브러리, 추가 라이선스, 수동 페이지 반복 코드가 필요하지 않습니다. 이전에는 Spire.BarcodeSpire.PDF을 모두 유지하는 팀이 전체 바코드 워크플로를 위한 단일 의존성으로 줄어듭니다.

형식 메타데이터가 있는 결과 객체들: BarcodeResults 컬렉션의 각 항목은 디코딩된 값, 감지된 심볼 기호, PDF 입력의 소스 페이지 번호 및 소스 이미지 내의 경계 영역을 포함합니다. 형식별로 라우팅, 필터링 또는 로깅이 필요한 애플리케이션은 추가적인 상태 관리 없이 결과에서 해당 정보를 사용할 수 있습니다.

단순화된 생성 API: BarcodeWriter.CreateBarcode()의 정적 팩토리 패턴은 변경 가능한 BarcodeSettings 객체와 개별 BarCodeGenerator 인스턴스를 제거합니다. 각 세대 호출은 독립적이므로 동시 작업 간의 구성 중복 위험을 줄입니다.

**향후 호환성:**IronBarCode.NET 런타임 릴리스에 맞춰 정기적으로 업데이트됩니다. 2026년까지 .NET 10 도입이 증가함에 따라 호환성 업데이트를 통해 마이그레이션된 코드베이스가 새로운 .NET 버전이 나올 때마다 라이브러리를 변경할 필요 없이 계속 빌드 및 실행될 수 있도록 보장합니다.

참고해 주세요: Spire는 각 소유자의 등록 상표입니다. 이 사이트는 e-iceblue와 관련이 없으며 승인 또는 후원받지 않습니다. 모든 제품명, 로고 및 브랜드는 해당 소유자의 자산입니다. 비교는 정보 제공 목적으로만 사용되며, 작성 시점에 공개적으로 이용 가능한 정보를 반영합니다.
Curtis Chau
기술 문서 작성자

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

...
더 읽어보기

관련 기사

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.