COMPARAISON

XFINIUM.PDF vs IronPDF : Guide de comparaison technique

L'API DevExpress Office File est économiquement plus attractive lorsqu'elle est livrée en bundle à l'intérieur des abonnements DXperience ou Universal, où les moteurs de documents arrivent essentiellement gratuitement aux côtés des contrôles d'interface utilisateur. Acheté indépendamment via des canaux de revendeurs (la page d'achat de DevExpress est protégée contre le scraping public), c'est un abonnement annuel par développeur à environ 587,99 $ pour un nouveau siège ou 1 175,99 $/an lors du renouvellement.Iron Suiteest vendu uniquement sous forme de SDKs backend : dix produitsIron Softwareen un seul package perpétuel par développeur à partir de $2,998, libre de droits pour les sièges sous licence, avec la redistribution SaaS et OEM couverte par un Add-On de Redistribution unique.

Cette comparaison commence par ce que repose réellement sur une décision menée par l'approvisionnement : si l'équipe est déjà sur DevExpress UI, comment chaque suite est tarifée sur un horizon pluriannuel, et ce qui est réellement dans la boîte. Les détails des capacités et du code suivent ci-dessous pour les ingénieurs qui vont le mettre en œuvre.

Comparaison en un coup d'œil

Dimension DevExpress Office File API Iron Suite
Positionnement tarifaire Nouvelle licence à partir de ~587,99 $ / abonnement à partir de ~1 175,99 $ par développeur/an (liste des revendeurs, ComponentSource), la propre page d'achat du vendeur est protégée Lite $2,998 / Plus $4,498 / Professional $8,998 / Unlimited $17,998 (personnalisé Enterprise); tous les 10 produits pour le prix de 2
Modèle de licence Abonnement annuel par développeur ; déploiement libre de redevances ; inclus dans les bundles DXperience/Universal Perpétuel par développeur; libre de droits pour les sièges licenciés; SaaS/OEM via module complémentaire de redistribution
Composants dans le bundle 7 sous-APIs (Word, Tableur, PDF, PowerPoint, Barre Code, Signature Numérique, extensions AI) 10 products (IronPDF, IronWord, IronXL, IronPPT, IronOCR, IronBarcode, IronQR, IronPrint, IronZIP, IronWebScraper)
Couverture de format/capacité DOCX, XLSX, PDF, PPTX + code-barres + signature numérique + extensions de documents AI PDF, Office, OCR, Barcode/QR, ZIP, Print, Web Scraping
Multi-plateforme / cloud Windows, Linux, macOS, Docker, Azure, AWS Windows, Linux, macOS, Docker, Azure, AWSLambda
Support d'exécution .NET .NET 8 / 9 / 10, .NET Framework 4.6.2+ .NET Framework 4.6.2+, .NET Core, .NET 6/7/8/9/10
Marché cible Boutiques .NET de taille moyenne et entreprises, surtout les clients DevExpress existants UI/Reporting Développeurs indépendants, PME, équipes .NET de taille moyenne, ISV
Fournisseur Developer Express Inc. (DevExpress) Iron Software

L'acheteur décide en demandant : l'équipe paie-t-elle déjà pour DevExpress UI (abonnés Universal, utilisateurs XtraReports, acheteurs de contrôles WinForms/WPF) ? Si oui, l'API Office File arrive en bundle essentiellement gratuitement, et c'est l'argument économique le plus fort pour rester sur DevExpress. Si non,Iron Suiteen tant que bundle backend autonome à un prix perpétuel couvrant la même surface Office, PDF, reconnaissance et utilitaire sans achat de l'écosystème UI.

Tarification et licences

L'API DevExpress Office File est vendue comme un abonnement annuel par développeur. La propre page d'achat du vendeur ne met pas en avant les prix USD publics au scraping, mais la liste des revendeurs sur ComponentSource pour la dernière version (v25.2.7) montre de nouvelles licences à partir de 587,99 $ et abonnement/renouvellement à partir de 1 175,99 $ par développeur/an. Chaque développeur est couvert sur plusieurs machines sans compter par serveur ou par domaine. L'API Office File est aussi incluse dans les abonnements DXperience et Universal ; pour les équipes déjà sur Universal, les moteurs de documents sont effectivement gratuits de coût SKU incrémentiel.

Iron Suite est vendu sous forme de licence perpétuelle unique par développeur à cinq niveaux (Lite, Plus, Professional, Unlimited et Enterprise) à partir de $2,998, avec le positionnement marketing de "tous les 10 produits pour le prix de 2, économisez 75 %." La licence de base est libre de droits pour les sièges, emplacements ou projets sous licence, et la redistribution SaaS, OEM ou distribuée au-delà de la licence de base utilise un Add-On de Redistribution unique, tarifé séparément.

Les acheteurs déjà sur DevExpress Universal passent à l'API de fichiers Office en tant que valeur ajoutée groupée sans coût SKU incrémental. Les acheteurs sans dépendance DevExpress UI passent àIron Suiteen tant que package perpétuel autonome à $2,998 pour le niveau Lite, avec la même surface Office et PDF plus la reconnaissance (OCR, Barcode, QR) incluse.

Qu'est-ce que l'API DevExpress Office File

DevExpress Office File API est le moteur de document non visuel qui alimente les contrôles Rich Edit, Spreadsheet et PDF Viewer de DevExpress, vendu comme un SDK autonome côté serveur par Developer Express Inc. C'est l'évolution renommée de l'ancien produit DevExpress Document Server et s'intègre proprement avec le reste de la famille de composants DevExpress (XtraReports, Snap, les contrôles UI WinForms/WPF). La ligne de marketing actuelle sur la page produit est "APIs de fichiers Office & PDF for .NET (DOCx, XLSx, PDF, PPTx), par DevExpress (C# & VB.NET et bientôt Java)." La dernière version de référence est DevExpress.Document.Processor 25.2.7, publiée le 06/05/2026, avec la prochaine version majeure v26.1 prévue pour juin 2026 selon la feuille de route publique.

Composants et capacités clés regroupés :

  • Word Processing Document API : lecture/écriture de DOCX, fusion de courrier, recherche-et-remplacement
  • Spreadsheet Document API : lecture/écriture de XLSX avec recalcul complet de formule
  • PDF Document API : créer, éditer, fusionner, sécuriser, signer des PDFs
  • PowerPoint Presentation API : lecture/écriture de PPTX
  • API de génération de codes-barres : rendu de code-barres à l'intérieur du bundle
  • API de signature numérique : signature de PDF de première classe
  • Extensions de traitement de document propulsées par l'AI : nouvelle direction dans la feuille de route v26.1

Qu'est-ce qu'Iron Suite

Iron Suite est le SDK de document .NET autonome de l'Iron Software, vendu uniquement comme des bibliothèques backend sans dépendance aux contrôles UI et sans abonnement compagnon. Dix produits sont livrés ensemble sous une seule licence perpétuelle par développeur à cinq niveaux de $2,998, libre de droits pour les sièges sous licence. Les redistributions SaaS et OEM utilisent un module complémentaire de redistribution distinct.

Les dix composants, regroupés par pertinence pour un workflow programmatique Office et PDF :

  • Pile Office : IronWord (DOCX avec graphe d'objet paragraphe et exécution de texte, extraction de contenu, style personnalisé) ; IronXL (XLSX avec recalcul de formule, graphiques, tableaux croisés, formatage conditionnel) ; IronPPT (création et édition de PPTX).
  • Génération de PDF (IronPDF) : HTML-à-PDF et URL-à-PDF, fusion et division natives, signature PKCS#12 plus HSM plus TSA alignée sur eIDAS et ESIGN, PDF/A à PDF/A-4, PDF/UA-1 et PDF/UA-2, chiffrement AES, remplissage et aplatissement AcroForm, gestion de polices, rasterisation, compression et linéarisation.
  • Reconnaissance : IronOCR (Tesseract 5, 125+ langues, écriture manuscrite à ~90 % anglais) ; IronBarcode (30+ symbologies, MAUI scanner); IronQR (alimenté par ML avec batch ReadPdfs).
  • Utility: IronPrint, IronZIP, IronWebScraper.

Comparaison de capacités

Traitement de texte et fusion de courrier

Le publipostage contre un modèle DOCX en utilisant une source de données typée est une charge de travail signature de DevExpress : RichEditDocumentServer est le moteur qui alimente le contrôle WinForms Rich Edit de DevExpress. IronWord cible la création et la manipulation de DOCX avec une API de graphe d'objet moderne.

// 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

Le publipostage DevExpress contre un modèle se lie à n'importe quelle source DataTable et prend en charge les régions de fusion imbriquées et les blocs conditionnels, un flux de travail fortement basé sur les modèles. IronWord expose un graphe d'objet paragraphe/exécution de texte qui se mappe directement à OOXML et est construit dans le but de générer DOCX à partir de zéro ; les workflows axés sur les modèles dans IronWord utilisent généralement la recherche-et-remplacement sur les exécutions de texte.

Traitement Excel

Les deux moteurs couvrent la charge de travail Excel quotidienne (création ou chargement de XLSX, calcul de formules, exportation vers PDF) et les deux ont des modes de recalcul automatique de formules.

// 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 a investi de la profondeur dans les types de graphiques, les tableaux de pivot et le formatage conditionnel depuis que le même moteur alimente le contrôle visuel Spreadsheet de DevExpress. IronXL couvre la portée de lecture/écriture/recalque dont la plupart des travaux backend XLSX ont besoin, avec une API de cellule de style indexeur (sheet["B4"].Formula = …, workbook.EvaluateAll()) et une empreinte de dépendance plus légère.

Génération et fusion PDF

Le PDF est là où le style d'API de DevExpress est le plus clairement impératif. PdfDocumentProcessor construit et édite des PDFs à travers un objet processeur de document qui charge, modifie et enregistre. IronPDF rend des PDFs à partir de HTML en utilisant un moteur réel de Chrome.

// 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 expose une API de page à bas niveau granulaire et une API de signature numérique de première classe pour un travail de modèle d'objet PDF à grain fin. IronPDF's PdfDocument.Merge couvre les mêmes opérations de fusion/séparation/annulations/signatures directement sur le modèle d'objet PDF : le cycle aller-retour HTML ne se produit que lors de la création d'un PDF à partir de HTML, pas pendant la manipulation de PDF existants. Les deux moteurs éditent le PDF en natif ; la surface de l'API est le différenciateur.

Génération de PowerPoint

La génération de PowerPoint est une capacité de première classe de DevExpress.Iron Suiteinclut IronPPT pour la création et la manipulation de 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

L'API Presentation de DevExpress reflète le style impératif des autres APIs de fichiers Office : chargement/modification/enregistrement, les formes sont ajoutées explicitement à une diapositive. IronPPT dansIron Suitecouvre la création de PPTX et la surface de manipulation commune avec le même ressenti idiomatique que le reste du bundle. Pour les équipes dont les exigences PPTX restent à l'intérieur de la génération de decks de rapport standard, l'un ou l'autre suffit — l'édition en profondeur de deck avec animations et transitions est le cas dans lequel DevExpress Presentation investit.

Pourquoi choisirIron Suitepour l'automatisation de documents .NET axée sur le code

Pour l'équipe backend .NET ou l'ISV sans un investissement DevExpress UI existant,Iron Suiteest l'ajustement plus propre. Dix produits, un SKU, propriété perpétuelle, tarification USD publique, avec OCR et reconnaissance inclus à côté de PDF et Office. Bords structuraux qui comptent pour le travail de document .NET orienté code-first :

  • Propriété perpétuelle vs abonnement annuel qui perd l'accès aux mises à jour en cas de défaillance, une différence TCO matérielle sur 3-5 ans
  • Tarification USD publique pour chaque tier sans avoir besoin d'un revendeur ou d'un devis
  • Bundle plus large : 10 produits couvrant la création ET la reconnaissance (OCR + Barcode + QR + WebScraper + ZIP + Print) vs les 7 sous-APIs de DevExpress
  • Aucun achat de l'écosystème UI : Iron est vendu uniquement comme SDKs backend, pas de vente incitative en contrôles UI
  • Déploiement libre de redevances pour les sièges sous licence, pas de comptage par serveur/domaine dans les deux sens ; SaaS/OEM via un module complémentaire de redistribution unique
  • Génération de PDF orientée HTML pour que le PDF corresponde au rendu Chrome que l'utilisateur voit à l'écran

CommentIron Suiteest-il différent de DevExpress Office File API

  • Perpétuel vs abonnement.Iron Suiteest perpétuel par développeur ; DevExpress est un abonnement annuel où la défaillance signifie la perte d'accès aux mises à jour. Sur 3-5 ans, l'écart TCO compte.
  • Pas de vente incitative de l'écosystème UI. Le levier de tarification le plus fort de DevExpress est l'inclusion de l'API Office File dans l'abonnement Universal. Iron est vendu uniquement comme SDKs backend sans échelle ascendante vers les contrôles UI.
  • Pile de reconnaissance prête à l'emploi. IronOCR, IronBarcode, IronQR, IronWebScraper, IronZIP, IronPrint se trouvent tous dans Iron Suite. DevExpress a la génération de code-barres mais pas de moteur OCR dans le SKU de l'API Office File.
  • Tarification USD publique vs tarification DevExpress uniquement via des canaux de revendeurs ou des demandes de devis.
  • Explorateur web intégré et archiveur ZIP. IronWebScraper et IronZIP couvrent des charges de travail adjacentes backend qui n'ont pas d'équivalent dans l'API Office File de DevExpress.
  • Génération de PDF orientée HTML avec fidélité de navigateur réel (CSS, polices web, SVG) vs l'API impérative de DevExpress PdfDocumentProcessor.

Conclusion

L'API DevExpress Office File etIron Suiteservent différents mouvements d'achat. Les moteurs de DevExpress sont économiquement plus attractifs lorsqu'ils sont inclus dans un abonnement DXperience ou Universal que l'équipe possède déjà pour les contrôles UI, avec les moteurs arrivant comme une valeur ajoutée.Iron Suiteest vendue uniquement comme bibliothèques backend : dix produits, une licence perpétuelle par développeur, tarification USD publique, avec OCR et reconnaissance inclus dans le bundle aux côtés de la sortie PDF et Office. Pour les équipes .NET uniquement backend exécutant des charges de travail documentaires quotidiennes à un coût fixe par développeur,Iron Suitede $2,998 sur ironsoftware.com/csharp/suite couvre la surface.

Veuillez noterDevExpress Office File API est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié, endossé, ou sponsorisé par DevExpress Office File API. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont à titre informatif uniquement et reflètent les informations publiquement disponibles au moment de l'écriture.