Iron Suite a DevExpress Office File API
DevExpress Office File API jest najbardziej atrakcyjne ekonomicznie, gdy dostarczane jest w pakiecie wewnątrz subskrypcji DXperience lub Universal, gdzie silniki dokumentów przybywają praktycznie za darmo wraz z kontrolkami UI. Kupowane samodzielnie przez kanały resellerów (strona Kupowania DevExpress jest zabezpieczona przed publicznym zeskrobywaniem), jest roczną subskrypcją na dewelopera za około $587,99 za nowe miejsce lub $1,175,99/rok przy odnowieniu.Iron Suitejest sprzedawany wyłącznie jako zestaw SDK na backend: dziesięć produktów"Iron Software"w jednym wieczystym pakiecie na dewelopera od $2,998, bez opłat licencyjnych dla licencjonowanych miejsc, z redystrybucją SaaS i OEM objętą jednym Dodatkowym Rozszerzeniem Redystrybucji.
To porównanie prowadzi do tego, na czym faktycznie polega decyzja prowadzona przez zakupy: czy zespół już jest na DevExpress UI, jak każda z wtyczek jest wyceniana na przestrzeni wieloletniej perspektywy i co faktycznie znajduje się w pudełku. Szczegóły dotyczące możliwości i kodu są zamieszczone poniżej dla inżynierów, którzy będą ją dostarczać.
Porownanie na pierwszy rzut oka
| Wymiary | DevExpress Office File API | Iron Suite |
|---|---|---|
| Pozycjonowanie cenowe | Nowa licencja od ~$587,99 / subskrypcja od ~$1,175,99 na dewelopera/rok (lista dystrybucyjna resellerów, ComponentSource), strona Kupowania dostawcy jest chroniona | Lite $2,998 / Plus $4,498 / Professional $8,998 / Unlimited $17,998 (Enterprise custom); wszystkie 10 produktów w cenie 2 |
| Model licencji | Roczna subskrypcja na dewelopera; bez oplat licencyjnych za wdrożenie; dołączone do pakietów DXperience/Universal | Wieczyste na dewelopera; bez oplat licencyjnych dla licencjonowanych miejsc; SaaS/OEM poprzez Dodatek Redystrybucyjny |
| Komponenty w zestawie | 7 pod-API (Word, Arkusz kalkulacyjny, PDF, PowerPoint, Barcode, Podpis cyfrowy, rozszerzenia AI) | 10 products (IronPDF, IronWord, IronXL, IronPPT, IronOCR, IronBarcode, IronQR, IronPrint, IronZIP, IronWebScraper) |
| Zasięg formatu/możliwości | DOCX, XLSX, PDF, PPTX + kod kreskowy + podpis cyfrowy + rozszerzenia dokumentów AI | PDF, Office, OCR, Kod kreskowy/QR, ZIP, Druk, Web Scraping |
| Wsparcie międzyplatformowe/chmurowe | Windows, Linux, macOS, Docker, Azure, AWS | Windows, Linux, macOS, Docker, Azure, AWS Lambda |
| Wsparcie dla uruchamiania .NET | .NET 8 / 9 / 10, .NET Framework 4.6.2+ | .NET Framework 4.6.2+, .NET Core, .NET 6/7/8/9/10 |
| Rynek docelowy | Średnie przedsiębiorstwa i korporacje .NET, zwłaszcza obecni klienci DevExpress UI/Reporting | Niezależni deweloperzy, SMB, zespoły .NET średniej wielkości, ISVs |
| Dostawca | Developer Express Inc. (DevExpress) | "Iron Software" |
Kupujący podejmuje decyzję, pytając: czy zespół już płaci za DevExpress UI (subskrybenci Universal, użytkownicy XtraReports, nabywcy kontrolek WinForms/WPF)? Jeśli tak, API Office File przychodzi w pakiecie praktycznie za darmo i to jest najsilniejszy argument ekonomiczny, by pozostać przy DevExpress. Jeśli nie,Iron Suitejako niezależny zestaw backendowy w płaskiej wieczystej cenie obejmuje tę samą powierzchnię Office i PDF, rozpoznawania i narzędzi bez kupowania całego ekosystemu UI.
Ceny i licencje
DevExpress Office File API jest sprzedawane jako roczna subskrypcja na dewelopera. Strona Kupowania dostawcy nie ujawnia publicznych cen USD do zeskrobywania, ale lista resellerów na ComponentSource dla najnowszych wydań (v25.2.7) pokazuje nowe licencje od $587,99 a subskrypcję/odnowienie od $1,175,99 na dewelopera/rok. Każdy deweloper jest objęty na wielu maszynach bez liczenia na serwer lub na domenę. API Office File jest również zawarte w subskrypcjach DXperience i Universal; dla zespołów już korzystających z Universal, silniki dokumentów są w praktyce wolne od kosztów dodatkowych SKU.
Iron Suite jest sprzedawany jako pojedyncza wieczysta licencja na dewelopera na pięciu poziomach (Lite, Plus, Professional, Unlimited, i Enterprise), zaczynając od $2,998, z pozycjonowaniem marketingowym "wszystkie 10 produktów w cenie 2, oszczędzaj 75%". Podstawowa licencja jest bez opłat licencyjnych dla licencjonowanych miejsc, lokalizacji lub projektów, a redystrybucja SaaS, OEM lub dystrybuowana poza podstawową licencją używa jednego, oddzielnie wycenionego Dodatku Redystrybucyjnego.
Kupujący posiadający już DevExpress Universal przechodzą do Office File API jako dodatek wartościowy bez dodatkowych kosztów SKU. Kupujący bez zależności od DevExpress UI przechodzą doIron Suitejako samodzielny wieczysty pakiet za $2,998 dla poziomu Lite, z tym samym zasięgiem Office i PDF oraz zidentyfikacją (OCR, Barcode, QR) dołączoną w pakiecie.
Czym jest DevExpress Office File API
DevExpress Office File API to niewizualny silnik dokumentowy, który zasila kontrolki Rich Edit, Spreadsheet i PDF Viewer od DevExpress, sprzedawany jako samodzielne SDK po stronie serwera przez Developer Express Inc. Jest to przechrzczona ewolucja starszego produktu DevExpress Document Server i integruje się czysto z resztą rodziny komponentów DevExpress (XtraReports, Snap, kontrolki UI WinForms/WPF). Hasłem marketingowym na obecnej stronie produktu jest "Office & PDF File APIs for .NET (DOCx, XLSx, PDF, PPTx), by DevExpress (C# & VB.NET i wkrótce Java)." Najnowsza wersja referencyjna to DevExpress.Document.Processor 25.2.7, opublikowana 2026-05-06, z kolejną dużą wersją v26.1 planowaną na czerwiec 2026 zgodnie z publiczną mapa drogową.
Kluczowe komponenty i możliwości w zestawie:
- API przetwarzania dokumentów Word: DOCX odczyt/zapis, łączenie poczty, znajdowanie i zastępowanie
- API dokumentów arkuszy kalkulacyjnych: XLSX odczyt/zapis z pełnym przeliczaniem formuł
- API dokumentów PDF: tworzenie, edytowanie, łączenie, zabezpieczanie, podpisywanie PDF-ów
- API prezentacji PowerPoint: PPTX odczyt/zapis
- API generowania kodów kreskowych: renderowanie kodów kreskowych wewnątrz pakietu
- API podpisu cyfrowego: pierwszorzędne podpisywanie PDF
- Rozszerzenia przetwarzania dokumentów zasilane przez sztuczną inteligencję: nowy kierunek w mapie drogowej v26.1
Co to jest Iron Suite
Iron Suite to samodzielne SDK dokumentowe .NET od Iron Software, sprzedawane wyłącznie jako biblioteki backendowe, bez zależności od kontrolek UI i bez towarzyszącej subskrypcji. Dziesięć produktów jest dostarczanych razem w ramach jednej wieczystej licencji na dewelopera na pięciu poziomach od $2,998, bez opłat licencyjnych dla licencjonowanych miejsc. SaaS i OEM redystrybucja używają oddzielnego Dodatku do Redystrybucji.
Dziesięć komponentów, pogrupowanych według znaczenia dla programowego przepływu pracy Office i PDF:
- Stos Office: IronWord (DOCX z grafem obiektów akapitu i przebiegu tekstu, ekstrakcja treści, niestandardowe stylizowanie); IronXL (XLSX z przeliczaniem formuł, wykresami, tabelami przestawnymi, formatowaniem warunkowym); IronPPT (tworzenie i edytowanie PPTX).
- Generowanie PDF (IronPDF): HTML-do-PDF i URL-do-PDF, natywne łączenie i dzielenie, PKCS#12 plus HSM plus podpis TSA zgodny z eIDAS i ESIGN, PDF/A przez PDF/A-4, PDF/UA-1 i PDF/UA-2, szyfrowanie AES, wypełnianie i spłaszczanie AcroForm, zarządzanie czcionkami, rastryzacja, kompresja i linearizacja.
- Rozpoznawanie: IronOCR (Tesseract 5, 125+ języków, odręczne pismo w ~90% angielskim); IronBarcode (ponad 30 symbolik, skaner MAUI); IronQR (zasilany ML z wsadowym
ReadPdfs). - Utility: IronPrint, IronZIP, IronWebScraper.
Porównanie funkcjonalności
Przetwarzanie tekstu i łączenie korespondencji
Scalanie poczty na podstawie szablonu DOCX za pomocą typowanego źródła danych jest typowym zadaniem DevExpress: RichEditDocumentServer to silnik napędzający kontrolkę WinForms Rich Edit od DevExpress. IronWord koncentruje się na tworzeniu i manipulacji DOCX za pomocą nowoczesnego API grafu obiektów.
// 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// 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 ClassScalanie poczty w DevExpress z szablonem łączy się z każdym źródłem DataTable i obsługuje zagnieżdżone regiony scalania oraz bloki warunkowe, co stanowi silny przepływ pracy oparty na szablonach. IronWord ujawnia graf obiektów akapitu/przebiegu tekstu, który mapuje bezpośrednio na OOXML i jest zaprojektowany w celu generowania DOCX od zera; przepływy pracy oparte na szablonie w IronWord zazwyczaj wykorzystują znajdowanie i zastępowanie na przebiegach tekstu.
Przetwarzanie Excela
Oba silniki obejmują codzienną pracę z Excelem (tworzenie lub ładowanie XLSX, przeliczanie formuł, eksport do PDF) i oba mają automatyczne tryby przeliczania formuł.
// 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// 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 ModuleDevExpress.Spreadsheet inwestuje głębokość w rodzaje wykresów, tabele przestawne i formatowanie warunkowe, od czasu gdy ten sam silnik zasila wizualną kontrolkę Spreadsheet DevExpress. IronXL pokrywa zakres odczytu/zapisu/przeliczeń, który potrzebuje większość prac backendowych XLSX, z API komórek o stylu indeksatora (sheet["B4"].Formula = …, workbook.EvaluateAll()) i lżejszym wpływie zależności.
Generowanie i scalanie PDF
PDF to miejsce, gdzie styl API DevExpress jest wyraźnie imperatywny. PdfDocumentProcessor buduje i edytuje PDF-y poprzez obiekt procesora dokumentów, który ładuje, modyfikuje i zapisuje. IronPDF renderuje PDF-y z HTML przy użyciu prawdziwego silnika 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// 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 ModulePdfDocumentProcessor DevExpress ujawnia szczegółowy API strony na niskim poziomie oraz pierwszorzędne API podpisu cyfrowego do precyzyjnej pracy z modelem obiektowym PDF. PdfDocument.Merge IronPDF pokrywa te same operacje scalania/dzielenia/redagowania/podpisywania bezpośrednio na modelu obiektów PDF: powrót do HTML-u odbywa się wyłącznie przy tworzeniu pliku PDF z HTML, nie podczas manipulacji istniejącymi PDF-ami. Oba silniki edytują PDF natywnie; powierzchnia API stanowi różnicę.
Generowanie PowerPoint
Generowanie PowerPoint to pierwszorzędna umiejętność DevExpress.Iron Suitezawiera IronPPT do tworzenia i manipulacji 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// 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 ModuleAPI prezentacji DevExpress odzwierciedla imperatywny styl pozostałych API Office File: załaduj/modyfikuj/zapisz, kształty są dodawane jawnie do slajdu. IronPPT wIron Suiteobejmuje tworzenie PPTX i powszechną powierzchnię manipulacji z takim samym idiomatycznym odczuciem, jak reszta zestawu. Dla zespołów, których wymagania dotyczące PPTX pozostają wewnątrz tworzenia standardowych deków raportów, obie opcje są wystarczające — głębokie edytowanie deków z animacjami i przejściami to przypadek, w który DevExpress Presentation inwestowało.
Dlaczego warto wybraćIron Suitedo automatyzacji dokumentów .NET zatytułowanej przez kod
Dla zespołu backendowego .NET lub ISV bez istniejącej inwestycji w DevExpress UI,Iron Suitejest czystszym dopasowaniem. Dziesięć produktów, jeden SKU, wieczysta własność, publiczne cennikowanie USD, z OCR i rozpoznawaniem dołączonymi obok PDF i Office. Krawędzi strukturalne, które mają znaczenie dla pracy dokumentowej .NET opartej na kodzie:
- Wieczysta własność vs roczna subskrypcja, która traci dostęp do aktualizacji po wygaśnięciu, znacząca różnica w TCO w ciągu 3-5 lat
- Publiczne cennikowanie USD na każdym poziomie bez sięgania po resellera lub ofertę
- Szeroki pakiet: 10 produktów obejmujących tworzenie ORAZ rozpoznawanie (OCR + Kod kreskowy + QR + WebScraper + ZIP + Druk) vs 7 sub-API DevExpress
- Brak kupowania się w ekosystem UI: Iron jest sprzedawane wyłącznie jako backendowe SDK, bez upsellu do kontrolek UI
- Bez oplat licencyjnych za wdrożenie dla licencjonowanych miejsc, brak liczenia na serwer/domenę w obie strony; SaaS/OEM poprzez jeden Dodatek Redystrybucyjny
- HTML-pierwsze generowanie PDF, aby PDF-ki odpowiadały renderowi Chrome, który widzi użytkownik na ekranie
JakIron Suiteróżni się od DevExpress Office File API
- Wieczysta vs subskrypcja.Iron Suitejest wieczny na dewelopera; DevExpress jest roczną subskrypcją, gdzie wygaśnięcie oznacza utratę dostępu do aktualizacji. W ciągu 3-5 lat różnica w TCO ma znaczenie.
- Brak upsellu do ekosystemu UI. Najsilniejsze naciski cenowe DevExpress to pakietowanie API Office File w subskrypcji Universal. Iron jest sprzedawane wyłącznie jako backendowe SDK z bezdrabinierowym dostępem do kontrolek UI.
- Stos rozpoznawania bez dodatków. IronOCR, IronBarcode, IronQR, IronWebScraper, IronZIP, IronPrint wszystkie są wewnątrz Iron Suite. DevExpress ma generowanie kodów kreskowych, ale brak silnika OCR w SKU Office File API.
- Publiczne cennikowanie USD vs ceny DevExpress tylko przez kanały resellerów lub prośby ofertowe.
- Zintegrowany skaner sieci i archiwizator ZIP. IronWebScraper i IronZIP obejmują sąsiadujące prace backendowe, które nie mają odpowiednika w API Office File DevExpress.
- HTML-pierwsze generowanie PDF z rzeczywistą wiernością przeglądarki (CSS, czcionki webowe, SVG) vs imperatywne API PdfDocumentProcessor DevExpress.
Wnioski
DevExpress Office File API iIron Suiteobsługują różne sposoby zakupu. Silniki DevExpress są najbardziej atrakcyjne ekonomicznie, gdy są pakietowane w subskrypcji DXperience lub Universal, którą zespół już posiada dla kontrolek UI, z silnikami przybywającymi jako wartość dodana.Iron Suitejest sprzedawane wyłącznie jako biblioteki backendowe: dziesięć produktów, jedna wieczna licencja na dewelopera, publiczne cennikowanie USD, z OCR i rozpoznawaniem dołączonymi do pakietu obok wyniku PDF i Office. Dla zespołów .NET pracujących tylko na backendzie, przetwarzających codzienne obciążenia dokumentów przy stałym koszcie na dewelopera,Iron Suiteod $2,998 na ironsoftware.com/csharp/suite obejmuje ten zakres.
