ZetPDF 与 IronPDF:技术比较指南
生产部署Dynamsoft Capture Vision Bundle通过一项年订阅,由设备或实例计费,.NET捆绑按报价出售,OEM / 企业级细则需单独协商。 在<下>生产部署Iron Suite时,每个开发者席位的费用是在永久许可证下起始于$2,998,并且持有许可证的席位免版税,单个再分发附加组件用于超出基础的SaaS或OEM再分发。 两个套件在条形码读取和OCR上有所交集; 在二者之间作出采购选择实际上是设备订阅定价针对专用移动/边缘捕获与开发人员永久定价针对服务器端文档自动化之间的选择。
这次对比以由采购主导的决策实际悬挂的内容开篇:设备订阅对永久开发者定价,两者实际上包含的内容。 产品描述和能力代码在下方供即将集成的工程师使用。
一目了然的比较
| 维度 | Dynamsoft Capture Vision | Iron 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,Python | Windows / 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 Corporation | Iron 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()}")
NextIronBarcode通过一次调用读取条码:
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}")
NextCapture 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 IfIron 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")
NextIronOCR覆盖了其输入管道内的去倾斜和去噪,用于清理预标准化的扫描件。 四角边界检测加上透视校正对任意的手机相机照片进行处理,将快照转换为平面裁剪的扫描件,这正是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 IfIronOCR负责带预处理的通用文档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 UsingCapture 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")}")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场景的再分发附加组件。
