比較

wkhtmltopdf與IronPDF:技術比較指南

選擇Atalasoft DotImageIron Suite通常歸結為採購問題:哪個供應商的授權模式符合購買流程,以及在生產規模下部署的曝光情況如何? DotImage僅通過Tungsten Automation(前身為Kofax)按報價銷售,按開發者席位加上每台伺服器的運行時費用層疊在上,母公司的戰略投資是針對其更高級別的捕捉平台,而非直接針對DotImage。 Iron Suite的售價為每位開發者發布的永久價格,經由授權的席位免版稅,包含單一選配的再分發外掛,用於SaaS或OEM場景。

本文設定的開篇是討論採購主導的決策實際上取決於什麼: 每個套件的定價,授權實際涵蓋什麼,以及產品路線圖的活躍程度。 隨後談如何為需要整合的工程師提供逐個功能細節。

快速比較

尺寸Atalasoft DotImageIron Suite
定價定位僅供報價,無公開定價Lite $2,998 / Plus $4,498 / Professional $8,998 / Unlimited $17,998(Enterprise客制化); 所有10款產品的價格相當於2套產品的價格
授權模式通過Tungsten商業僅按報價銷售; 每位開發者 + 運行時/伺服器費用按每位開發者的永久授權,基礎免版稅; SaaS/OEM的再分發附加元件
捆綁中的組件約10+個NuGet套件(成像、PDF、OCR、條碼、dotTwain、WinControls、WebControls、AdvancedDocClean)10個Iron產品作為單一捆綁
格式/能力覆蓋影像處理、 PDF、 OCR、 條碼、 表單、 TWAIN/WIA掃描、 Web/WinForms檢視器PDF + OCR + 條碼 + QR + Excel + Word + PowerPoint + 印刷 + ZIP + 網頁爬蟲
跨平台/雲端以Windows為中心(x86/x64原生分離)Windows / Linux / macOS / Docker / Azure / AWS Lambda
.NET運行時支持.NET 10和.NET Framework 3.5 列在當前 x64 套件上; 中間運行時通過相容性規則.NET Framework 4.6.2+, .NET Core, .NET 6/7/8/9/10
目標市場現有的企業捕獲/表單店舖,金融服務,政府.NET開發者和ISV需要單一供應商以實現日常文件自動化
供應商Tungsten Automation(前身為Kofax); Atalasoft於2011年收購)Iron Software

如果TWAIN/WIA掃描儀整合,單獨的高級文件清理(HolePunchRemoval、DynamicThreshold、despeckle)或深度影像編解碼器覆蓋對工作負載最重要,DotImage的傳承正是工具包的基礎。 如果跨平台部署在Windows、Linux、macOS、Docker、Azure和AWS Lambda同時重要,加上每月都對十個產品進行活躍的投資,鐵套裝是合適的選擇。

定價和授權

Atalasoft DotImage僅通過Tungsten Automation按報價銷售。 沒有公開的價格表。模式是開發者之SDK加上每個生產伺服器或每個可重新發行副本的運行時/伺服器部署費用。 OEM級別可用於更高價位的再分發。 採購需要銷售參與,總擁有成本取決於開發者數量以及部署數量的總和模式。

Iron Suite以入門級的$2,998提供,宣傳為"所有10個產品以2個產品的價格,節省75%"。 等級按每位開發者逐步提升,分為Lite、Plus、Professional、Unlimited和Enterprise。 基礎授權對於授權席位和位置是免版稅的; 基礎部署不需要單獨的運行時/伺服器授權。 超出基礎的SaaS或OEM再分發需要單獨的Redistribution Add-On。

在多年的TCO視角下,DotImage施加每位開發者的席位費用,基於報價的更新周期,以及每台伺服器運行時費用隨已部署實例的規模而提高。 Iron Suite施加單一永久的每位開發者費用,下基礎授權的伺服器部署免版稅; 唯一單獨定價的項目是針對SaaS和OEM規模再分發的再分發外掛。

Atalasoft DotImage是什麼

Atalasoft DotImage是全面的.NET影像/PDF/OCR SDK,現由Tungsten Automation(前身為Kofax)出售。 它繼續發貨(目前的2026.x x64 NuGet於2026-05-21發布),儘管大多數母公司投資方向是針對Tungsten的高級捕捉平台(TotalAgility、SignDoc),導致DotImage在為嵌入式掃描、檢視器和表單場景支持的路徑走上維護倾向的軌道。 它面向現有的企業客戶,尤其是金融服務和政府中的文件捕捉和表單處理店舖。

關鍵套件NuGet包:

  • Atalasoft.dotImage:擁有編解碼器支持、處理過濾器和影像I/O的影像核心
  • Atalasoft.dotImage.Pdf / PdfReader:PDF建立、編輯和光柵化
  • Atalasoft.dotImage.Ocr.Tesseract5:用於可搜索PDF輸出的OCR引擎橋樑
  • Atalasoft.dotImage.Barcoding:1D/2D條碼的讀寫
  • Atalasoft.dotTwain:原生TWAIN掃描儀驅動器包裝
  • Atalasoft.dotImage.WinControls / WebControls:WinForms和ASP.NET檢視器/註釋控制
  • Atalasoft.dotImage.AdvancedDocClean:HolePunchRemoval、Despeckle、DynamicThreshold、Deskew原語

什麼是Iron Suite

鐵套裝是Iron Software的十個產品組合,組織在一個識別堆棧周圍,處理大多數後端應用最終需要的常規OCR、條碼和QR工作。 IronOCR(Tesseract 5,125+種語言,手寫)在中心位置,旁邊有IronBarcode和IronQR;IronPDF處理PDF生成和操作; IronWord、IronXL和IronPPT涵蓋辦公輸出; IronPrint、IronZIP和IronWebScraper完成套餐。 作為單一永久性的每位開發者授權銷售共五個等級,從$2,998起,經由授權的席位免版稅。 SaaS和OEM再分發使用的是單獨的再分發外掛。

十個組件,按與收購後識別工作流程的相關性分組:

  • 識別堆棧(以OCR驅動和條碼工作流程為錨點):IronOCR(Tesseract 5,125+種語言,手寫在約90%英語範圍內,消除傾斜和降噪預處理內建於輸入管道中); IronBarcode(30多種符號學,圖像預處理,MAUI掃描儀整合); IronQR(機器學習驅動的,ReadPdfs)。
  • 文件生成:IronPDF(HTML轉PDF、原生合併和拆分、使用PKCS#12加HSM加TSA簽名,通過到PDF/A-4,PDF/UA-1和PDF/UA-2,AES加密,AcroForm平面化,字體管理,光柵化,壓縮和線性化); IronWord、IronXL和IronPPT用於辦公層面。
  • 工具:IronPrint、IronZIP和IronWebScraper用於列印、存檔和處理中抓取。

功能比較

成像

DotImage的強項是它的影像處理管道:編解碼器、過濾器、高級文件清理。

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

鐵套裝在通過IronOCR供給光學識別進行掃描時隱式處理影像預處理(校正、降噪),因此針對OCR管道的清理被涵蓋在內。 如果獨立文件清理原語在OCR流程之外,如HolePunchRemoval、DynamicThreshold、despeckle和deskew作為獨立調用所需的工作負載,DotImage的AdvancedDocClean包即是為此而售。 需要獨立影像需求的鐵套裝使用者可將一個專用的影像處理庫與IronOCR或IronPDF進行組合。

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

IronPDF的等效流量是HTML優先:

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通過RasterizeToImageFiles(pattern, DPI)將PDF光柵化為PNG、JPEG或TIFF,從而實現常見的頁面到圖像工作流程。 DotImage通過其影像編解碼器系統註冊PdfDecoder,將光柵化置於多階段影像管道中,並配有清理過濾器,這更廣泛的管道案例正是DotImage設計的初衷。

光學字元識別(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簡化了相同的工作流程:

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

兩者都在底層封裝了Tesseract。 DotImage的OCR API展現了影像管道模式(Translate轉為MIME型別)和明確的引擎生命週期。 IronOCR觀念即是將校正/降噪內建於輸入流程中。 嵌入在更大的DotImage影像管道中的工作負載相比DolImage的OCR自然適通合適; 對於內建預處理的獨立OCR,IronOCR速度更快。

條碼讀取

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是一個調用:

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需要顯式的符號學位掩碼和方向配置。 IronBarcode自動檢測。 對於掃描方向已知的高容量掃描工作流程,並且需要優化搜索區域,DotImage公開了旋鈕; 對於一般條碼讀取,IronBarcode更簡明。

TWAIN掃描

DotImage的dotTwain包裝TWAIN掃描儀驅動程式,而鐵套裝並不用於此項目。

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

鐵套裝一直專注於收購後的文件自動化、OCR、識別、PDF、辦公功能。通用掃描入口門戶,當實體的TWAIN/WIA掃描儀是被.NET驅動,並且硬體級別的頁面獲取與應用程式綁定相關,這些則是DotImage的dotTwain包專注處理的工作負載。 鐵套裝使用者可將獲取的影像與外部TWAIN程式庫組合,並將所得影像傳入IronOCR或IronPDF進行後續處理。

為什麼在捕捉深度不是主要要求時選擇鐵套裝

.NET後端開發者或獨立軟體廠商團隊運行PDF後取得工作的文件自動化(發票、報告、偶爾對掃描的PDF進行光學識別、運行條碼的是運單標籤,辦公輸出),鐵套裝在固定發布價格的表面貼近工作量,並且在整個製訂產品組上有積極投資。 DotImage在影像編解碼器和TWAIN驅動包裝上的深度是應用驅動物理掃描儀或運行企業捕獲管道時的真正工程價值;在專注於購入後自動化的後端,這種深度會成為未使用容量。

特別是當相關需要:

  • 您沒有從.NET驅動物理的TWAIN/WIA掃描儀
  • 您不需要脫離OCR預處理的獨立高級文件清理(HolePunchRemoval、DynamicThreshold)
  • 您需要Linux、macOS、Docker或雲部署與Windows一起
  • 您需要公開的永續價格,不需要每伺服器運行時費
  • 您需要所有組件方面的積極月度發佈節奏而非傾向維護的走勢

鐵套裝和Atalasoft DotImage有何不同

  • 活動投資與傾向維護:鐵套裝在每個十個組件基礎週上有積極的月度發佈節奏; DotImage繼續在發佈產品更新,但母公司Tungsten Automation的戰略重點在其更高階的捕圖片平臺。
  • 從$2,998 開始的公開永久價格對比個性化報價+運行時費用: 鐵套裝有發佈價格; DotImage需要銷售參與以及每伺服器運行時費用。
  • Windows + Linux + macOS + Docker + Azure + AWS Lambda 對比 Windows原生(x86 和 x64 分層)。鐵套裝從第一天起跨平臺發佈; DotImage在其x86和x64原生套餐中仍以Windows為中心。
  • 無運行時/伺服器費:對已授權席位鐵套裝免版稅; DotImage在開發者席位層上煤附加了運行時費。
  • 現代惯用.NET API表面:鐵套裝采用了現代.NET惯用; DotImage的API模式仍反映出其影像堆棧世襲(編解碼器註冊,FileSystemImageSource,顯式編解碼器對)。
  • 用DotImage捕獲及掃描,是否有形態? TWAIN/WIA掃描儀驅動包裝、JBIG2/JPEG2000編解碼深度以及Web和WinForms檢視器控制是DotImage是所依託用於的工作量。 鐵套裝仍專注於PDF、辦公室、OCR、條碼和QR、ZIP、Print和WebScraper之所得自動化收購後的文件。

結論

Atalasoft DotImage和鐵套裝在同一個軸上服務於不同的點。 DotImage承載著Kofax/Tungsten文件捕獲的傳承和TWAIN/WIA驅動包裝,讓掃描門戶加持,價格仍是商業報價以及每伺服器運行時費用。 鐵套裝包含普遍的收購後文件和識別組合,有10個產品的積極月度投資,自Windows至Linux、macOS、Docker、Azure和AWS Lambda的跨平臺部署,以單一開發敘永價形成。對於掃描後發生的團隊,鐵套裝始於$2,998並於ironsoftware.com/csharp/suite

Atalasoft DotImage 是其註冊擁有者的註冊商標。 本網站與Atalasoft DotImage無關,未獲得其贊同或贊助。 所有產品名稱、商標和品牌均為其各自所有者的財產。 比較僅供資訊參考,反映撰寫時公開可用的資訊。)