比较

XFINIUM.PDF 与 IronPDF:技术比较指南

DevExpress Office File API在被捆绑进DXperience或Universal订阅时最具经济吸引力,文档引擎几乎是免费随附UI控件一起交付。 通过经销商渠道单独购买(DevExpress购买页面对公共抓取进行了限制),大约为每个新桌位每年$587.99或续订费每年$1175.99。 Iron Suite仅作为后端SDK销售:包括十个Iron Software产品的一个永久性每开发人员捆绑包,从$2,998开始,许可座位可免版税,同时单一再分发附加组件涵盖SaaS和OEM再分发。

这次对比以一个由采购主导的决策实际上取决的内容开篇:是团队已经在使用DevExpress UI,套件在多年时间内的价格如何,以及实际上包含什么内容。 能力详情和代码接下来是给将要交付的工程师们的。

一目了然的比较

维度DevExpress Office File APIIron Suite
定价定位新许可证从~$587.99 / 订阅从~$1175.99每开发者/年(经销商清单,ComponentSource),供应商自购页面有限制Lite $2,998 / Plus $4,498 / Professional $8,998 / Unlimited $17,998(企业定制); 全部10个产品以2个的价格
许可模式每开发者订阅每年; 免版税部署; 包含在DXperience/Universal捆绑包中每开发者的永久许可; 许可席位免版税; SaaS/OEM通过Redistribution Add-On
捆绑中的组件7个子API(Word、Spreadsheet、PDF、PowerPoint、BarCode、Digital Signature、AI extensions)10个产品(IronPDF、IronWord、IronXL、IronPPT、IronOCR、IronBarcode、IronQR、IronPrint、IronZIP、IronWebScraper)
格式/能力覆盖DOCX、XLSX、PDF、PPTX + 条码 + 数字签名 + AI文档扩展PDF、Office、OCR、Barcode/QR、ZIP、Print、Web Scraping
跨平台/云Windows、Linux、macOS、Docker、Azure、AWSWindows、Linux、macOS、Docker、Azure、AWS Lambda
.NET运行时支持.NET 8 / 9 / 10, .NET Framework 4.6.2+.NET Framework 4.6.2+, .NET Core, .NET 6/7/8/9/10
目标市场中型市场和企业.NET商店,尤其是现有的DevExpress UI / Reporting客户独立开发者,小型中型市场.NET团队,ISVs
供应商Developer Express Inc. (DevExpress)Iron Software

买家通过询问决定:是否团队已经为DevExpress UI付费(Universal订户,XtraReports用户,WinForms / WPF控件买家)? 若是,则Office File API作为捆绑的附加值几乎免费到达,并这是留下DevExpress的最强经济论据。 否,则Iron Suite作为一个独立的后端捆绑,单一永久价格覆盖相同的Office、PDF、识别和实用程序面而无需UI生态系统的买入。

定价和许可

DevExpress Office File API作为每开发者订阅出售。 供应者自购网站未公开USD价格可供抓取,但ComponentSource上的经销商清单显示最新版本(v25.2.7)起新许可证从$587.99, 订阅/续订每开发者/年从$1175.99起。 每个开发者在多台机器上覆盖,无需每服务器或每域计数。 Office File API也捆绑在DXperience和Universal订阅中; 对于已经在Universal上的团队,文档引擎实际上免除了增量SKU成本。

Iron Suite以五个层级(Lite, Plus, Professional, Unlimited和Enterprise)的单一永久性每开发人员许可证出售,从$2,998起,市场定位为"十个产品的价格只需两个,节省75%"。基本许可证对已许可的座位、地点或项目免版税,SaaS、OEM或超过基本许可证分发的再分发使用一个单独定价的再分发附加组件

已在DevExpress Universal上的买家,转到Office File API作为捆绑附加值,不增加SKU成本。没有DevExpress UI依赖的买家,以$2,998的Lite层作为独立永久捆绑包转到Iron Suite,包含相同的Office和PDF表面加上识别(OCR, Barcode, QR)。

什么是DevExpress Office File API

DevExpress Office File API是支持DevExpress的Rich Edit、Spreadsheet和PDF Viewer控件的非视觉文档引擎,由Developer Express Inc.作为独立的服务器端SDK出售。它是旧DevExpress文档服务器产品的重命名演变,干净的集成到DevExpress组件系列的其余部分(XtraReports、Snap,WinForms/WPF控件)中。 当前产品页面上的市场宣传标语是"由DevExpress为.NET(DOCx, XLSx, PDF, PPTx)提供的Office&PDF文件API(C# & VB.NET,及即将推出的Java)"。最新的参考发布是DevExpress.Document.Processor 25.2.7,发布于2026-05-06,下一次主要版本v26.1预计在2026年6月发布,按照公开路线图。

关键的捆绑组件和功能:

  • Word Processing Document API:DOCX读取/写入,邮件合并,查找和替换
  • Spreadsheet Document API:XLSX读取/写入,带有完全公式再计算
  • PDF Document API:创建、编辑、合并、保护、签名PDF
  • PowerPoint Presentation API:PPTX读取/写入
  • Barcode Generation API:在捆绑包内渲染条形码
  • Digital Signature API:一流的PDF签名
  • AI-powered Documents Processing extensions:v26.1路线图中的更新方向

什么是Iron Suite

Iron Suite是Iron Software的独立.NET文档SDK,纯粹作为后端库销售,无需UI控件依赖且无需配套订阅。 十个产品以一个永久性每开发人员许可证同时发货,以五个层级从$2,998起,许可证座位免版税。 SaaS和OEM再分发使用单独的Redistribution Add-On。

这十个组件,按与编程的Office和PDF工作流的相关性进行分组:

  • Office stack:IronWord(DOCX带有段落和文本运行对象图、内容提取、自定义样式); IronXL(XLSX带有公式再计算、图表、数据透视表、条件格式); IronPPT(PPTX创建和编辑)。
  • PDF生成(IronPDF):HTML到PDF和URL到PDF,本地合并和拆分,PKCS#12加HSM加TSA签名符合eIDAS和ESIGN,PDF/A通过PDF/A-4,PDF/UA-1和PDF/UA-2,AES加密,AcroForm填充和展平,字体管理,光栅化,压缩和线性化。
  • 识别:IronOCR(Tesseract 5,125+种语言,手写支持约90%英语); IronBarcode(30多种符号学,MAUI扫描仪); IronQR(由ML驱动,支持批量ReadPdfs)。
  • 实用工具:IronPrint, IronZIP , IronWebScraper。

能力比较

文档处理和邮件合并

使用类型化数据源针对一个DOCX模板进行邮件合并是一个DevExpress标志性的工作负载:RichEditDocumentServer是驱动DevExpress的WinForms Rich Edit控件的引擎。 IronWord将目标放在DOCX创建和操作上,使用的是现代对象图API。

// DevExpress RichEditDocumentServer is the non-visual Word engine powering the DevExpress Rich Edit control.
// NuGet: Install-Package DevExpress.Document.Processor
using DevExpress.XtraRichEdit;

class Program
{
    static void Main()
    {
        using RichEditDocumentServer server = new RichEditDocumentServer();
        server.LoadDocument("welcome-template.docx", DocumentFormat.OpenXml);

        server.Options.MailMerge.DataSource = new[]
        {
            new { CustomerName = "Acme Corp", OrderId = "44213", Total = "$1,498.00" }
        };

        using RichEditDocumentServer output = new RichEditDocumentServer();
        server.MailMerge(output.Document);
        output.SaveDocument("welcome.pdf", DocumentFormat.Pdf);
    }
}
// DevExpress RichEditDocumentServer is the non-visual Word engine powering the DevExpress Rich Edit control.
// NuGet: Install-Package DevExpress.Document.Processor
using DevExpress.XtraRichEdit;

class Program
{
    static void Main()
    {
        using RichEditDocumentServer server = new RichEditDocumentServer();
        server.LoadDocument("welcome-template.docx", DocumentFormat.OpenXml);

        server.Options.MailMerge.DataSource = new[]
        {
            new { CustomerName = "Acme Corp", OrderId = "44213", Total = "$1,498.00" }
        };

        using RichEditDocumentServer output = new RichEditDocumentServer();
        server.MailMerge(output.Document);
        output.SaveDocument("welcome.pdf", DocumentFormat.Pdf);
    }
}
Imports DevExpress.XtraRichEdit

Class Program
    Shared Sub Main()
        Using server As New RichEditDocumentServer()
            server.LoadDocument("welcome-template.docx", DocumentFormat.OpenXml)

            server.Options.MailMerge.DataSource = New Object() {
                New With {
                    .CustomerName = "Acme Corp",
                    .OrderId = "44213",
                    .Total = "$1,498.00"
                }
            }

            Using output As New RichEditDocumentServer()
                server.MailMerge(output.Document)
                output.SaveDocument("welcome.pdf", DocumentFormat.Pdf)
            End Using
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel
// NuGet: Install-Package IronWord
using IronWord;
using IronWord.Models;

class Program
{
    static void Main()
    {
        var doc = new WordDocument();
        var heading = new Paragraph();
        heading.AddChild(new TextRun("Quarterly Report — Q1 2026") { FontSize = 18, Bold = true });
        doc.AddParagraph(heading);

        var body = new Paragraph();
        body.AddChild(new TextRun("Revenue grew 14% quarter-over-quarter."));
        doc.AddParagraph(body);

        doc.SaveAs("report.docx");
    }
}
// NuGet: Install-Package IronWord
using IronWord;
using IronWord.Models;

class Program
{
    static void Main()
    {
        var doc = new WordDocument();
        var heading = new Paragraph();
        heading.AddChild(new TextRun("Quarterly Report — Q1 2026") { FontSize = 18, Bold = true });
        doc.AddParagraph(heading);

        var body = new Paragraph();
        body.AddChild(new TextRun("Revenue grew 14% quarter-over-quarter."));
        doc.AddParagraph(body);

        doc.SaveAs("report.docx");
    }
}
Imports IronWord
Imports IronWord.Models

Class Program
    Shared Sub Main()
        Dim doc As New WordDocument()
        Dim heading As New Paragraph()
        heading.AddChild(New TextRun("Quarterly Report — Q1 2026") With {.FontSize = 18, .Bold = True})
        doc.AddParagraph(heading)

        Dim body As New Paragraph()
        body.AddChild(New TextRun("Revenue grew 14% quarter-over-quarter."))
        doc.AddParagraph(body)

        doc.SaveAs("report.docx")
    End Sub
End Class
$vbLabelText   $csharpLabel

DevExpress模板上的邮件合并可以绑定到任何DataTable源,并支持嵌套合并区域和条件块,是一个强大的模板驱动工作流。 IronWord公开一个段落/文本运行对象图,直接映射到OOXML,是专为从头生成DOCX而设计的; IronWord中的模板驱动工作流通常使用文本运行查找和替换。

Excel处理

两个引擎都涵盖日常Excel工作负载(创建或加载XLSX,计算公式,导出为PDF)并且两者都具有自动公式再计算模式。

// DevExpress.Spreadsheet provides the non-visual Excel engine with full formula support.
using DevExpress.Spreadsheet;

class Program
{
    static void Main()
    {
        using Workbook book = new Workbook();
        Worksheet sheet = book.Worksheets[0];

        sheet["A1"].Value = "Region";
        sheet["B1"].Value = "Revenue";
        sheet["A2"].Value = "EMEA";
        sheet["B2"].Value = 120000;
        sheet["B4"].Formula = "=SUM(B2:B3)";

        book.CalculationOptions.Mode = CalculationMode.Automatic;
        book.SaveDocument("revenue.xlsx", DocumentFormat.OpenXml);
        book.ExportToPdf("revenue.pdf");
    }
}
// DevExpress.Spreadsheet provides the non-visual Excel engine with full formula support.
using DevExpress.Spreadsheet;

class Program
{
    static void Main()
    {
        using Workbook book = new Workbook();
        Worksheet sheet = book.Worksheets[0];

        sheet["A1"].Value = "Region";
        sheet["B1"].Value = "Revenue";
        sheet["A2"].Value = "EMEA";
        sheet["B2"].Value = 120000;
        sheet["B4"].Formula = "=SUM(B2:B3)";

        book.CalculationOptions.Mode = CalculationMode.Automatic;
        book.SaveDocument("revenue.xlsx", DocumentFormat.OpenXml);
        book.ExportToPdf("revenue.pdf");
    }
}
Imports DevExpress.Spreadsheet

Module Program
    Sub Main()
        Using book As New Workbook()
            Dim sheet As Worksheet = book.Worksheets(0)

            sheet("A1").Value = "Region"
            sheet("B1").Value = "Revenue"
            sheet("A2").Value = "EMEA"
            sheet("B2").Value = 120000
            sheet("B4").Formula = "=SUM(B2:B3)"

            book.CalculationOptions.Mode = CalculationMode.Automatic
            book.SaveDocument("revenue.xlsx", DocumentFormat.OpenXml)
            book.ExportToPdf("revenue.pdf")
        End Using
    End Sub
End Module
$vbLabelText   $csharpLabel
// NuGet: Install-Package IronXL.Excel
using IronXL;

class Program
{
    static void Main()
    {
        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet sheet = workbook.CreateWorkSheet("Sales");

        sheet["A1"].Value = "Product";
        sheet["B1"].Value = "Units";
        sheet["A2"].Value = "Widget A";
        sheet["B2"].Value = 1024;
        sheet["A3"].Value = "Widget B";
        sheet["B3"].Value = 768;
        sheet["B4"].Formula = "=SUM(B2:B3)";

        workbook.EvaluateAll();
        workbook.SaveAs("sales.xlsx");
    }
}
// NuGet: Install-Package IronXL.Excel
using IronXL;

class Program
{
    static void Main()
    {
        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet sheet = workbook.CreateWorkSheet("Sales");

        sheet["A1"].Value = "Product";
        sheet["B1"].Value = "Units";
        sheet["A2"].Value = "Widget A";
        sheet["B2"].Value = 1024;
        sheet["A3"].Value = "Widget B";
        sheet["B3"].Value = 768;
        sheet["B4"].Formula = "=SUM(B2:B3)";

        workbook.EvaluateAll();
        workbook.SaveAs("sales.xlsx");
    }
}
Imports IronXL

Module Program
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
        Dim sheet As WorkSheet = workbook.CreateWorkSheet("Sales")

        sheet("A1").Value = "Product"
        sheet("B1").Value = "Units"
        sheet("A2").Value = "Widget A"
        sheet("B2").Value = 1024
        sheet("A3").Value = "Widget B"
        sheet("B3").Value = 768
        sheet("B4").Formula = "=SUM(B2:B3)"

        workbook.EvaluateAll()
        workbook.SaveAs("sales.xlsx")
    End Sub
End Module
$vbLabelText   $csharpLabel

DevExpress.Spreadsheet在自DevExpress的Spreadsheet视觉控件同样的引擎支持下,投入了巨大的深度在图表类型、数据透视表和条件格式化。 IronXL覆盖了大多数后台XLSX工作所需的读/写/重算范围,具有索引器风格的单元格API(sheet["B4"].Formula = …, workbook.EvaluateAll())和更轻的依赖性。

PDF生成和合并

PDF是DevExpress API样式最明显是命令式的地方。PdfDocumentProcessor通过一个文档处理器对象构建和编辑PDF,该对象加载、修改和保存。 IronPDF使用一个真实的Chrome引擎从HTML渲染PDF。

// PdfDocumentProcessor merges, splits, and signs PDFs without Adobe.
using DevExpress.Pdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<PdfDocumentProcessor> parts = new List<PdfDocumentProcessor>();
        foreach (string path in new[] { "invoice.pdf", "terms.pdf", "appendix.pdf" })
        {
            PdfDocumentProcessor part = new PdfDocumentProcessor();
            part.LoadDocument(path);
            parts.Add(part);
        }

        using PdfDocumentProcessor combined = new PdfDocumentProcessor();
        combined.CreateEmptyDocument("merged.pdf");

        foreach (PdfDocumentProcessor part in parts)
        {
            combined.AppendDocument(part.Document);
            part.Dispose();
        }

        combined.SaveDocument();
    }
}
// PdfDocumentProcessor merges, splits, and signs PDFs without Adobe.
using DevExpress.Pdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<PdfDocumentProcessor> parts = new List<PdfDocumentProcessor>();
        foreach (string path in new[] { "invoice.pdf", "terms.pdf", "appendix.pdf" })
        {
            PdfDocumentProcessor part = new PdfDocumentProcessor();
            part.LoadDocument(path);
            parts.Add(part);
        }

        using PdfDocumentProcessor combined = new PdfDocumentProcessor();
        combined.CreateEmptyDocument("merged.pdf");

        foreach (PdfDocumentProcessor part in parts)
        {
            combined.AppendDocument(part.Document);
            part.Dispose();
        }

        combined.SaveDocument();
    }
}
Imports DevExpress.Pdf
Imports System.Collections.Generic

Module Program
    Sub Main()
        Dim parts As New List(Of PdfDocumentProcessor)()
        For Each path As String In {"invoice.pdf", "terms.pdf", "appendix.pdf"}
            Dim part As New PdfDocumentProcessor()
            part.LoadDocument(path)
            parts.Add(part)
        Next

        Using combined As New PdfDocumentProcessor()
            combined.CreateEmptyDocument("merged.pdf")

            For Each part As PdfDocumentProcessor In parts
                combined.AppendDocument(part.Document)
                part.Dispose()
            Next

            combined.SaveDocument()
        End Using
    End Sub
End Module
$vbLabelText   $csharpLabel
// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/merge-or-split-pdfs/
using IronPdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // PdfDocument.Merge accepts an array or params list of PdfDocument objects.
        // Order is preserved, and metadata, bookmarks, and annotations are retained.
        string[] inputs = { "invoice.pdf", "terms.pdf", "appendix.pdf" };

        List<PdfDocument> parts = new List<PdfDocument>();
        foreach (string path in inputs)
            parts.Add(PdfDocument.FromFile(path));

        PdfDocument merged = PdfDocument.Merge(parts.ToArray());
        merged.SaveAs("contract-package.pdf");
    }
}
// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/merge-or-split-pdfs/
using IronPdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // PdfDocument.Merge accepts an array or params list of PdfDocument objects.
        // Order is preserved, and metadata, bookmarks, and annotations are retained.
        string[] inputs = { "invoice.pdf", "terms.pdf", "appendix.pdf" };

        List<PdfDocument> parts = new List<PdfDocument>();
        foreach (string path in inputs)
            parts.Add(PdfDocument.FromFile(path));

        PdfDocument merged = PdfDocument.Merge(parts.ToArray());
        merged.SaveAs("contract-package.pdf");
    }
}
Imports IronPdf
Imports System.Collections.Generic

Module Program
    Sub Main()
        ' PdfDocument.Merge accepts an array or params list of PdfDocument objects.
        ' Order is preserved, and metadata, bookmarks, and annotations are retained.
        Dim inputs As String() = {"invoice.pdf", "terms.pdf", "appendix.pdf"}

        Dim parts As New List(Of PdfDocument)()
        For Each path As String In inputs
            parts.Add(PdfDocument.FromFile(path))
        Next

        Dim merged As PdfDocument = PdfDocument.Merge(parts.ToArray())
        merged.SaveAs("contract-package.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

DevExpress PdfDocumentProcessor公开一个细粒度的低级页面API和一个一流的数字签名API用于精细的PDF对象模型工作。 IronPDF的PdfDocument.Merge覆盖了直接在PDF对象模型上进行的合并/拆分/掩码/签名操作:仅在创建PDF时才进行HTML往返,而不是在现有PDF的操作中。 两个引擎本地编辑PDF; API表面是一个区分点。

PowerPoint生成

PowerPoint生成是一个全方位的DevExpress能力。 Iron Suite包括IronPPT用于PPTX创建和操控。

// DevExpress PowerPoint Presentation API creates and edits PPTX server-side.
using DevExpress.Office.Drawing;
using DevExpress.Presentation;

class Program
{
    static void Main()
    {
        using Presentation pres = new Presentation();
        Slide slide = pres.Slides.Add();

        Shape title = slide.Shapes.AddTextBox(50, 50, 600, 60);
        title.TextFrame.Text = "Quarterly Update";

        Shape body = slide.Shapes.AddTextBox(50, 140, 600, 80);
        body.TextFrame.Text = "Generated from .NET — no PowerPoint dependency.";

        pres.SaveDocument("update.pptx", PresentationDocumentFormat.OpenXml);
    }
}
// DevExpress PowerPoint Presentation API creates and edits PPTX server-side.
using DevExpress.Office.Drawing;
using DevExpress.Presentation;

class Program
{
    static void Main()
    {
        using Presentation pres = new Presentation();
        Slide slide = pres.Slides.Add();

        Shape title = slide.Shapes.AddTextBox(50, 50, 600, 60);
        title.TextFrame.Text = "Quarterly Update";

        Shape body = slide.Shapes.AddTextBox(50, 140, 600, 80);
        body.TextFrame.Text = "Generated from .NET — no PowerPoint dependency.";

        pres.SaveDocument("update.pptx", PresentationDocumentFormat.OpenXml);
    }
}
Imports DevExpress.Office.Drawing
Imports DevExpress.Presentation

Class Program
    Shared Sub Main()
        Using pres As New Presentation()
            Dim slide As Slide = pres.Slides.Add()

            Dim title As Shape = slide.Shapes.AddTextBox(50, 50, 600, 60)
            title.TextFrame.Text = "Quarterly Update"

            Dim body As Shape = slide.Shapes.AddTextBox(50, 140, 600, 80)
            body.TextFrame.Text = "Generated from .NET — no PowerPoint dependency."

            pres.SaveDocument("update.pptx", PresentationDocumentFormat.OpenXml)
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel
// NuGet: Install-Package IronPPT
// Docs: https://ironsoftware.com/csharp/ppt/docs/
using IronPPT;
using IronPPT.Models;

class Program
{
    static void Main()
    {
        // PresentationDocument is the entry point for PPTX creation in IronPPT.
        // No Microsoft PowerPoint or Office Interop required.
        PresentationDocument document = new PresentationDocument();

        Slide titleSlide = new Slide();
        titleSlide.AddText("Quarterly Update");
        document.AddSlide(titleSlide);

        Slide bodySlide = new Slide();
        bodySlide.AddText("Generated from .NET, no PowerPoint dependency.");
        document.AddSlide(bodySlide);

        document.Save("update.pptx");
    }
}
// NuGet: Install-Package IronPPT
// Docs: https://ironsoftware.com/csharp/ppt/docs/
using IronPPT;
using IronPPT.Models;

class Program
{
    static void Main()
    {
        // PresentationDocument is the entry point for PPTX creation in IronPPT.
        // No Microsoft PowerPoint or Office Interop required.
        PresentationDocument document = new PresentationDocument();

        Slide titleSlide = new Slide();
        titleSlide.AddText("Quarterly Update");
        document.AddSlide(titleSlide);

        Slide bodySlide = new Slide();
        bodySlide.AddText("Generated from .NET, no PowerPoint dependency.");
        document.AddSlide(bodySlide);

        document.Save("update.pptx");
    }
}
Imports IronPPT
Imports IronPPT.Models

Module Program
    Sub Main()
        ' PresentationDocument is the entry point for PPTX creation in IronPPT.
        ' No Microsoft PowerPoint or Office Interop required.
        Dim document As New PresentationDocument()

        Dim titleSlide As New Slide()
        titleSlide.AddText("Quarterly Update")
        document.AddSlide(titleSlide)

        Dim bodySlide As New Slide()
        bodySlide.AddText("Generated from .NET, no PowerPoint dependency.")
        document.AddSlide(bodySlide)

        document.Save("update.pptx")
    End Sub
End Module
$vbLabelText   $csharpLabel

DevExpress的Presentation API反映了其他Office File APIs的命令式风格:加载/修改/保存,形状明确地添加到幻灯片。IronPPT在Iron Suite中覆盖了PPTX的创建和与捆绑包的其余部分具有相同惯用感觉的常见操作表面。 对于那些PPTX需求保持在标准报告甲板生成内部的团队,两者都足够—深度甲板编辑及动画和过渡是DevExpress的Presentation入投投资的案例。

为何选择Iron Suite进行代码优先的.NET文档自动化

.NET后端或没有现有DevExpress UI投资的ISV团队来说,Iron Suite更符合需求。 十种产品,一个SKU,永久拥有,公开的USD定价,OCR和识别与PDF和Office一起包含。对代码优先.NET文档工作的结构边缘重要:

  • 永久拥有对年订阅在过期后失去更新访问产生的经济TCO差异在3-5年内重大
  • 公开USD定价所有等级上无需向经销商或请求报价
  • 更广泛捆绑:10个产品覆盖创建和识别(OCR+ Barcode + QR + WebScraper + ZIP + Print)与DevExpress的7个子API相比
  • 无需UI生态买入:Iron纯售后端SDKs,没有向UI组件进行升级销售
  • 对授权席位免版税部署,无论是服务器还是域部署都无需计数; SaaS/OEM通过一个Redistribution Add-On
  • HTML优先的PDF生成因此PDF匹配用户在屏幕上看到Chrome渲染

Iron Suite和DevExpress Office File API有什么区别

  • 永久对订阅。 Iron Suite开发者永久; DevExpress是一个年订阅,失效意味着失去更新访问。 在3-5年内TCO差距很重要。
  • 没有UI生态系统增加销量。 DevExpress的强定价杠杆是在Universal订阅捆绑Office File API。 Iron仅作为后端SDK出售,升级没有UI控件。
  • 开箱即用的识别栈。 IronOCR,IronBarcode,IronQR,IronWebScraper,IronZIP,IronPrint都在Iron Suite中。 DevExpress有条形码生成,但在Office File API SKU中没有OCR引擎。
  • 公共USD定价对DevExpress仅通过经销商渠道或报价请求定价。
  • 捆绑的网络抓取器和ZIP归档器。 IronWebScraper和IronZIP覆盖没有等效于DevExpress的Office File API的相邻后端工作负载。
  • HTML优先的PDF生成真实浏览器保真度(CSS、网络字体、SVG),与DevExpress的PdfDocumentProcessor命令式API相比。

结论

DevExpress Office File API和Iron Suite服务于不同的采购方向。 DevExpress引擎在捆绑进一个团队已经拥有的DXperience或Universal订阅中最具经济吸引力,对于UI控件,作为一个附加值引擎到达。 Iron Suite纯粹作为后端库:十个产品,一个永久开发者许可证,公开USD价格,OCR和识别包含在捆绑中,与PDF和Office输出一起。 对于仅运行日常文档工作负载的后端.NET团队,Iron Suite从$2,998起,在ironsoftware.com/csharp/suite覆盖了该表面。

请注意DevExpress Office File API是其最终所有者的注册商标。 本站不与DevExpress Office File API关联、得章承认或赞助。 所有产品名称、徽标和品牌均为各自所有者的财产。 比较仅供参考,反映撰写时公开可用的信息。