在.NET中將HTML轉換為PDF
以$8,820 (單一開發者一年年度維護授權,ComponentSource 2024年3月) 的價格,外加每個開發者席位的單獨運行時/伺服器部署費用,LEADTOOLS Document Suite SDK針對需要深度識別基元(ICR、OMR、MICR、主模板表單、TWAIN掃描)的政府、醫療保健和銀行企業買家定價。 Iron Suite起始在$2,998發售,並將十個Iron產品捆綁在一個永久每開發者授權下,授權座位免版稅,使用單一重新分發附加功能可讓SaaS或OEM在基礎之外進行重新分發。 因此總成本曝光非常不同:LEADTOOLS隨著開發人員席位和每個伺服器的運行時費用而擴展; Iron Suite僅根據開發者數量進行調整。
這個比較主要關注的是採購決策實際依據的內容:每個套件的定價、授權實際涵蓋的內容以及捆綁包的發行。 產品描述和功能程式碼如下,供將負責整合的工程師使用。
快速比較
| 尺寸 | LEADTOOLS Document Suite | Iron Suite |
|---|---|---|
| 定價定位 | 從$8,820開始(1開發者/1年年度維護,ComponentSource 2024年3月)+單獨運行情況/部署費用 | Lite $2,998 / Plus $4,498 / Professional $8,998 / Unlimited $17,998(企業定制)。 所有10個產品的價格相當於2個,節省75% |
| 授權模式 | 永久每開發者+運行時/伺服器部署授權; royalty-free options at higher tiers | 按每位開發者的永久授權,基礎免版稅; SaaS/OEM的再分發附加元件 |
| 捆綁中的組件 | OCR + ICR/OMR + MICR + 條碼 + 表單 + PDF + 文件查看器 + TWAIN/WIA + 壓縮 + 文件編寫器 | 10個Iron產品作為單一捆綁 |
| 格式/能力覆蓋 | 捕獲、識別、成像、掃描、表單處理橫跨165+格式 | PDF + OCR + 條碼 + QR + Excel + Word + PowerPoint + 印刷 + ZIP + 網頁爬蟲 |
| 跨平台/雲端 | Windows、Linux、macOS、iOS、Android、UWP、.NET MAUI、Xamarin、HTML5/JS | Windows / Linux / macOS / Docker / Azure / AWS Lambda |
| .NET運行時支持 | .NET Framework 4.0+, .NET Standard 2.0, .NET 6.0 | .NET Framework 4.6.2+, .NET Core, .NET 6/7/8/9/10 |
| 目標市場 | 政府、醫療保健、銀行的企業捕獲/表單處理商店 | .NET開發者和ISV需要單一供應商以實現日常文件自動化 |
| 供應商 | LEAD Technologies, Inc. | Iron Software |
如果專家精度ICR、OMR、MICR、主模板表單識別或TWAIN/WIA掃描儀整合對工作負載最重要,LEADTOOLS就是圍繞這些工作負載構建的工具包。 如果單一永久授權下的通用OCR(英文筆跡大約90%),條碼和QR讀取再加上PDF和Office產生最為重要,那麼Iron Suite涵蓋該表面,提供固定的每開發者成本。
定價和授權
LEADTOOLS Document Suite是通過雙組件授權模式出售的:開發許可(每位使用SDK的程式員需要)和運行許可(每個部署的重新分發副本需要)。 ComponentSource顯示Document Suite v23 1開發者1年年度維護從$8,820開始(資料截至2024年3月)。 運行時/部署費用依據部署模式(每伺服器、每應用程式或更高層次的免版稅OEM)單獨報價。 總擁有成本需要對每個開發者席位和每個部署運行時的曝光進行建模。
Iron Suite起始於$2,998,作為進入級別,並被宣傳為"所有10個產品只需支付2個產品的價格,節省75%"。 層級從Lite、Plus、Professional、Unlimited和Enterprise升級。基礎許可是授權座位和位置的免版稅; 基礎部署不需要單獨的運行時/伺服器授權。 超過基礎的SaaS或OEM重新分發需要單獨的重新分發附加功能,這本身是一個發布的附加功能而非自訂合同。
在3至5年的範圍內,LEADTOOLS TCO會加倍:每開發者$8,820的年度維護線加上應用於每個生產部署的每伺服器運行時費用。Iron SuiteTCO是每開發者固定的; 一旦購買了永久席位,新增ect不會產生額外的每伺服器費用(在基礎許可範圍內,SaaS和OEM擴展的大型重新分發附加功能)。
LEADTOOLS Document Suite是什麼
LEADTOOLS Document Suite SDK是LEAD Technologies成像SDK的一個面向文件的捆綁包,這是一個在企業掃描、表單處理和以捕獲為中心的工作流程方面有很長歷史的產品組合。 它適用於政府、醫療保健、銀行以及構建掃描入口、表單處理管道和文件捕獲前端的ISV,這些地方原始識別準確性和成像格式的寬度比辦公室文件的保真度更重要。
主要捆綁的引擎和模塊:
- OCR(LEAD和OmniPage引擎,200+語言)和ICR/OMR(手寫/氣泡表單識別)
- MICR銀行支票字體識別
- Barcode讀取和寫入1D和2D符號學
- 擁有主模板儲存庫的表單識別/處理(AutoFormsEngine)
- PDF讀寫/ 編輯/ PDF/A
- 文件查看器(HTML5/JS)和適用於165+格式的文件編寫器
- TWAIN/WIA掃描 驅動程式,用於硬體獲取
- 壓縮編解碼器(CCITT、JBIG2、JPEG2000),適合存檔成像
什麼是Iron Suite
Iron Suite是Iron Software的十個產品 .NET 捆綁包,其識別堆棧(IronOCR、IronBarcode、IronQR)涵蓋了捕獲步驟後的工作流程。圍繞識別,捆綁包增加了用於生成和操作的IronPDF,IronWord、IronXL和IronPPT用於Office輸出,IronPrint、IronZIP和IronWebScraper用於相鄰效用。 以單一永久每開發者授權出售,五個層級為$2,998,授權座位免版稅。 SaaS 和 OEM 再分發由單獨的再分發附加選項涵蓋。
十個組件,以與識別主導工作流的相關性分組:
- 識別堆棧(錨點):IronOCR(Tesseract 5,125+語言,內建筆跡約90%英語準確性,deskew/去噪/對比預處理,可搜尋PDF/UA和hOCR輸出); IronBarcode (30+符號學包括QR、Aztec、Data Matrix、PDF417,具有圖像預處理和MAUI掃描儀支持); IronQR (ML驅動讀取,批次
ReadPdfs以用於多文件工作流程)。 - 文件生成:IronPDF (HTML轉PDF渲染,原生合併/拆分,PKCS#12 + HSM + TSA簽名,PDF/A-1至PDF/A-4系列,PDF/UA-1和PDF/UA-2,AES加密,AcroForm填充和平面化,字體管理,光柵化,壓縮和線性化); IronWord(DOCX); IronXL(XLSX 和公式重算); IronPPT(PPTX)。
- 效用:IronPrint(無聲及對話框列印); IronZIP(ZIP/TAR/GZIP/BZIP2附AES); IronWebScraper(內部結構化抓取)。
功能比較
光學字元識別(OCR)
LEADTOOLS提供兩個OCR引擎(LEAD和OmniPage),200+語言和明確IOcrEngine生命週期管理。
using (RasterCodecs codecs = new RasterCodecs())
using (IOcrEngine engine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD))
{
engine.Startup(codecs, null, null, @"C:\LEADTOOLS\Bin\Common\OcrLEADRuntime");
using (IOcrDocument doc = engine.DocumentManager.CreateDocument())
{
doc.Pages.AddPages("scan.tif", 1, -1, null);
doc.Pages.AutoZone(null);
doc.Pages.Recognize(null);
doc.Save("searchable.pdf", DocumentFormat.Pdf, null);
}
engine.Shutdown();
}using (RasterCodecs codecs = new RasterCodecs())
using (IOcrEngine engine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD))
{
engine.Startup(codecs, null, null, @"C:\LEADTOOLS\Bin\Common\OcrLEADRuntime");
using (IOcrDocument doc = engine.DocumentManager.CreateDocument())
{
doc.Pages.AddPages("scan.tif", 1, -1, null);
doc.Pages.AutoZone(null);
doc.Pages.Recognize(null);
doc.Save("searchable.pdf", DocumentFormat.Pdf, null);
}
engine.Shutdown();
}Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Ocr
Using codecs As New RasterCodecs()
Using engine As IOcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD)
engine.Startup(codecs, Nothing, Nothing, "C:\LEADTOOLS\Bin\Common\OcrLEADRuntime")
Using doc As IOcrDocument = engine.DocumentManager.CreateDocument()
doc.Pages.AddPages("scan.tif", 1, -1, Nothing)
doc.Pages.AutoZone(Nothing)
doc.Pages.Recognize(Nothing)
doc.Save("searchable.pdf", DocumentFormat.Pdf, Nothing)
End Using
engine.Shutdown()
End Using
End UsingIronOCR的等效流程是一個類別:
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 UsingLEADTOOLS曝光完整的識別管道:引擎啟動/關閉、編解碼器註冊、自動分區、多頁文件物件、輸出編寫器。 IronOCR是有風格的和緊湊的。 工作負載需要OmniPage在劣化掃描或200種語言的OCR精確度,帶有需要上調的引擎參數,是LEADTOOLS定位的案例—對於一般掃描文件的OCR,帶有自動預處理(加上手寫識別的~90%英語準確性) IronOCR速度更快。
條碼
using (RasterCodecs codecs = new RasterCodecs())
using (RasterImage image = codecs.Load("barcoded.tif"))
{
BarcodeEngine engine = new BarcodeEngine();
BarcodeData[] results = engine.Reader.ReadBarcodes(
image, LeadRect.Empty, 0,
new BarcodeSymbology[]
{
BarcodeSymbology.QR, BarcodeSymbology.Datamatrix,
BarcodeSymbology.PDF417, BarcodeSymbology.Code128, BarcodeSymbology.UPCA
});
foreach (BarcodeData bc in results)
Console.WriteLine($"{bc.Symbology}: {bc.Value}");
}using (RasterCodecs codecs = new RasterCodecs())
using (RasterImage image = codecs.Load("barcoded.tif"))
{
BarcodeEngine engine = new BarcodeEngine();
BarcodeData[] results = engine.Reader.ReadBarcodes(
image, LeadRect.Empty, 0,
new BarcodeSymbology[]
{
BarcodeSymbology.QR, BarcodeSymbology.Datamatrix,
BarcodeSymbology.PDF417, BarcodeSymbology.Code128, BarcodeSymbology.UPCA
});
foreach (BarcodeData bc in results)
Console.WriteLine($"{bc.Symbology}: {bc.Value}");
}Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Barcode
Using codecs As New RasterCodecs()
Using image As RasterImage = codecs.Load("barcoded.tif")
Dim engine As New BarcodeEngine()
Dim results As BarcodeData() = engine.Reader.ReadBarcodes(image, LeadRect.Empty, 0, New BarcodeSymbology() {BarcodeSymbology.QR, BarcodeSymbology.Datamatrix, BarcodeSymbology.PDF417, BarcodeSymbology.Code128, BarcodeSymbology.UPCA})
For Each bc As BarcodeData In results
Console.WriteLine($"{bc.Symbology}: {bc.Value}")
Next
End Using
End UsingIronBarcode將條碼閱讀簡化為一次調用:
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}")
NextLEADTOOLS展現明顯的符號陣列、編解碼器載入和LeadRect搜尋區域,對需要聚焦在結構化表單的特定區域時非常有用。 IronBarcode自動檢測符號並從任何圖像中返回結果無需預配置。 對於符號已知、搜尋區域重要的大批量掃描工作流程,LEADTOOLS是可調整的; 對於通用條碼閱讀,IronBarcode整合更快。
表單識別
LEADTOOLS Document Suite包含一個主模板表單識別引擎(AutoFormsEngine),可將掃描的表單與儲存庫中的模板進行匹配,並提取命名字段。 這是一類Iron Suite不處理的廣告。
DiskMasterFormsRepository repository = new DiskMasterFormsRepository(codecs, @"C:\Forms\Masters");
AutoFormsEngine autoEngine = new AutoFormsEngine(repository, null, null, null,
AutoFormsRecognitionManager.Default, 30, 80, true);
using (RasterImage form = codecs.Load("filled-form.tif"))
{
AutoFormsRunResult result = autoEngine.Run(form, null);
foreach (FormPage page in result.FormFields)
foreach (FormField field in page)
Console.WriteLine($"{field.Name}: {field.Result}");
}DiskMasterFormsRepository repository = new DiskMasterFormsRepository(codecs, @"C:\Forms\Masters");
AutoFormsEngine autoEngine = new AutoFormsEngine(repository, null, null, null,
AutoFormsRecognitionManager.Default, 30, 80, true);
using (RasterImage form = codecs.Load("filled-form.tif"))
{
AutoFormsRunResult result = autoEngine.Run(form, null);
foreach (FormPage page in result.FormFields)
foreach (FormField field in page)
Console.WriteLine($"{field.Name}: {field.Result}");
}Imports System
Dim repository As New DiskMasterFormsRepository(codecs, "C:\Forms\Masters")
Dim autoEngine As New AutoFormsEngine(repository, Nothing, Nothing, Nothing, AutoFormsRecognitionManager.Default, 30, 80, True)
Using form As RasterImage = codecs.Load("filled-form.tif")
Dim result As AutoFormsRunResult = autoEngine.Run(form, Nothing)
For Each page As FormPage In result.FormFields
For Each field As FormField In page
Console.WriteLine($"{field.Name}: {field.Result}")
Next
Next
End UsingIron Suite的表單工作流程路徑依賴於組合,IronOCR使用自訂的正則表達式和字段提取來針對掃描表單,或使用IronPDF的AcroForm閱讀(填寫,提取,平面化)來處理結構化PDF模板。 高容量政府/醫療表單數字化中,固定佈局且字段名與資料庫列對應的工作負載,則LEADTOOLS的AutoFormsEngine是圍繞建造的。
PDF處理
using (PDFDocument pdf = new PDFDocument("input.pdf"))
{
PDFDocumentProperties props = pdf.DocumentProperties;
props.Title = "Processed";
props.Author = "Internal";
pdf.SetDocumentProperties(props);
using (RasterCodecs codecs = new RasterCodecs())
pdf.Convert(1, -1, "input_pdfa.pdf", DocumentFormat.PdfA, codecs);
}using (PDFDocument pdf = new PDFDocument("input.pdf"))
{
PDFDocumentProperties props = pdf.DocumentProperties;
props.Title = "Processed";
props.Author = "Internal";
pdf.SetDocumentProperties(props);
using (RasterCodecs codecs = new RasterCodecs())
pdf.Convert(1, -1, "input_pdfa.pdf", DocumentFormat.PdfA, codecs);
}Imports System
Using pdf As New PDFDocument("input.pdf")
Dim props As PDFDocumentProperties = pdf.DocumentProperties
props.Title = "Processed"
props.Author = "Internal"
pdf.SetDocumentProperties(props)
Using codecs As New RasterCodecs()
pdf.Convert(1, -1, "input_pdfa.pdf", DocumentFormat.PdfA, codecs)
End Using
End UsingIronPDF的等效PDF/A出口流程:
// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/pdfa/
using IronPdf;
class Program
{
static void Main()
{
// SaveAsPdfA exports to a PDF/A archival profile.
// PdfAVersions exposes PdfA1a, PdfA1b, PdfA2a, PdfA2b, PdfA3a, PdfA3b.
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");
// PDF/A-3b is the common archival target for long-term retention.
pdf.SaveAsPdfA("invoice-archive.pdf", PdfAVersions.PdfA3b);
}
}// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/pdfa/
using IronPdf;
class Program
{
static void Main()
{
// SaveAsPdfA exports to a PDF/A archival profile.
// PdfAVersions exposes PdfA1a, PdfA1b, PdfA2a, PdfA2b, PdfA3a, PdfA3b.
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");
// PDF/A-3b is the common archival target for long-term retention.
pdf.SaveAsPdfA("invoice-archive.pdf", PdfAVersions.PdfA3b);
}
}Imports IronPdf
Module Program
Sub Main()
' SaveAsPdfA exports to a PDF/A archival profile.
' PdfAVersions exposes PdfA1a, PdfA1b, PdfA2a, PdfA2b, PdfA3a, PdfA3b.
Dim pdf As PdfDocument = PdfDocument.FromFile("invoice.pdf")
' PDF/A-3b is the common archival target for long-term retention.
pdf.SaveAsPdfA("invoice-archive.pdf", PdfAVersions.PdfA3b)
End Sub
End ModuleLEADTOOLS的PDF模型基於成像堆棧:Convert進行PDF/A出口。 IronPDF支持相同的PDF/A符合性級別(A-1a、A-1b、A-2a、A-2b、A-3a、A-3b,加上PDF/A-4/4E/4F家族,根據ISO 19005-4:2020),通過SaveAsPdfA。 IronPDF還提供專用的PDF/UA無障礙支持:RenderHtmlAsPdfUA(html)在一次調用中生成帶標籤的無障礙PDF(預設PDF/UA-1); 同時支持 PDF/UA-2),文件滿足508節和WCAG 2.0 AA標準。 對於在現有成像管道中將掃描的成像輸出轉換為PDF/A(其中RasterCodecs已經擁有光柵生命週期),LEADTOOLS順理成章; 對於HTML源或已載入PDF的歸檔到PDF/A,IronPDF的單行SaveAsPdfA是更直接的途徑。
TWAIN掃描
LEADTOOLS包括一個原生TWAIN/WIA掃描儀驅動程式外框,用於硬體獲取,這是Iron Suite不提供的功能。
TwainSession session = new TwainSession();
session.Startup(host, TwainStartupFlags.None);
if (session.SelectSource(null) == DialogResult.OK)
{
using (RasterCodecs codecs = new RasterCodecs())
{
session.AcquirePage += (s, e) =>
codecs.Save(e.Image, "scanned.tif", RasterImageFormat.CcittGroup4, 1,
1, -1, 1, CodecsSavePageMode.Append);
session.Acquire(TwainUserInterfaceFlags.Show);
}
}
session.Shutdown();TwainSession session = new TwainSession();
session.Startup(host, TwainStartupFlags.None);
if (session.SelectSource(null) == DialogResult.OK)
{
using (RasterCodecs codecs = new RasterCodecs())
{
session.AcquirePage += (s, e) =>
codecs.Save(e.Image, "scanned.tif", RasterImageFormat.CcittGroup4, 1,
1, -1, 1, CodecsSavePageMode.Append);
session.Acquire(TwainUserInterfaceFlags.Show);
}
}
session.Shutdown();Dim session As New TwainSession()
session.Startup(host, TwainStartupFlags.None)
If session.SelectSource(Nothing) = DialogResult.OK Then
Using codecs As New RasterCodecs()
AddHandler session.AcquirePage, Sub(s, e)
codecs.Save(e.Image, "scanned.tif", RasterImageFormat.CcittGroup4, 1, 1, -1, 1, CodecsSavePageMode.Append)
End Sub
session.Acquire(TwainUserInterfaceFlags.Show)
End Using
End If
session.Shutdown()Iron Suite的捆綁包保持專注於後獲取的文件自動化、OCR、識別、PDF、Office。從.NET驅動一個物理TWAIN/WIA掃描儀,用硬體級頁面獲取實現端到端掃描入口,是LEADTOOLS的TWAIN包裝器銷售的工作負載 — Iron Suite使用者與外部TWAIN程式庫組合,並將獲取的圖像輸入到IronOCR或IronPDF進行下一步處理。
為什麼在捕捉深度不是主要要求時選擇鐵套裝
對於不運行專用表單處理管道的.NET後端團隊,在沒有專用表單處理管道的情況下進行每日的文件自動化(發票,報告,偶爾掃描的OCR,運送標籤上的條碼,Office輸出,存檔),Iron Suite的來函表面匹配工作的總成本的一部分。LEADTOOLS的捕獲原始深度(ICR、OMR、MICR、掃描驅動程式)在工作流程實際運行那些原始時證明其價值; 在關注後獲取自動化的後端,未使用的捕獲介面仍是一個付費成本。
特別是當相關需要:
- 通用OCR和條碼識別達到您的準確性標準(不需要ICR、OMR、MICR)
- 您不從.NET驅動物理掃描儀(不需要TWAIN/WIA)
- 您需要跨越式文件自動化:一個捆綁包中的PDF + Word + Excel + OCR + 條碼
- 您希望有平坦的每開發者定價,沒有每伺服器運行時費用
- 您希望有公共、永久定價,以便進行可預測的採購
Iron Suite如何與LEADTOOLS Document Suite不同
- 沒有運行時/部署費用: Iron Suite預設授權座位非版稅; LEADTOOLS在開發者定價的基礎上增加運行時/伺服器部署費用。
- 從$2,998開始的公共永久定價: Iron Suite載譽公開價;LEADTOOLS Document Suite從$8,820/年+單獨運行時費用。
- 現代慣用的.NET API表面: Iron Suite在所有十個組件上使用現代.NET慣例; LEADTOOLS的API模式是從COM衍生的(全域
Shutdown生命週期,手動編解碼器註冊)。 - 每個元件的單一包裝安裝: Iron Suite為每個元件輸出一個NuGet; LEADTOOLS Document Suite需要多個交叉引用的包(
Leadtools.Forms,OCR運行時,本地DLL)。 - 捕獲和IDP是LEADTOOLS專門化的物件。 OMR(氣泡表單)、MICR(支票字體)、TWAIN/WIA掃描儀驅動程式、以及JBIG2/JPEG2000編解碼器深度是LEADTOOLS定位的工作負載。 IronOCR包括一般手寫識別(約90%英語文字準確性)和掃描內的常規符號條碼檢測—生產級ICR具有專業準確性和OMR/MICR管道仍然是LEADTOOLS的專家領域。
- LEADTOOLS不僅覆蓋.NET,還覆蓋iOS、Android、UWP、MAUI和HTML5/JS,Iron Suite專注於伺服器和桌面.NET。
結論
以$8,820加上每伺服器運行時費用,LEADTOOLS Document Suite購得深度捕獲:ICR、OMR、MICR、主模板表單識別、TWAIN和WIA掃描儀驅動程式,以及伴隨存檔級掃描的成像編解碼器目錄。 每套Iron Suite Lite層在$2,998出售,包裹購得十大涵蓋一般文件自動化的產品橫跨PDF(與所有標準級功能)、Office、筆跡識別的OCR(約90%英語準確性)、條碼和QR、列印、ZIP和網路擷取,為授權座位免版稅,沒有每伺服器運行時費用。 捕獲首開的工作流帶有運行預算選擇LEADTOOLS; 每天.NET的文件自動化選擇Iron Suite在ironsoftware.com/csharp/suite。
