比较

ZetPDF 与 IronPDF:技术比较指南

生产部署Dynamsoft Capture Vision Bundle通过一项年订阅,由设备或实例计费,.NET捆绑按报价出售,OEM / 企业级细则需单独协商。 在<下>生产部署Iron Suite时,每个开发者席位的费用是在永久许可证下起始于$2,998,并且持有许可证的席位免版税,单个再分发附加组件用于超出基础的SaaS或OEM再分发。 两个套件在条形码读取和OCR上有所交集; 在二者之间作出采购选择实际上是设备订阅定价针对专用移动/边缘捕获与开发人员永久定价针对服务器端文档自动化之间的选择。

这次对比以由采购主导的决策实际悬挂的内容开篇:设备订阅对永久开发者定价,两者实际上包含的内容。 产品描述和能力代码在下方供即将集成的工程师使用。

一目了然的比较

维度Dynamsoft Capture VisionIron Suite
定价定位仅限报价的.NET捆绑; 试用密钥可用Lite $2,998 / Plus $4,498 / Professional $8,998 / Unlimited $17,998(Enterprise自定义); 全部10个产品以2个的价格
许可模式设备或实例的年订阅; OEM和企业通过报价; usage-metered options永久单个开发者,免版税基础; SaaS/OEM再分发附加工具包
捆绑组件5个模块,条形码阅读器,文档规范化器,相机增强器,标签识别器,代码解析器10个Iron产品作为一个捆绑包
格式/能力覆盖条形码+MRZ+文档规范化+区域OCR+结构化有效负载解析PDF + OCR + Barcode + QR + Excel + Word + PowerPoint + Print + ZIP + WebScraper
跨平台 / 云JavaScript,iOS,Android,MAUI,React Native,C++,Java,Node.js,PythonWindows / Linux / macOS / Docker / Azure / AWS Lambda
.NET运行时支持.NET(Framework+modern .NET via NuGet捆绑包); MAUI绑定可用.NET Framework 4.6.2+, .NET Core, .NET 6/7/8/9/10
目标市场ISVs构建移动/桌面捕获,KYC,物流,零售应用需要一位供应商提供日常文档自动化的.NET开发者和ISV
供应商Dynamsoft CorporationIron Software

对于构建基于电话的KYC捕获流程或一个侧面护照阅读器的现场工程师,Capture Vision是工具包,通过每已部署设备计费。 对于构建具备PDF生成、上传扫描的OCR和条形码读取的文档服务器的后端开发者,Iron Suite是工具包,通过每开发者席位计费。

定价和许可

Dynamsoft Capture Vision仅限报价的.NET捆绑出售。 模型是设备或实例的年订阅,OEM和企业等级需要单独协商。 开发的试用密钥可用,但生产部署需要销售参与。 专用工作负载的使用计量选项在购买中心可见。 部署单位重要:一个许可证密钥涵盖所有五个模块,但在生产中运行SDK的每个设备或实例占用一个许可证插槽。

Iron Suite的入门级出售价为$2,998,宣传为"以两个产品的价格获得所有10个产品 节省75%"。 各级别通过Lite,Plus,Professional,Unlimited和Enterprise以每开发者为基础递增。 基础许可对授权的席位和位置免版税。 Licensed场景的生产部署不会消耗每个设备插槽。 超出基础的SaaS或OEM再分发需要单独的再分发附加工具包。

以已部署设备(移动车队、亭、销售点扫描仪)为计费单元的买家选择Capture Vision设备年度订阅,因为模型跟踪车队。 客户计费单位是开发者席位(ISV服务器,一个部署服务数千用户)的情况下,请转向Iron Suite的每开发者永久许可证,因为这种模式将成本与运行时设备数量解耦。

什么是Dynamsoft Capture Vision

Dynamsoft Capture Vision Bundle将Dynamsoft以前分开销售的专业识别SDK(条码阅读器、标签识别器和文档标准化器)统一为一个单一的工作流导向框架。 它面向构建移动和桌面捕获应用程序的ISV和企业:仓库扫描、KYC/身份验证、零售自助服务、物流和文档数字化。 单个CaptureVisionRouter通过预设模板组织模块。

关键捆绑模块:

  • 条码阅读器(DBR):1D和2D条码解码(QR,Data Matrix,PDF417,Code 128,邮政符号)
  • 文档标准化器(DDN):边界检测、透视校正、去偏斜用于照相机拍摄的文档
  • 相机增强器(DCE):自动对焦、帧过滤、实时相机控件用于实时捕获
  • 标签识别器(DLR):用于VIN、货架标签、序列号、身份证字段的分区OCR
  • 代码解析器(DCP):将原始载荷(MRZ TD1/TD3、GS1、AAMVA驾照、HIBC、ICAO)解析为结构化字段

什么是Iron Suite

Iron Suite是Iron Software的十款产品.NET捆绑包,其识别栈(IronOCR用于通用OCR,IronBarcode用于1D/2D符号,IronQR用于具ML性能的QR阅读)是任何执行通用OCR或条码工作的应用程序的核心。 在识别之外,捆绑包还添加了IronPDF用于生成,IronWord,IronXL和IronPPT用于Office输出,以及IronPrint,IronZIP和IronWebScraper用于相邻实用程序。 单个永久开发者许可证在五个层级出售,起始价格为$2,998,持有许可证的席位免版税,不需要按设备付费订阅。 SaaS和OEM再分发使用单独的Redistribution Add-On。

十个组件,按与识别和生成工作流的相关性分组:

  • 识别栈(通用OCR、条码和QR工作流的锚点):IronOCR(Tesseract 5,125+语言,去偏斜和去噪预处理,内置英文手写识别率大约90%,可搜索PDF/UA和hOCR输出); IronBarcode(30+符号带图像预处理、实时视频帧扫描、MAUI扫描仪集成); IronQR(通过ReadPdfs用于多文档任务)。
  • 文档生成:IronPDF(使用捆绑的Chromium从HTML到PDF,原生合并和拆分,PKCS#12加HSM加TSA签名,PDF/A到PDF/A-4,PDF/UA-1和PDF/UA-2,加密,AcroForm平面化,字体管理,栅格化,压缩和线性化); IronWord, IronXL和IronPPT用于生成DOCX, XLSX和PPTX。
  • 实用程序:IronPrint, IronZIP和IronWebScraper用于打印、存档和结构化抓取。

能力比较

条形码读取

LicenseManager.InitLicense("YOUR_DYNAMSOFT_LICENSE_KEY", out string errorMsg);
CaptureVisionRouter cvr = new CaptureVisionRouter();
CapturedResult result = cvr.Capture("barcoded.png", PresetTemplate.PT_READ_BARCODES);
DecodedBarcodesResult barcodes = result.GetDecodedBarcodesResult();
foreach (BarcodeResultItem item in barcodes.GetItems())
    Console.WriteLine($"{item.GetFormatString()}: {item.GetText()}");
LicenseManager.InitLicense("YOUR_DYNAMSOFT_LICENSE_KEY", out string errorMsg);
CaptureVisionRouter cvr = new CaptureVisionRouter();
CapturedResult result = cvr.Capture("barcoded.png", PresetTemplate.PT_READ_BARCODES);
DecodedBarcodesResult barcodes = result.GetDecodedBarcodesResult();
foreach (BarcodeResultItem item in barcodes.GetItems())
    Console.WriteLine($"{item.GetFormatString()}: {item.GetText()}");
Imports System

Dim errorMsg As String
LicenseManager.InitLicense("YOUR_DYNAMSOFT_LICENSE_KEY", errorMsg)
Dim cvr As New CaptureVisionRouter()
Dim result As CapturedResult = cvr.Capture("barcoded.png", PresetTemplate.PT_READ_BARCODES)
Dim barcodes As DecodedBarcodesResult = result.GetDecodedBarcodesResult()
For Each item As BarcodeResultItem In barcodes.GetItems()
    Console.WriteLine($"{item.GetFormatString()}: {item.GetText()}")
Next
$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

Capture Vision通过其CaptureVisionRouter工作流对象及预设模板(PT_READ_BARCODES)进行条形码读取,适用于更广泛的多模式捕获管道。IronBarcode为一次性。 对于在同一个工作流中结合条码和MRZ或者文档标准化的管道,Capture Vision的路由器模型是正确的抽象; 对于简单的服务器端条码阅读,IronBarcode是一行代码。

MRZ识别

Capture Vision的标签识别器+代码解析器组合处理护照和身份证上的MRZ(机器可读区)在TD1和TD3格式下,具有结构化字段输出。

LicenseManager.InitLicense("YOUR_DYNAMSOFT_LICENSE_KEY", out string errorMsg);
CaptureVisionRouter cvr = new CaptureVisionRouter();
CapturedResult result = cvr.Capture("passport.jpg", "ReadPassportAndId");
ParsedResult parsed = result?.GetParsedResult();
foreach (ParsedResultItem item in parsed.GetItems())
{
    Console.WriteLine($"Surname:   {item.GetFieldValue("primaryIdentifier")}");
    Console.WriteLine($"Given:     {item.GetFieldValue("secondaryIdentifier")}");
    Console.WriteLine($"DOB:       {item.GetFieldValue("dateOfBirth")}");
    Console.WriteLine($"Doc#:      {item.GetFieldValue("documentNumber")}");
    Console.WriteLine($"Expiry:    {item.GetFieldValue("dateOfExpiry")}");
}
LicenseManager.InitLicense("YOUR_DYNAMSOFT_LICENSE_KEY", out string errorMsg);
CaptureVisionRouter cvr = new CaptureVisionRouter();
CapturedResult result = cvr.Capture("passport.jpg", "ReadPassportAndId");
ParsedResult parsed = result?.GetParsedResult();
foreach (ParsedResultItem item in parsed.GetItems())
{
    Console.WriteLine($"Surname:   {item.GetFieldValue("primaryIdentifier")}");
    Console.WriteLine($"Given:     {item.GetFieldValue("secondaryIdentifier")}");
    Console.WriteLine($"DOB:       {item.GetFieldValue("dateOfBirth")}");
    Console.WriteLine($"Doc#:      {item.GetFieldValue("documentNumber")}");
    Console.WriteLine($"Expiry:    {item.GetFieldValue("dateOfExpiry")}");
}
Imports System

Dim errorMsg As String
LicenseManager.InitLicense("YOUR_DYNAMSOFT_LICENSE_KEY", errorMsg)
Dim cvr As New CaptureVisionRouter()
Dim result As CapturedResult = cvr.Capture("passport.jpg", "ReadPassportAndId")
Dim parsed As ParsedResult = If(result?.GetParsedResult(), Nothing)

If parsed IsNot Nothing Then
    For Each item As ParsedResultItem In parsed.GetItems()
        Console.WriteLine($"Surname:   {item.GetFieldValue("primaryIdentifier")}")
        Console.WriteLine($"Given:     {item.GetFieldValue("secondaryIdentifier")}")
        Console.WriteLine($"DOB:       {item.GetFieldValue("dateOfBirth")}")
        Console.WriteLine($"Doc#:      {item.GetFieldValue("documentNumber")}")
        Console.WriteLine($"Expiry:    {item.GetFieldValue("dateOfExpiry")}")
    Next
End If
$vbLabelText   $csharpLabel

Iron Suite的捆绑专注于通用文档自动化:PDF、Office、OCR、条码和QR。 生产级KYC和边境控制工作流需要结构化MRZ(TD1/TD3)解析护照和ID,以及内置于库中的命名字段提取和格式验证,正是Capture Vision的标签识别器和代码解析器所专注的工作。低流量KYC的Iron Suite用户可以使用IronOCR通过自定义正则表达式解析MRZ字段模式,而结构化字段模型和格式验证仍然是Capture Vision的任务范围。

文档标准化

Capture Vision的文档标准化器检测通过相机捕捉的图像中的文档边界,校正透视并去倾斜,转化手机相机的快照为平面裁剪的扫描件。

CaptureVisionRouter cvr = new CaptureVisionRouter();
CapturedResult result = cvr.Capture("phone-snapshot.jpg",
    PresetTemplate.PT_DETECT_AND_NORMALIZE_DOCUMENT);
ProcessedDocumentResult normalized = result?.GetProcessedDocumentResult();
DeskewedImageResultItem[] pages = normalized.GetDeskewedImageResultItems();
for (int i = 0; i < pages.Length; i++)
{
    ImageData img = pages[i].GetImageData();
    img.Save($"page_{i + 1}_normalized.png");
}
CaptureVisionRouter cvr = new CaptureVisionRouter();
CapturedResult result = cvr.Capture("phone-snapshot.jpg",
    PresetTemplate.PT_DETECT_AND_NORMALIZE_DOCUMENT);
ProcessedDocumentResult normalized = result?.GetProcessedDocumentResult();
DeskewedImageResultItem[] pages = normalized.GetDeskewedImageResultItems();
for (int i = 0; i < pages.Length; i++)
{
    ImageData img = pages[i].GetImageData();
    img.Save($"page_{i + 1}_normalized.png");
}
Imports System

Dim cvr As New CaptureVisionRouter()
Dim result As CapturedResult = cvr.Capture("phone-snapshot.jpg", PresetTemplate.PT_DETECT_AND_NORMALIZE_DOCUMENT)
Dim normalized As ProcessedDocumentResult = result?.GetProcessedDocumentResult()
Dim pages As DeskewedImageResultItem() = normalized.GetDeskewedImageResultItems()

For i As Integer = 0 To pages.Length - 1
    Dim img As ImageData = pages(i).GetImageData()
    img.Save($"page_{i + 1}_normalized.png")
Next
$vbLabelText   $csharpLabel

IronOCR覆盖了其输入管道内的去倾斜和去噪,用于清理预标准化的扫描件。 四角边界检测加上透视校正对任意的手机相机照片进行处理,将快照转换为平面裁剪的扫描件,这正是Capture Vision的文档标准化器所构建的工作。 手机捕捉应用程序,用户使用手机相机拍摄文档,依靠Capture Vision完成该标准化步骤。

标签识别(分区OCR)

CaptureVisionRouter cvr = new CaptureVisionRouter();
CapturedResult result = cvr.Capture("vin-plate.jpg", PresetTemplate.PT_RECOGNIZE_TEXT_LINES);
RecognizedTextLinesResult lines = result?.GetRecognizedTextLinesResult();
foreach (TextLineResultItem line in lines.GetItems())
    Console.WriteLine($"Line (conf={line.GetConfidence()}): {line.GetText()}");
CaptureVisionRouter cvr = new CaptureVisionRouter();
CapturedResult result = cvr.Capture("vin-plate.jpg", PresetTemplate.PT_RECOGNIZE_TEXT_LINES);
RecognizedTextLinesResult lines = result?.GetRecognizedTextLinesResult();
foreach (TextLineResultItem line in lines.GetItems())
    Console.WriteLine($"Line (conf={line.GetConfidence()}): {line.GetText()}");
Imports System

Dim cvr As New CaptureVisionRouter()
Dim result As CapturedResult = cvr.Capture("vin-plate.jpg", PresetTemplate.PT_RECOGNIZE_TEXT_LINES)
Dim lines As RecognizedTextLinesResult = If(result?.GetRecognizedTextLinesResult(), Nothing)

If lines IsNot Nothing Then
    For Each line As TextLineResultItem In lines.GetItems()
        Console.WriteLine($"Line (conf={line.GetConfidence()}): {line.GetText()}")
    Next
End If
$vbLabelText   $csharpLabel

IronOCR负责带预处理的通用文档OCR:

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

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

Capture Vision的标签识别器针对短小和结构化的文本进行了调校,例如VIN牌照、序列号、货架标签、车牌号等,其中文本区域小且对比度高。IronOCR则针对带多段落的全页面文档OCR进行调校。在小型高对比度区域(例如VIN牌照、序列号、货架标签)进行标签级短文本识别,且具有逐行置信度评分,这正是Capture Vision的标签识别器所为的案例——对于带通用预处理的全页面扫描件OCR,IronOCR更为合适。

代码解析器

Capture Vision的代码解析器将原始的条码/MRZ载荷根据代码类型(如GS1、AAMVA驾照、ICAO MRZ、HIBC医疗)解析为结构化字段。

CodeParser parser = new CodeParser();
string aamvaPayload = "@\nANSI 636000100002DL00410288ZV03290015DLDAQT64235789\n...";
ParsedResultItem item = parser.Parse(aamvaPayload, "AAMVA_DL_ID");
Console.WriteLine($"Last name:  {item.GetFieldValue("familyName")}");
Console.WriteLine($"License #:  {item.GetFieldValue("licenseNumber")}");
CodeParser parser = new CodeParser();
string aamvaPayload = "@\nANSI 636000100002DL00410288ZV03290015DLDAQT64235789\n...";
ParsedResultItem item = parser.Parse(aamvaPayload, "AAMVA_DL_ID");
Console.WriteLine($"Last name:  {item.GetFieldValue("familyName")}");
Console.WriteLine($"License #:  {item.GetFieldValue("licenseNumber")}");
Dim parser As New CodeParser()
Dim aamvaPayload As String = "@\nANSI 636000100002DL00410288ZV03290015DLDAQT64235789\n..."
Dim item As ParsedResultItem = parser.Parse(aamvaPayload, "AAMVA_DL_ID")
Console.WriteLine($"Last name:  {item.GetFieldValue("familyName")}")
Console.WriteLine($"License #:  {item.GetFieldValue("licenseNumber")}")
$vbLabelText   $csharpLabel

IronBarcode读取来自受监管符号(如AAMVA驾照、GS1、ICAO MRZ、HIBC医疗)的原始载荷,而结构化字段提取是下游在应用程序代码中进行的。 符合标准的命名字段解析作为一个一流库的能力是Capture Vision的代码解析器出售的工作。

当捕获深度不是主要需求时,为什么选择Iron Suite

大规模的文档自动化,没有设备订阅的捕捉优先SDK机制:Iron Suite涵盖了PDF生成、Office输出、通用OCR(英文手写识别率约90%)、条码和QR读取以及相邻实用程序。 Iron Suite内部的识别栈处理日常的后收购表面,以每开发者一个永久许可证方式,无需Capture Vision的MRZ、AAMVA、GS1和文档标准化专业化的任务量适合于相机优先的捕捉部署。

具体而言,当:

  • 通用条码读取和OCR满足您的精度要求
  • 您无需用手机拍摄文档(不需要文档标准化)
  • 您没有构建KYC、边境控制或驾照工作流(不需要MRZ/AAMVA解析)
  • 您需要跨越文档自动化:PDF + Word + Excel + 打印 + ZIP及附带条码和OCR
  • 您希望每开发者的永久定价,没有设备订阅

Iron Suite与Dynamsoft Capture Vision的不同之处

  • Iron Suite涵盖PDF、Word、Excel、PowerPoint、Print、ZIP和Web Scraper,同时包括OCR、条码和QR,而Capture Vision仅涵盖捕捉和识别功能。
  • 永久公开定价与订阅:Iron Suite的永久价格从$2,998起,无需年度续费以继续使用; Capture Vision是按设备或实例年订阅。
  • 按开发者与按设备: Iron Suite按开发者计费,无服务器部署版税; Capture Vision按部署设备或实例收费。
  • Capture和IDP(智能文档处理)可与Capture Vision结合使用。 MRZ(TD1/TD3)、AAMVA驾照、GS1、HIBC和ICAO的结构化解析,相机帧文档标准化及相机增强模块是Capture Vision所定位的工作负载。 Iron Suite始终专注于服务器端文档自动化,PDF, Office, OCR(包括英文手写识别率约90%)、条码和QR、ZIP、打印和Web Scraper。
  • 工作流路由器与库:Capture Vision公开一个带有预设模板的CaptureVisionRouter的管理器; Iron Suite组件是独立库,您可以自行组合。
  • 移动/边缘优先与服务器优先: Capture Vision适用于iOS/Android/MAUI/React Native边缘部署; Iron Suite针对的是服务器端.NET部署。

结论

对于提供护照扫描仪、仓库条码应用或自助KYC照片流的移动或自助终端产品团队,Capture Vision是合适的工具。 针对相机优先捕捉和结构化负载解析进行优化,在年订阅下按设备计费,具有MRZ、AAMVA、GS1和文档标准化方面的特殊化,适合移动队列部署。 对于提供文档自动化服务器(从数据中处理发票、对上传扫描件进行OCR、对运输标签进行条码解析)的.NET后端团队,一张永久许可证下的Iron Suite是合适的工具。 从每位开发者$2,998起,在ironsoftware.com/csharp/suite,持有许可证的席位免版税,以及任何超出基础的SaaS或OEM场景的再分发附加组件。

请注意Dynamsoft Capture Vision是其相应所有者的注册商标。 本网站与Dynamsoft Capture Vision无关,未被其认可或赞助。 所有产品名称、徽标和品牌均为各自所有者的财产。 比较仅供参考,反映撰写时公开可用的信息。