비교

XFINIUM.PDF vs IronPDF: 기술 비교 가이드

DevExpress Office File API는 DXperience 또는 Universal 구독 내 번들된 경우가 가장 경제적으로 매력적이며, 이 경우 문서 엔진이 UI 컨트롤과 함께 사실상 무료로 제공됩니다. 재판매자 채널을 통해 단독으로 구입하는 경우(DevExpress 구매 페이지는 공개 스크래핑에서 보호됨), 새 좌석의 경우 약 $587.99, 갱신 시 $1,175.99/년의 연간 개발자당 구독이 필요합니다. Iron Suite는 오로지 백엔드 SDK로 판매됩니다: $2,998부터 시작하는 1명의 영구 개발자 번들로, 라이선스 좌석에 대해 로열티가 없으며, SaaS 및 OEM 재배포는 단일 재배포 추가 기능으로 커버됩니다.

이 비교는 조달 주도 결정을 실제로 좌우하는 요소: 팀이 이미 DevExpress UI를 사용 중인지, 다년간의 수평선에서 각각의 스위트가 어떻게 가격이 책정되는지, 상자에 실제로 무엇이 있는지를 강조합니다. 능력 상세 정보 및 코드는 이를 배포할 엔지니어들을 위해 아래에 따라옵니다.

간단한 비교

차원DevExpress Office File APIIron Suite
가격 위치새 라이선스는 ~$587.99 / 구독은 ~$1,175.99 개발자당/년 (리셀러 목록, ComponentSource), 공급자의 자체 구매 페이지는 보호됨Lite $2,998 / Plus $4,498 / Professional $8,998 / Unlimited $17,998 (Enterprise custom); 2개의 가격으로 10개의 모든 제품 제공
라이선스 모델연간 개발자당 구독; 로열티 무료 배포; DXperience/Universal 번들에 포함영구 개발자당; 라이센스 좌석에 대해 로열티가 없음; 재배포 추가 기능을 통한 SaaS/OEM
번들 내 구성 요소7개의 서브 API (Word, Spreadsheet, PDF, PowerPoint, Barcode, Digital Signature, AI 확장)10 products (IronPDF, IronWord, IronXL, IronPPT, IronOCR, IronBarcode, IronQR, IronPrint, IronZIP, IronWebScraper)
형식/기능 범위DOCX, XLSX, PDF, PPTX + 바코드 + 디지털 서명 + AI 문서 확장PDF, Office, OCR, Barcode/QR, ZIP, Print, 웹 스크래핑
크로스 플랫폼 / 클라우드윈도우, 리눅스, macOS, Docker, Azure, AWS윈도우, 리눅스, 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
타겟 시장중간 시장 및 Enterprise .NET 샵, 특히 기존 DevExpress UI/리포팅 고객독립 개발자, SMB, 중간 시장 .NET 팀, ISV
공급업체Developer Express Inc. (DevExpress)Iron Software

구매자는 묻습니다: 팀이 이미 DevExpress UI를 위해 비용을 지불하고 있는지(Universal 구독자, XtraReports 사용자, WinForms/WPF 컨트롤 구매자)? 만약 그렇다면, Office File API는 사실상 추가 비용 없이 번들되어 도착하며, 이는 DevExpress에 머무르는 가장 강력한 경제적 이유입니다. 만약 아니라면, Iron Suite는 UI-에코시스템 구매 없이 평평한 영구 가격으로 동일한 오피스, PDF, 인식, 유틸리티 표면을 포괄하는 독립형 백엔드 번들로 제공됩니다.

가격 및 라이선스

DevExpress Office File API는 연간 개발자당 구독으로 판매됩니다. 공급자의 자체 구매 페이지는 공개 USD 가격을 스크래핑에서 표면화하지 않지만, 최신 릴리스(v25.2.7)에 대한 ComponentSource의 리셀러 목록은 새 라이선스가 $587.99에서, 구독/갱신은 개발자당 $1,175.99/년에서 시작된다고 표시됩니다. 각 개발자는 여러 장치에 걸쳐 서버 또는 도메인당 카운팅 없이 커버됩니다. Office File API도 DXperience와 Universal 구독에 번들되어 있으며; 이미 Universal에 있는 팀의 경우, 문서 엔진은 추가 SKU 비용 없이 효과적으로 무료입니다.

Iron Suite는 $2,998부터 시작하는 5가지 단계 수준(라이센스 좌석, 위치 또는 프로젝트에 대한 로열티가 없는 기본 라이선스)에서 모든 10개 제품을 2개의 가격으로 제공하며, 75%를 절약하는 '모든 10개 제품을 2개의 가격으로, 75%를 절약하세요.'라는 마케팅 포지셔닝을 가지고 있습니다. SaaS, OEM, 또는 기본 라이선스를 초과한 재배포는 단일, 개별 가격의 Redistribution Add-On을 사용합니다.

이미 DevExpress Universal을 구입한 구매자는 추가 반품 없이 SKU 비용 추가 없이 번들된 부가 가치로서 Office File API로 이동합니다. DevExpress UI 의존성이 없는 구매자는 Lite 단계에서 $2,998에 Iron Suite를 독립적인 영구 번들로 선택하며, OCR, Barcode, QR 인식이 포함된 동일한 Office 및 PDF 표면을 제공합니다.

DevExpress Office File API란 무엇인가

DevExpress Office File API는 Developer Express Inc.에서 판매하는 독립형 서버 측 SDK로, DevExpress의 Rich Edit, Spreadsheet 및 PDF 뷰어 컨트롤을 구동하는 비시각적 문서 엔진입니다. 이전 DevExpress Document Server 제품의 개명된 발전이며, DevExpress 구성 요소 가족 (XtraReports, Snap, WinForms/WPF UI 컨트롤)과 함께 깔끔하게 통합됩니다. 현재 제품 페이지의 마케팅 태그라인은 'DevExpress (C# 및 VB.NET 그리고 곧 Java)에서 제공하는 .NET용 Office 및 PDF File API (DOCx, XLSx, PDF, PPTx)'입니다. 최신 참조 릴리스는 2026-05-06에 게시된 DevExpress.Document.Processor 25.2.7이며, 공개 로드맵에 따라 2026년 6월에 차기 메이저 v26.1가 예정되어 있습니다.

주요 번들 구성 요소 및 기능:

  • 문서 처리 문서 API: DOCX 읽기/쓰기, 메일 병합, 검색 및 대체
  • 스프레드시트 문서 API: XLSX 읽기/쓰기, 완전한 수식 재계산과 함께 제공
  • PDF 문서 API: PDF 생성, 편집, 병합, 보안, 서명
  • PowerPoint 프레젠테이션 API: PPTX 읽기/쓰기
  • 바코드 생성 API: 번들 내에 바코드 렌더링
  • 디지털 서명 API: 일류 PDF 서명
  • AI 기반 문서 처리 확장: v26.1 로드맵의 새로운 방향

Iron Suite란

Iron Suite는 Iron Software의 독립형 .NET 문서 SDK로, UI 컨트롤 의존성 없이 순수하게 백엔드 라이브러리로 판매되며 동반 구독이 없습니다. 열 명의 제품이 한 개의 영구적 개발자 당 라이선스 아래 $2,998부터 시작하는 5가지 단계 수준에서 함께 제공되며, 라이선스 좌석에 대해 로열티가 없습니다. SaaS 및 OEM 재배포는 별도의 재배포 추가 기능을 사용합니다.

각각의 프로그래밍 Office 및 PDF 워크플로와의 관련성에 따라 그룹화된 10개 구성 요소:

  • 오피스 스택: IronWord (단락 및 텍스트 실행 개체 그래프, 콘텐츠 추출, 사용자 정의 스타일을 가진 DOCX); IronXL (수식 재계산, 차트, 피벗 테이블, 조건부 서식을 가진 XLSX); IronPPT (PPTX 생성 및 편집).
  • PDF 생성 (IronPDF): HTML-to-PDF 및 URL-to-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 (배치 ReadPdfs가 포함된 ML로 강화).
  • Utility: IronPrint, IronZIP, IronWebScraper.

기능 비교

문서 처리 및 메일 병합

입력된 데이터 소스를 사용하여 DOCX 템플릿을 기반으로 메일 병합하는 것은 DevExpress의 시그니처 작업 로드입니다: RichEditDocumentServer는 DevExpress의 WinForms Rich Edit 컨트롤을 지원하는 엔진입니다. IronWord는 모던 개체그래프 API로 DOCX 생성 및 조작을 목표로 합니다.

// 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 워크로드(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 스프레드시트 시각적 컨트롤을 구동하는 동일한 엔진으로 차트 유형, 피벗 테이블 및 조건부 서식에 깊이를 투자하고 있습니다. IronXL은 대부분의 백엔드 XLSX 작업에 필요한 읽기/쓰기/재계산 범위를 다루며, 인덱서 스타일 셀 API (sheet["B4"].Formula = …, workbook.EvaluateAll())와 가벼운 종속성 지문을 제공합니다.

PDF 생성 및 병합

PDF는 DevExpress의 API 스타일이 가장 명확히 명령형으로 나타나는 곳입니다. PdfDocumentProcessor는 로드, 수정 및 저장하는 문서 프로세서 개체를 통해 PDF를 작성하고 편집합니다. IronPDF는 HTML에서 실시간 Chrome 엔진을 사용하여 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는 미세 조정된 PDF 객체 모델 작업을 위한 세분화된 저수준 페이지 API 및 일류 디지털 서명 API를 제공합니다. IronPDF의 PdfDocument.Merge는 PDF 객체 모델에서 직접 병합/분할/편집/서명 작업을 다룹니다: HTML 왕복은 HTML에서 PDF를 생성할 때만 발생하며, 기존 PDF를 조작할 때는 발생하지 않습니다. 두 엔진 모두 PDF를 네이티브로 편집합니다; API 표면이 차이를 만듭니다.

PowerPoint 생성

PowerPoint 생성은 DevExpress의 일류 기능입니다. Iron Suite에는 PPTX 생성 및 조작을 위한 IronPPT가 포함되어 있습니다.

// 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의 프레젠테이션 API는 다른 오피스 파일 API의 명령형 스타일을 반영합니다: 로드/수정/저장, 도형은 슬라이드에 명시적으로 추가됩니다. Iron Suite의 IronPPT는 번들의 나머지와 같은 특유의 느낌으로 PPTX 생성 및 일반적인 조작 표면을 커버합니다. PPTX 요구 사항이 표준 보고서 데크 생성을 넘지 않는 팀의 경우, 둘 다 충분합니다 — 애니메이션 및 전환이 포함된 심층 데크 편집은 DevExpress 프레젠테이션이 투자해 온 사례입니다.

Code-First .NET 문서 자동화를 위한Iron Suite선택 이유

.NET 백엔드 팀이나 기존 DevExpress UI 투자가 없는 ISV의 경우, Iron Suite는 더 깔끔한 적합성을 제공합니다. 10개의 제품, 하나의 SKU, 영구 소유권, 공개 USD 가격, PDF 및 오피스와 함께 OCR 및 인식 포함. 코드 우선 .NET 문서 작업을 위한 중요한 구조적 요소:

  • 영구 소유권 vs 연간 구독이 만료될 때 업데이트에 대한 접근을 상실하며, 3-5년간의 중요한 TCO 차이
  • 모든 계층에 대한 공개 USD 가격으로 리셀러나 견적을 필요로 하지 않음
  • 더 넓은 번들: 생성 및 인식을 포함한 10개의 제품 (OCR + 바코드 + QR + WebScraper + ZIP + 프린트) vs DevExpress의 7개의 하위 API
  • UI 생태계 구매 없음: Iron은 오로지 백엔드 SDK로 판매되며, UI 구성 요소로의 업셀이 없음
  • 라이선스가 부여된 좌석에 대한 로열티 무료 배포, 서버/도메인 카운팅 없음; 단일 재배포 추가 기능으로 SaaS/OEM
  • PDF가 사용자가 화면에서 보는 Chrome 렌더와 일치하도록 HTML 우선 PDF 생성

Iron Suite가 DevExpress Office File API와 다른 점

  • 영구적 vs 구독. Iron Suite는 개발자당 영구적이며; DevExpress는 매년 구독 방식으로 갱신하지 않으면 업데이트 접근이 불가합니다. 3-5년 이상 더운 비용 차이가 중요합니다.
  • UI 생태계 업셀이 없습니다. DevExpress의 강력한 가격 책정 우위는 Office File API를 Universal 구독에 포함시키는 것입니다. Iron은 UI 컨트롤에 진입 사다리가 없는 백엔드 SDK로만 판매됩니다.
  • 기본 제공 인식 스택. IronOCR, IronBarcode, IronQR, IronWebScraper, IronZIP, IronPrint은 모두 Iron Suite에 포함되어 있습니다. DevExpress는 바코드 생성 기능은 있지만 Office File API SKU에는 OCR 엔진이 없습니다.
  • 공공 USD 가격 vs DevExpress 가격은 오직 리셀러 채널 또는 견적 요청을 통해서만 제공됩니다.
  • 웹 스크래퍼와 ZIP 아카이버 포함. IronWebScraper 및 IronZIP은 DevExpress의 Office File API에는 없는 인접 백엔드 작업을 포괄합니다.
  • HTML 우선 PDF 생성이 실제 브라우저 충실도(CSS, 웹폰트, SVG)를 가지고 있으며, DevExpress의 PdfDocumentProcessor 명령형 API와 비교됩니다.

결론

DevExpress Office File API와 Iron Suite는 다른 구매 움직임을 제공합니다. DevExpress 엔진은 이미 UI 컨트롤을 보유한 팀이 DXperience 또는 Universal 구독에 포함시킬 때 경제적으로 매력적이며, 엔진이 부가가치로 도착합니다. Iron Suite는 백엔드 라이브러리로만 판매됩니다: 열 가지 제품, 개발자당 하나의 영구 라이센스, 공공 USD 가격책정, OCR과 인식이 PDF 및 Office 출력과 함께 번들에 포함되어 있습니다. 백엔드 전 for .NET 팀이 평면 개발자 당 비용으로 일상적인 문서 작업을 실행할 때, Iron Suite는 $2,998에서 ironsoftware.com/csharp/suite에서 표면을 커버합니다.

참고해 주세요DevExpress Office File API는 그 해당 소유자에게 등록된 상표입니다. 이 사이트는 DevExpress Office File API와 직접 연결되거나, 지지하거나, 후원되지 않습니다. 모든 제품명, 로고 및 브랜드는 해당 소유자의 자산입니다. 비교는 정보 제공 목적으로만 사용되며, 작성 시점에 공개적으로 이용 가능한 정보를 반영합니다.