COMPARAISON

wkhtmltopdf vs IronPDF : Guide de comparaison technique

Choisir entre Atalasoft DotImage et Iron Suite revient généralement à une question d'approvisionnement : quel modèle de licence de fournisseur s'adapte au processus d'achat, et à quoi ressemble l'exposition au déploiement à l'échelle de la production ? DotImage est vendu uniquement sur devis par Tungsten Automation (anciennement Kofax) avec un siège par développeur plus des frais d'exécution par serveur superposés, et l'investissement stratégique de la société mère va vers ses plateformes de capture de niveau supérieur plutôt que vers DotImage lui-même.Iron Suiteest vendu à un prix perpétuel publié à partir de $2,998 par développeur, libre de droits pour les sièges licenciés, avec un seul module complémentaire de redistribution optionnel pour les scénarios SaaS ou OEM.

Cet article commence par ce sur quoi repose réellement une décision menée par l'approvisionnement : comment chaque suite est tarifée, ce que couvre réellement la licence et à quel point la feuille de route du produit est active. Les détails développement par capacité suivent pour les ingénieurs qui vont l'intégrer.

Comparaison en un coup d'œil

Dimension Atalasoft DotImage Iron Suite
Positionnement tarifaire Sur devis uniquement, pas de prix public Lite $2,998 / Plus $4,498 / Professional $8,998 / Unlimited $17,998 (Enterprise custom); tous les 10 produits pour le prix de 2
Modèle de licence Commercial uniquement sur devis via Tungsten; par développeur + frais d'exécution/serveur Perpétuel par développeur, base libre de droits ; Ajout de redistribution pour SaaS/OEM
Composants dans le bundle ~10+ paquets NuGet (imagerie, PDF, OCR, Codage-barre, dotTwain, WinControls, WebControls, AdvancedDocClean) 10 produits Iron en un seul bundle
Couverture format/capacité Imagerie, PDF, OCR, Barcode, Formulaires, numérisation TWAIN/WIA, visionneuse Web/WinForms PDF + OCR + Barcode + QR + Excel + Word + PowerPoint + Print + ZIP + WebScraper
Cross-platform / cloud Centré sur Windows (divisions natives x86/x64) Windows / Linux / macOS / Docker / Azure / AWS Lambda
Support du runtime .NET .NET 10 et .NET Framework 3.5 listés sur les paquets x64 actuels; exécutables intermédiaires via règles de compatibilité .NET Framework 4.6.2+, .NET Core, .NET 6/7/8/9/10
Marché cible Magasins de capture de formulaires/d'entreprise existants, services financiers, gouvernement Développeurs .NET et ISVs ayant besoin d'un seul fournisseur pour l'automatisation quotidienne de documents
Fournisseur Tungsten Automation (anciennement Kofax; Atalasoft acquis en 2011) Iron Software

Si l'intégration du scanner TWAIN/WIA, le nettoyage avancé des documents autonome (HolePunchRemoval, DynamicThreshold, despeckle) ou la couverture approfondie du codec d'imagerie est ce qui compte le plus pour la charge de travail, l'héritage de DotImage est ce autour de quoi la boîte à outils est construite. Si le déploiement cross-plateforme à travers Windows, Linux, macOS, Docker, Azure et AWS Lambda compte le plus, ainsi qu'un investissement mensuel actif dans dix produits à un prix publié par développeur,Iron Suiteest le choix.

Tarification et licences

Atalasoft DotImage est vendu uniquement sur devis via Tungsten Automation. Il n'y a pas de prix public listé. Le modèle est par développeur pour le SDK plus des frais de déploiement/exécution par serveur de production ou par copie redistribuable. Des niveaux OEM sont disponibles pour la redistribution à un prix supérieur. L'approvisionnement nécessite un engagement de vente et le coût total de possession dépend du nombre de développeurs plus le modèle de nombre de déploiements.

Iron Suite est livré à $2,998 pour le niveau d'entrée, commercialisé comme "les 10 produits au prix de 2, économisez 75%". Les niveaux augmentent avec Lite, Plus, Professional, Unlimited, et Enterprise sur une base par développeur. La licence de base est libre de droits pour les sièges et les emplacements sous licence ; aucune licence de temps d'exécution/serveur séparée n'est requise pour le déploiement de base. La redistribution SaaS ou OEM au-delà de la base nécessite le module complémentaire de redistribution séparé.

Sur un horizon TCO pluriannuel, DotImage applique une redevance par siège développeur, un cycle de renouvellement basé sur devis, et des frais d'exécution par serveur qui augmentent avec chaque instance déployée.Iron Suiteapplique un seul frais perpétuel par développeur avec un déploiement serveur libre de droits sous la licence de base; le seul élément à prix séparé est le module complémentaire de redistribution pour SaaS et OEM redistribution à grande échelle.

Qu'est-ce qu'Atalasoft DotImage

Atalasoft DotImage est un SDK d'imagerie/PDF/OCR .NET complet maintenant vendu sous Tungsten Automation (anciennement Kofax). Il continue d'être expédié (le NuGet x64 actuel 2026.x a été publié le 2026-05-21), bien que la plus grande partie de l'investissement de la société mère aille vers les plateformes de capture de niveau supérieur de Tungsten (TotalAgility, SignDoc), laissant DotImage sur une trajectoire s'appuyant sur la maintenance pour les scénarios de numérisation, visionneuse et formulaires intégrés. Il est positionné pour les clients d'entreprise existants, en particulier les magasins de capture de documents et de traitement des formulaires dans les services financiers et gouvernementaux.

Paquets NuGet clés regroupés :

  • Atalasoft.dotImage : coeur d'imagerie avec support de codec, filtres de traitement et I/O d'images
  • Atalasoft.dotImage.Pdf / PdfReader : Création, édition et rasterisation de PDF
  • Atalasoft.dotImage.Ocr.Tesseract5 : pont moteur OCR pour sortie PDF recherchable
  • Atalasoft.dotImage.Barcoding : lecture et écriture de code-barres 1D/2D
  • Atalasoft.dotTwain : wrapper de pilote scanner TWAIN natif
  • Atalasoft.dotImage.WinControls / WebControls : contrôles de visionneuse/annotation WinForms et ASP.NET
  • Atalasoft.dotImage.AdvancedDocClean : Suppression de trous de perforations, Amélioration, Seuil dynamique, Redressement de primitives

Qu'est-ce qu'Iron Suite

Iron Suite est le bundle .NET à dix produits d'Iron Software, structuré autour d'une pile de reconnaissance qui gère les travaux courants d'OCR, de code-barres, et de QR dont la plupart des applications backend ont éventuellement besoin. IronOCR (Tesseract 5, 125+ langues, écriture manuscrite) est au centre, avec IronBarcode et IronQR à côté; IronPDF gère la génération et la manipulation PDF; IronWord, IronXL et IronPPT couvrent la production Office; IronPrint, IronZIP et IronWebScraper terminent le bundle. Vendu comme une licence perpétuelle unique par développeur à cinq niveaux de $2,998, libre de droits pour les sièges licenciés. Les redistributions SaaS et OEM utilisent un module complémentaire de redistribution distinct.

Les dix composants, regroupés par pertinence pour un flux de reconnaissance post-acquisition :

  • Pile de reconnaissance (ancre pour les flux de travail OCR et code-barres): IronOCR (Tesseract 5, 125+ langues, écriture manuscrite à ~90% en anglais, prétraitement de deskew et denoise intégré dans le pipeline d'entrée); IronBarcode (30+ symbologies, prétraitement d'image, intégration de scanner MAUI); IronQR (alimenté par ML, QrStyleOptions pour les codes de marque, batch ReadPdfs).
  • Génération de documents : IronPDF (HTML en PDF, fusion et division natives, signature avec PKCS#12 plus HSM plus TSA, PDF/A jusqu'à PDF/A-4, PDF/UA-1 et PDF/UA-2, cryptage AES, aplatissement AcroForm, gestion des polices, rasterisation, compression et linéarisation); IronWord, IronXL, et IronPPT pour la surface Office.
  • Utilitaire : IronPrint, IronZIP et IronWebScraper pour l'impression, les archives et le scraping en cours de processus.

Comparaison de capacités

Imagerie

La force de DotImage est son pipeline d'imagerie : codecs, filtres, nettoyage avancé de documents.

RegisteredDecoders.Decoders.Add(new TiffDecoder());
RegisteredDecoders.Decoders.Add(new JpegDecoder());
using (FileStream fs = new FileStream("scan.tif", FileMode.Open))
using (AtalaImage image = new AtalaImage(fs))
{
    new DespeckleCommand(2).ApplyToImage(image);
    AutoDeskewCommand deskew = new AutoDeskewCommand();
    deskew.ApplyToImage(image);
    using (FileStream outFs = new FileStream("scan-clean.jpg", FileMode.Create))
        image.Save(outFs, new JpegEncoder(85), null);
}
RegisteredDecoders.Decoders.Add(new TiffDecoder());
RegisteredDecoders.Decoders.Add(new JpegDecoder());
using (FileStream fs = new FileStream("scan.tif", FileMode.Open))
using (AtalaImage image = new AtalaImage(fs))
{
    new DespeckleCommand(2).ApplyToImage(image);
    AutoDeskewCommand deskew = new AutoDeskewCommand();
    deskew.ApplyToImage(image);
    using (FileStream outFs = new FileStream("scan-clean.jpg", FileMode.Create))
        image.Save(outFs, new JpegEncoder(85), null);
}
Imports System.IO

RegisteredDecoders.Decoders.Add(New TiffDecoder())
RegisteredDecoders.Decoders.Add(New JpegDecoder())

Using fs As New FileStream("scan.tif", FileMode.Open)
    Using image As New AtalaImage(fs)
        Dim despeckleCommand As New DespeckleCommand(2)
        despeckleCommand.ApplyToImage(image)

        Dim deskew As New AutoDeskewCommand()
        deskew.ApplyToImage(image)

        Using outFs As New FileStream("scan-clean.jpg", FileMode.Create)
            image.Save(outFs, New JpegEncoder(85), Nothing)
        End Using
    End Using
End Using
$vbLabelText   $csharpLabel

Iron Suite gère le prétraitement d'image implicitement via IronOCR (deskew, denoise) lorsqu'il alimente des scans pour OCR, de sorte que le nettoyage qui cible les pipelines OCR est couvert dans le bundle. Les primitives de nettoyage de documents autonomes en dehors d'un flux OCR, comme HolePunchRemoval, DynamicThreshold, déspeckle et deskew en tant qu'appels indépendants, sont les charges de travail pour lesquelles le package AdvancedDocClean de DotImage est vendu. Les utilisateurs d'Iron Suite ayant des exigences d'imagerie autonomes composent avec une bibliothèque d'imagerie dédiée aux côtés d'IronOCR ou IronPDF.

Traitement PDF

PdfDecoder decoder = new PdfDecoder();
RegisteredDecoders.Decoders.Add(decoder);
using (FileStream pdfStream = new FileStream("input.pdf", FileMode.Open))
{
    int pageCount = decoder.GetImageInfo(pdfStream).FrameCount;
    for (int i = 0; i < pageCount; i++)
    {
        pdfStream.Position = 0;
        using (AtalaImage page = decoder.Read(pdfStream, i, null))
        using (FileStream outFs = new FileStream($"page_{i + 1}.png", FileMode.Create))
            page.Save(outFs, new PngEncoder(), null);
    }
}
PdfDecoder decoder = new PdfDecoder();
RegisteredDecoders.Decoders.Add(decoder);
using (FileStream pdfStream = new FileStream("input.pdf", FileMode.Open))
{
    int pageCount = decoder.GetImageInfo(pdfStream).FrameCount;
    for (int i = 0; i < pageCount; i++)
    {
        pdfStream.Position = 0;
        using (AtalaImage page = decoder.Read(pdfStream, i, null))
        using (FileStream outFs = new FileStream($"page_{i + 1}.png", FileMode.Create))
            page.Save(outFs, new PngEncoder(), null);
    }
}
Imports System.IO

Dim decoder As New PdfDecoder()
RegisteredDecoders.Decoders.Add(decoder)
Using pdfStream As New FileStream("input.pdf", FileMode.Open)
    Dim pageCount As Integer = decoder.GetImageInfo(pdfStream).FrameCount
    For i As Integer = 0 To pageCount - 1
        pdfStream.Position = 0
        Using page As AtalaImage = decoder.Read(pdfStream, i, Nothing)
            Using outFs As New FileStream($"page_{i + 1}.png", FileMode.Create)
                page.Save(outFs, New PngEncoder(), Nothing)
            End Using
        End Using
    Next
End Using
$vbLabelText   $csharpLabel

Le flux équivalent d'IronPDF est axé sur HTML en premier :

var renderer = new ChromePdfRenderer();
string html = @"<h1>Invoice 2026-0428</h1><p>Customer: Acme Corp</p><p>Total due: $1,240.00</p>";
using var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
var renderer = new ChromePdfRenderer();
string html = @"<h1>Invoice 2026-0428</h1><p>Customer: Acme Corp</p><p>Total due: $1,240.00</p>";
using var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
Dim renderer As New ChromePdfRenderer()
Dim html As String = "<h1>Invoice 2026-0428</h1><p>Customer: Acme Corp</p><p>Total due: $1,240.00</p>"
Using pdf = renderer.RenderHtmlAsPdf(html)
    pdf.SaveAs("invoice.pdf")
End Using
$vbLabelText   $csharpLabel

IronPDF transforme les PDF en PNG, JPEG ou TIFF via RasterizeToImageFiles(pattern, DPI) pour le flux de travail commun page-à-image. DotImage enregistre PdfDecoder avec son système de codec d'imagerie, où la rasterisation se trouve à l'intérieur d'un pipeline d'imagerie à plusieurs étapes avec des filtres de nettoyage, ce cas de pipeline plus large est ce pour quoi DotImage est conçu.

OCR

using (OcrEngine engine = new Tesseract5Engine())
{
    engine.Initialize();
    engine.Languages.Add(engine.GetSupportedLanguages()[0]);
    using (FileSystemImageSource src = new FileSystemImageSource(new[] { "multi-page.tif" }, true))
    {
        engine.Translate(src, "application/pdf", "searchable.pdf",
                         new OcrTranslationSettings { MimeType = "application/pdf" });
    }
    engine.Shutdown();
}
using (OcrEngine engine = new Tesseract5Engine())
{
    engine.Initialize();
    engine.Languages.Add(engine.GetSupportedLanguages()[0]);
    using (FileSystemImageSource src = new FileSystemImageSource(new[] { "multi-page.tif" }, true))
    {
        engine.Translate(src, "application/pdf", "searchable.pdf",
                         new OcrTranslationSettings { MimeType = "application/pdf" });
    }
    engine.Shutdown();
}
Imports System

Using engine As New Tesseract5Engine()
    engine.Initialize()
    engine.Languages.Add(engine.GetSupportedLanguages()(0))
    Using src As New FileSystemImageSource(New String() {"multi-page.tif"}, True)
        engine.Translate(src, "application/pdf", "searchable.pdf", 
                         New OcrTranslationSettings With {.MimeType = "application/pdf"})
    End Using
    engine.Shutdown()
End Using
$vbLabelText   $csharpLabel

IronOCR réduit le même flux de travail:

var ocr = new IronTesseract();
using var input = new OcrInput("scanned-document.png");
input.Deskew();
input.DeNoise();
var result = ocr.Read(input);
Console.WriteLine($"Confidence: {result.Confidence}");
var ocr = new IronTesseract();
using var input = new OcrInput("scanned-document.png");
input.Deskew();
input.DeNoise();
var result = ocr.Read(input);
Console.WriteLine($"Confidence: {result.Confidence}");
Imports IronTesseract

Dim ocr As New IronTesseract()
Using input As New OcrInput("scanned-document.png")
    input.Deskew()
    input.DeNoise()
    Dim result = ocr.Read(input)
    Console.WriteLine($"Confidence: {result.Confidence}")
End Using
$vbLabelText   $csharpLabel

Les deux enveloppent Tesseract sous le capot. L'API OCR de DotImage fait apparaître le modèle de pipeline d'imagerie (FileSystemImageSource, Translate vers le type MIME) et le cycle de vie explicite du moteur. IronOCR est orienté avec deskew/denoise intégré dans le flux d'entrée. Pour les charges de travail intégrées dans un pipeline d'imagerie DotImage plus large, l'OCR DotImage s'intègre naturellement; pour l'OCR autonome avec prétraitement intégré, IronOCR est plus rapide à livrer.

Lecture de codes-barres

BarCodeReader reader = new BarCodeReader();
reader.Symbology = Symbologies.Qr | Symbologies.DataMatrix |
                   Symbologies.Pdf417 | Symbologies.Code128 | Symbologies.Upca;
reader.Direction = Directions.All;
using (AtalaImage image = new AtalaImage("barcoded.png"))
{
    BarCode[] results = reader.ReadBars(image);
    foreach (BarCode bc in results)
        Console.WriteLine($"{bc.Symbology}: {bc.DataString}");
}
BarCodeReader reader = new BarCodeReader();
reader.Symbology = Symbologies.Qr | Symbologies.DataMatrix |
                   Symbologies.Pdf417 | Symbologies.Code128 | Symbologies.Upca;
reader.Direction = Directions.All;
using (AtalaImage image = new AtalaImage("barcoded.png"))
{
    BarCode[] results = reader.ReadBars(image);
    foreach (BarCode bc in results)
        Console.WriteLine($"{bc.Symbology}: {bc.DataString}");
}
Imports System

Dim reader As New BarCodeReader()
reader.Symbology = Symbologies.Qr Or Symbologies.DataMatrix Or Symbologies.Pdf417 Or Symbologies.Code128 Or Symbologies.Upca
reader.Direction = Directions.All

Using image As New AtalaImage("barcoded.png")
    Dim results As BarCode() = reader.ReadBars(image)
    For Each bc As BarCode In results
        Console.WriteLine($"{bc.Symbology}: {bc.DataString}")
    Next
End Using
$vbLabelText   $csharpLabel

IronBarcode est un appel:

var results = BarcodeReader.Read("shipment-label.png");
foreach (var barcode in results)
{
    Console.WriteLine($"Value: {barcode.Value}");
    Console.WriteLine($"Format: {barcode.BarcodeType}");
}
var results = BarcodeReader.Read("shipment-label.png");
foreach (var barcode in results)
{
    Console.WriteLine($"Value: {barcode.Value}");
    Console.WriteLine($"Format: {barcode.BarcodeType}");
}
Dim results = BarcodeReader.Read("shipment-label.png")
For Each barcode In results
    Console.WriteLine($"Value: {barcode.Value}")
    Console.WriteLine($"Format: {barcode.BarcodeType}")
Next
$vbLabelText   $csharpLabel

DotImage nécessite une configuration explicite du masque de symbologie et de la direction. IronBarcode détecte automatiquement. Pour les flux de travail de numérisation à haut volume où la direction du scan est connue et les régions de recherche ont besoin d'optimisation, DotImage expose les réglages; pour la lecture générale de code-barres, IronBarcode est plus concis.

Numérisation TWAIN

Le package dotTwain de DotImage enveloppe le pilote du scanner TWAIN, une catégorie queIron Suiten'aborde pas.

Form host = new Form();
Device device = AvailableDevices.Default;
device.UI.UseDefaultUI = false;
device.Pages = 0; // 0 = all pages from ADF
using (TiffEncoder encoder = new TiffEncoder(TiffCompression.CcittGroup4))
using (TiffMultiFrameStream output = new TiffMultiFrameStream(
    new FileStream("scanned.tif", FileMode.Create), encoder))
{
    device.ImageAcquired += (s, e) => output.AppendImage(e.Image);
    device.Acquire(host);
}
Form host = new Form();
Device device = AvailableDevices.Default;
device.UI.UseDefaultUI = false;
device.Pages = 0; // 0 = all pages from ADF
using (TiffEncoder encoder = new TiffEncoder(TiffCompression.CcittGroup4))
using (TiffMultiFrameStream output = new TiffMultiFrameStream(
    new FileStream("scanned.tif", FileMode.Create), encoder))
{
    device.ImageAcquired += (s, e) => output.AppendImage(e.Image);
    device.Acquire(host);
}
Imports System.IO

Dim host As New Form()
Dim device As Device = AvailableDevices.Default
device.UI.UseDefaultUI = False
device.Pages = 0 ' 0 = all pages from ADF

Using encoder As New TiffEncoder(TiffCompression.CcittGroup4)
    Using output As New TiffMultiFrameStream(New FileStream("scanned.tif", FileMode.Create), encoder)
        AddHandler device.ImageAcquired, Sub(s, e) output.AppendImage(e.Image)
        device.Acquire(host)
    End Using
End Using
$vbLabelText   $csharpLabel

Le bundle d'Iron Suite reste concentré sur l'automatisation de documents post-acquisition, l'OCR, la reconnaissance, PDF, Office. Les portails de numérisation de bout en bout où un scanner physique TWAIN/WIA est piloté depuis .NET, avec l'acquisition de page au niveau matériel liée à l'application, sont les charges de travail autour desquelles le package dotTwain de DotImage est construit. Les utilisateurs de l'Iron Suite composent avec une bibliothèque TWAIN externe et alimentent les images acquises dans IronOCR ou IronPDF pour un traitement ultérieur.

Pourquoi choisir l'Iron Suite lorsque la profondeur de capture n'est pas la principale exigence

Pour le développeur backend .NET ou l'équipe ISV exécutant l'automatisation des documents sur des charges de travail après acquisition (factures, rapports, OCR occasionnel sur des PDFs numérisés, code-barres sur des étiquettes d'expédition, sortie Office), la surface de l'Iron Suite correspond à la charge de travail à un prix publié avec un investissement mensuel actif sur l'ensemble. La profondeur de DotImage dans les codecs d'imagerie et l'enveloppement de pilotes TWAIN est une valeur d'ingénierie réelle lorsque l'application pilote des scanners physiques ou exécute une pipeline de capture d'entreprise ; dans les backends axés sur l'automatisation post-acquisition, cette profondeur reste une capacité payée mais inutilisée.

Spécifiquement,Iron Suiteest le meilleur choix lorsque :

  • Vous ne conduisez pas de scanners physiques TWAIN/WIA depuis .NET
  • Vous n'avez pas besoin de nettoyage de document autonome avancé (HolePunchRemoval, DynamicThreshold) en dehors du prétraitement OCR
  • Vous avez besoin d'un déploiement Linux, macOS, Docker ou cloud à côté de Windows
  • Vous voulez une tarification perpétuelle publique sans frais de runtime par serveur
  • Vous voulez un rythme de publication mensuel actif sur tous les composants plutôt qu'une trajectoire axée sur la maintenance

Comment l'Iron Suite est-il différent de l'Atalasoft DotImage

  • Investissement actif vs tendance maintenance :Iron Suitese livre avec un rythme mensuel actif sur les dix composants; DotImage continue de recevoir des versions, mais le focus stratégique de la société mère Tungsten Automation est sur ses plateformes de capture de haut niveau.
  • Tarification perpétuelle publique à partir de $2,998 vs devis seulement + frais d'exécution :Iron Suiteest à prix publié ; DotImage nécessite un engagement commercial ainsi que des frais d'exécution par serveur.
  • Windows + Linux + macOS + Docker + Azure + AWS Lambda vs natif Windows (splits x86 et x64).Iron Suiteest livré multiplateforme dès le premier jour ; DotImage reste centré sur Windows dans ses packages natifs x86 et x64.
  • Pas de frais de runtime/serveur :Iron Suiteest libre de redevances pour les sièges sous licence ; DotImage superpose des frais de runtime par-dessus les sièges de développeur.
  • API .NET moderne idiomatique :Iron Suiteutilise des idiomes modernes de .NET ; Le modèle API de DotImage reflète toujours son héritage de pile d'imagerie (enregistrement de codec, FileSystemImageSource, paires d'encodeur/décodeur explicites).
  • Capture et numérisation avec DotImage, à quoi cela ressemble : Enveloppement de pilote scanner TWAIN/WIA, profondeur de codec JBIG2/JPEG2000, et contrôles de visualisation Web et WinForms sont les charges de travail sur lesquelles DotImage s'ancre.Iron Suitereste concentré sur l'automatisation des documents post-acquisition à travers PDF, Office, OCR, Barcode et QR, ZIP, Print, et WebScraper.

Conclusion

Atalasoft DotImage etIron Suiteservent différents points sur le même axe. DotImage porte l'héritage de capture de documents Kofax/Tungsten et l'enveloppement de pilote TWAIN/WIA dont dépendent les portails de numérisation, avec une tarification commerciale seulement sur devis et des frais de runtime par serveur.Iron Suitepropose le groupe généraliste de post-acquisition de documents et de reconnaissance, avec un investissement mensuel actif dans dix produits, un déploiement multiplateforme de Windows à Linux, macOS, Docker, Azure, et AWS Lambda, et un prix perpétuel forfaitaire par développeur. Pour les équipes dont le travail se déroule après la numérisation,Iron Suitecommence à $2,998 et est à ironsoftware.com/csharp/suite.

Veuillez noterAtalasoft DotImage est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié, endossé, ou sponsorisé par Atalasoft DotImage. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont à titre informatif uniquement et reflètent les informations publiquement disponibles au moment de l'écriture.