IRONSOFTWAREHOME
VIDEOLAR

Spire.Barcode'dan IronBarcode'a Geçiş

Curtis Chau
Curtis Chau
Updated: 1 Ağustos 2026

Spire.Barcode'un BarcodeScanner.Scan() her çağrısında bir BarCodeType argümanı gerektirir. Bir kod tabanı, çeşitli belge kaynaklarını, yeni tedarikçi etiketlerini ve yeni barkod formatlarını ele almak için büyüdükçe, bu tasarım, zamanla bakım maliyeti biriktiren tür tahmin döngüleri üretir. Bu kılavuz, Spire.Barcode'dan IronBarcode'a tüm yolu kapsar: ekiplerin bu geçişi neden yaptığı, gerçekleştirmek için mekanik adımlar ve her ortak işlem için öncesi ve sonrası kod modelleri.

Spire.Barcode'dan Neden Geçilmeli

Format Belirleme Ek Yükü: Spire.Barcode'daki her BarcodeScanner.Scan() çağrısı, çağıran kodun sağlaması gereken bir BarCodeType numaralandırma değeri gerektirir. Bilinmeyen veya karışık format kaynaklarından barkod işleyen uygulamalar, olası türlerin bir aday listesini koruması ve bir eşleşme bulunana kadar onu tekrarlaması gerekir. İş akışına eklenen her format, aday dizini güncellemeyi, algılama mantığını yeniden test etmeyi ve yineleme sırasının bir formatın diğerini gölgelememesine neden olmadığını kontrol etmeyi gerektirir. Bu aşinalık, format çeşitliliği ile orantılı olarak büyür.

Ücretsiz Katman Değerlendirme Kısıtlamaları: FreeSpire.Barcode, okuma performansını kasıtlı olarak düşürür ve ticari ürünle karşılaştırıldığında kullanılabilir semboloji setini sınırlar. FreeSpire.Barcode değerlendirmesi sırasında yapılan karşılaştırmalar ve format kapsamı testleri ticari Spire.Barcode'un davranışını temsil etmez. Ücretsiz katman değerlendirmesine dayalı bir satın alma taahhüdünde bulunan ekipler, satın alma sonrası, ürünün üretimde farklı davrandığını keşfedebilirler — özellikle throughput ve desteklenen sembolojiler etrafında.

PDF İki Kütüphane Gerektiriyor: Spire.Barcode, PDF dosyalarından doğrudan barkod okuyamaz. PDF tabanlı iş akışları, kendi lisansına sahip ayrı bir Spire.PDF paketi gerektirir, ayrıca sayfalarda gezinmek, her sayfadan resim çıkarmak ve bu resimleri barkod tarayıcıya beslemek için geliştirici yazımı kod gereklidir. Konsept olarak barkod okumaya ait olan bir görev, iki ürün, iki lisans anlaşması ve önemli altyapı koduna bölünmüştür.

Dönüş Tipi Karmaşıklığı: BarcodeScanner.Scan(), sadece kodlanmış değerleri içeren string[] döndürür. Algılanan barkod formatı dönüşte dahil edilmemiştir. Sonuçları formata göre yönlendirmesi gereken uygulamalar — örneğin, QR kod değerlerini bir işlemciye ve Code128 değerlerini diğerine göndermek —, sonucu üreten bir yineleme adımından türetilen ayrı bir tür değişkeni tutması gerekecektir, bu ise taramanın ötesinde ek durum yönetimi gerektirir.

Temel Sorun

Tip-tahmin döngüsü, zorunlu BarCodeType kısıtlamasının en belirgin belirtisidir. Çoklu kaynaklardan dokümanları işleyen bir Spire.Barcode kod tabanında, bu desen tekrarlanır:

// 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 döngüyü tamamen ortadan kaldırır. Format algılama kütüphaneye dahil edilmiştir:

// 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 vs Spire.Barcode: Özellik Karşılaştırması

ÖzellikSpire.BarcodeIronBarcode
Otomatik format algılamaHayırEvet
BarCodeType parametresi gereklidirEvetHayır
Sonuçta format meta verisiHayırEvet
Yerel PDF okumaHayır (Spire.PDF gerektirir)Evet
PDF için ek kütüphaneAyrı lisans (Spire.PDF)None
Ücretsiz katman okuma performansıKasıtlı olarak düşürülmüşTam hız
Ücretsiz katman filigranlarıBüyük, barkodu kaplarKüçük, sadece kenar
Ücretsiz katman semolojileri~20 tür50+ tür
Ücretsiz katman için kayıt gereklidirEvetHayır
Üretim API modeliAyar nesnesi + üreticiAkıcı zincir ile statik fabrika
Özel logolu QR koduYalnızca ticari seviyeTüm seviyeler
Okuma dönüş tipistring[]BarcodeResults (tip meta verisi ile)
Semboloji sayısı39+ (ticari)50+
Lisans modeliKoltuk başına süresiz + abonelikOpsiyonel yenilemeyle süresiz

Hızlı Başlangıç

Adım 1: NuGet Paketini Değiştirin

Mevcut Spire paketini veya kullanılan paketleri kaldırın:

# 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

Barkod çıkarımı dışında başka doküman işlemleri için Spire.PDF kullanılıyorsa, bu koruyun ve sadece barkodla ilgili kod yollarını kaldırın.

IronBarcode'u kurun:

dotnet add package IronBarcode
SHELL

Adım 2: Ad Alanlarını Güncelleyin

Tüm Spire ad alanı ithalatlarınıIronBarcode ad alanı ile değiştirin:

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

// Add:
using IronBarCode;

Adım 3: Lisansa İzin Verin

Spire lisans başlatmasını uygulama başlatma noktasında tek bir IronBarcode özelliği atama ile değiştirin. Lisans anahtar biçimleri ve dağıtım seçenekleri için IronBarcode lisanslama sayfasını görün:

// 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 ve CI ortamları için, lisans anahtarı bir ortam değişkeninden sağlanabilir:

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

Kod Göç Örnekleri

Bilinen Bir Format Barkodunu Okuma

Spire.Barcode'da tek bir format okuma, tipi açıkça belirleyerek geçer ve bir string[] alır.

Spire.Barcode Yaklaşımı:

using Spire.Barcode;

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

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

IronBarcode Yaklaşımı:

using IronBarCode;

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

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

BarCodeType parametresi kaldırılır. Eğer alt akış mantığı tespit edilen formatı doğrulamalıysa, results.First().Format bunu ayrı bir durum değişkenine ihtiyaç duymadan sağlar.

Karışık Format Tür Döngüsünü Çökertme

Bir Spire.Barcode kod tabanı belge işleri, meşrutiyet kullanırken ilk ıslandığında, tür tahmini döngüsü, iş akışına yeni formatlar girerken zamanla birikir.

Spire.Barcode Yaklaşımı:

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 Yaklaşımı:

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'un görüntü okuması, tek bir geçişte tüm50+semolojiyi ele alır. Yüksek hacimli toplu işleme ayarlamak için okuma hızının ayarlanması gerektiğinde, BarcodeReaderOptions format özel dallar eklemeden kontrol sağlar:

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

Uygun ReadingSpeed değerini seçmek için rehberlik almak adına okuma hızı seçenekleri belgelerine bakınız.

Barkod Oluşturma

Spire.Barcode üretimi, bir BarcodeSettings nesnesinin örneklendirilmesini, her bir özelliğin ayrı ayrı atanmasını, ayarların BarCodeGenerator'a geçirilmesini ve herhangi bir dosya yazılmadan önce GenerateImage() çağrılmasını gerektirir.

Spire.Barcode Yaklaşımı:

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 Yaklaşımı:

using IronBarCode;

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

Değiştirilebilir BarcodeSettings nesnesi ve ayrı BarCodeGenerator örneği, bir akış zinciri ile tek bir statik fabrika çağrısı ile değiştirilir. Ayarların eşzamanlı çağrılarda yanlışlıkla paylaşılması riski yoktur çünkü her CreateBarcode() çağrısı bağımsızdır.

Bir PDF Belgesinden Barkodları Okuma

Spire.Barcode PDF'leri doğrudan okuyamaz. Spire tabanlı yaklaşım, dosyayı açmak, sayfalarında dolaşmak, her sayfadan raster görüntüleri çıkarmak ve daha sonra bu görüntüleri barkod tarayıcıya birer birer geçirmek için ayrı bir Spire.PDF paketi gerektirir.

Spire.Barcode Yaklaşımı:

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 Yaklaşımı:

using IronBarCode;

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

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

IronBarcode, PDF belgelerini doğrudan okur ve Spire.PDF veya herhangi bir manuel sayfa yönetimi gerektirmez. Her barkodun çıkarıldığı sayfa numarası, sonuç nesnesinde mevcuttur. PDF okuma kodu değiştirildikten sonra, Spire.PDF paket referansı ve tüm using Spire.Pdf; importları projeden kaldırılabilir.

Spire.Barcode API'sinden IronBarcode için Haritalama Referansı

Spire.BarcodeIronBarcodeNotlar
new BarcodeScanner()BarcodeReader.Read() (statik)Tarayıcı örneği gerekli değil
scanner.Scan(path, BarCodeType.X)BarcodeReader.Read(path)Tür parametresi kaldırıldı
BarCodeType.Code128 (gereklidir)Otomatik olarak algılanırEşdeğerinin gereksiz olduğu
BarCodeType.QRCode (gereklidir)Otomatik olarak algılanırEşdeğerinin gereksiz olduğu
string[] results'dan Scan()BarcodeResults koleksiyonuDeğerlere .Value üzerinden erişim
results[0] (dize)results[0].Value
Sonuç üzerinde format bilinmiyorresult.FormatSonuç nesnesi içinde tür bulunur
new BarcodeSettings()CreateBarcode() üzerindeki parametrelerAyar nesnesi gerekmez
settings.Type = BarCodeType.XBarcodeEncoding.X ikinci parametre olarak
settings.Data = "value"CreateBarcode()'nin ilk parametresi
new BarCodeGenerator(settings)Gerekli değilStatik fabrika onu değiştirir
generator.GenerateImage().SaveAsPng() / .SaveAsJpeg()Format-spesifik çıkış yöntemleri
BarcodeSettings.ApplyKey("key")IronBarCode.License.LicenseKey = "key"Başlangıçta bir kez ayarla
Spire.License.LicenseProvider.SetLicenseKey("key")IronBarCode.License.LicenseKey = "key"Aynı tek satır değişimi
Spire.PDF (PDF okuma için)Gerekli değilYerel PDF desteği yerleşiktir

Yaygın Göç Sorunları ve Çözümleri

Sorun 1: BarCodeType Parametresi Kaldırma

Spire.Barcode: scanner.Scan(path, BarCodeType.Code128) — tip argümanı, yöntem imzası tarafından gereklidir. Onu kaldırmak bir derleme hatası oluşturur.

Çözüm: Tüm çağrıyı BarcodeReader.Read(path) ile değiştirin. Her türlü varlığı bulmak için kod tabanında BarCodeType. araması yapın. Tip-tahmin döngüleri (bir BarCodeType[] aday dizisi üzerinde yineleme yapan foreach blokları) tamamen silinebilir; döngü, tek bir BarcodeReader.Read() çağrısıyla değiştirilir.

Sorun 2: string[] Dönüş Türü

Spire.Barcode: Scan(), string[] döndürür. Bunu bir string[] değişkenine atayan veya string[] bekleyen bir metoda geçiren alt akış kodu, geçişten sonra derlenemeyecektir.

Çözüm: Çağrı noktalarını BarcodeResults ile çalışacak şekilde güncelleyin. Düz bir dize dizisi elde etmek için .Select(r => r.Value).ToArray() kullanın. İlk sonuca erişmek için .First()?.Value kullanın. Eğer tespit edilen format alt akışta gerekiyorsa, sonuç nesnesindeki .Format aracılığıyla erişilebilir — ayrı bir durum değişkeni gerekmez.

// 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;

Sorun 3: Spire.PDF Paketi Temizliği

Spire.Barcode: PDF okuma iş akışları, sayfa erişimi ve görüntü çıkarımı için Spire.PDF'e bağlıdır. Proje, paketi referans verir ve using Spire.Pdf; importları ve PdfDocument / PdfPageBase kullanımları birden fazla dosyada yayılmıştır.

Çözüm: Tüm PDF barkod çıkarım kodunu BarcodeReader.Read("file.pdf") ile değiştirdikten sonra, paketi kaldırmadan önce artık Spire.Pdf referansları olmadığını doğrulamak için bir grep denetimi çalıştırın:

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

Yalnızca tüm referanslar temizlendiğinde paketi kaldırın:

dotnet remove package Spire.PDF
SHELL

Sorun 4: Ad Alanı Değişiklikleri

Spire.Barcode: Spire.Barcode isim alanı BarcodeScanner, BarcodeSettings, BarCodeGenerator ve BarCodeType içerir. IronBarCode isim alanı BarcodeReader, BarcodeWriter, BarcodeEncoding ve BarcodeReaderOptions içerir.

Çözüm: using Spire.Barcode; yerine toplamda using IronBarCode; kullanın. Üretimde kullanılan BarCodeType numaralandırması, BarcodeEncoding ile değiştirilir. Okumada kullanılan BarCodeType numaralandırmasının IronBarcode eşdeğeri yoktur — sadece kaldırılır, çünkü format algılama otomatiktir.

Spire.Barcode Geçiş Kontrol Listesi

Geçiş Öncesi Görevler

Değişiklikler yapmadan önce Spire.Barcode kullanımını belirlemek için kod tabanını denetleyin:

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 aday dizilerini içeren tüm dosyaları belgeleyin (kaldırılacak tip-tahmin döngüleri)
  • Scan()'den sonuç alan ve tip güncellemeleri gerekecek olan herhangi bir string[] değişkenini belirleyin
  • Spire.PDF'nin barkod çıkarımından başka işlemlerde kullanılıp kullanılmadığını doğrulayın

Kod Güncelleme Görevleri

  1. FreeSpire.Barcode veya Spire.Barcode NuGet paketini kaldırın
  2. Barkod çıkarım, tek kullanım alanıysa Spire.PDF NuGet paketini kaldırın
  3. IronBarcode NuGet paketini kurun
  4. Tüm using Spire.Barcode;'leri using IronBarCode; ile değiştirin
  5. Artık gereksiz olan tüm using Spire.Pdf; importlarını kaldırın
  6. Lisans başlatmalarını değiştirin: ApplyKey() veya SetLicenseKey() ile IronBarCode.License.LicenseKey = "key"
  7. Tüm new BarcodeScanner() örneklemelerini kaldırın
  8. Tüm scanner.Scan(path, BarCodeType.X) çağrılarını BarcodeReader.Read(path) ile değiştirin
  9. Tür tahmin foreach döngülerini silin; her biri için tek bir BarcodeReader.Read() çağrısıyla değiştirin
  10. PDF sayfa yineleme ve resim çıkartım bloklarını kaldırın; BarcodeReader.Read("file.pdf") ile değiştirin
  11. string[] sonuç atamalarını .Value veya .Select(r => r.Value).ToArray() kullanarak güncelleyin
  12. new BarcodeSettings() bloklarını BarcodeWriter.CreateBarcode(data, encoding) zincirleriyle değiştirin
  13. Tüm new BarCodeGenerator(settings) örneklemelerini kaldırın
  14. .GenerateImage() + image.Save()'yi .SaveAsPng() veya .SaveAsJpeg() ile değiştirin
  15. Üretimdeki BarCodeType.X numaralandırması değerlerini BarcodeEncoding.X ile değiştirin

Geçiş Sonrası Testler

Aday döngüsüne göre daha önce taranmış tüm formatların BarcodeReader.Read() tarafından düzgün şekilde algılandığını onaylayın

  • Toplu işlem geçişini ölçün ve üretim gereksinimlerini karşıladığını doğrulayın
  • PDF barkod çıkarımının doğru değerler ve sayfa numaraları ürettiğini doğrulayın
  • Üretilen barkod çıktısının kalite ve tarama yeteneğini fiziksel veya yazılım tarayıcı ile doğrulayın
  • Lisans anahtarının tüm dağıtım ortamlarında (yerel ortam, test, üretim, CI/CD) doğru şekilde yüklendiğini kontrol edin
  • Ön Geçiş Görevlerinden grep denetim komutlarını çalıştırarak hiçbir Spire referansı kalmadığını doğrulayın

IronBarcode'a Geçmenin Temel Faydaları

Format Bakım Yükünün Ortadan Kaldırılması: Geçiş sonrasında, bakım yapılacak aday tür listesi ve yeni bir barkod formatı iş akışına girdiğinde güncellenecek tür tahmin döngüsü bulunmaz. BarcodeReader.Read() tüm semboloji setini otomatik olarak yönetir ve tespit edilen format, alt akış yönlendirmesi için her bir sonuç nesnesine dahil edilir.

**Taahhüt Öncesi Doğru Değerlendirme:**IronBarcode denemesi, lisanslı ürünle aynı ikili dosyadan tam okuma hızında ve tam simgoloji setiyle çalışır. Performans ölçütleri ve format kapsama testleri, deneme değerlendirmesi sırasında doğrudan üretime geçer. Ekipler, değerlendirilen davranışın dağıtılan davranış olduğuna dair güvenle satın alma kararı verebilirler.

Tek Paket PDF Desteği: PDF dosyalarından barkod çıkarımı, resimler için kullanılan aynı BarcodeReader.Read() çağrısı ile ele alınır. İkincil kütüphane, ek lisans ve manuel sayfa yineleme kodu gerekli değildir. Daha önce hem Spire.Barcode hem de Spire.PDF kaynaklarını yöneten takımlar, tüm barkod iş akışı için tek bir bağımlılığa indirgenir.

Format Meta Verili Sonuç Nesneleri: Bir BarcodeResults koleksiyonundaki her bir giriş, kodlanmış değeri, tespit edilen sembolojiyi, PDF girdileri için kaynak sayfa numarasını ve kaynak görüntü içindeki sınır bölgesini taşıyor. Formatlara göre yönlendirme, filtreleme veya günlüğe kaydetme gerektiren uygulamalar, ek durum yönetimi olmadan bu bilgiye sonuç üzerinde sahip olur.

Basitleştirilmiş Üretim API'si: BarcodeWriter.CreateBarcode()'daki statik fabrika deseni, değiştirilebilir BarcodeSettings nesnesini ve ayrı BarCodeGenerator örneğini ortadan kaldırır. Her üretim çağrısı kendi kendine yeterlidir ve eşzamanlı işlemler arasındaki yapılandırma karışıklığı riskini azaltır.

İleriye Dönük Uyumluluk: IronBarcode, .NET çalışma zamanı sürümleriyle uyumlu düzenli güncellemeler alır. .NET 10'un 2026 yılına kadar yaygınlaşmasıyla birlikte, uyumluluk güncellemeleri, her yeni .NET sürümünde kütüphane değişiklikleri gerektirmeden taşınmış kod tabanlarının derlenmeye ve çalışmaya devam etmesini sağlar.

Lütfen dikkate alın: Spire, ilgili sahibinin tescilli bir ticari markasıdır. Bu site, e-iceblue ile bağlantılı, onaylanmış veya sponsorlu değildir. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.
Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez