XFINIUM.PDF ve IronPDF Karşılaştırması: Teknik Kılavuz
DevExpress Office File API, DXperience veya Universal abonelikleri içinde paketlenmiş olarak gönderildiğinde, döküman motorları esasen ücretsiz olan UI kontrollerine paralel olarak geldiğinde en ekonomik olarak caziptir. Yalnızca satıcı kanalları aracılığıyla bağımsız satın alındığında (DevExpress Satın Al sayfası halka açık kazıma karşı sınırlıdır), yeni bir koltuk için yaklaşık $587,99 veya yenilemede $1.175,99/yıl olarak yıllık geliştirici başına aboneliktir. Iron Suite yalnızca arka uç SDK'ları olarak satılır: $2,998'dan itibaren, lisanslı koltuklar için telif ücretsiz, SaaS ve OEM yeniden dağıtımının tek bir Yeniden Dağıtım Eklentisi ile karşılandığı bir süresiz, geliştirici başına on Iron Software ürünü.
Bu karşılaştırma, satın alma yönlendiricili bir kararın aslında neye dayandığını öne çıkarır: ekibin zaten DevExpress UI üzerinde olup olmadığı, her bir paketin çok yıllık ufuk boyunca nasıl fiyatlandırıldığı ve aslında kutuda ne olduğu. Yetenek detayı ve kod, gönderecek mühendisler için aşağıda verilmiştir.
Kısaca Karşılaştırma
| Boyut | DevExpress Office Dosya API | Iron Suite |
|---|---|---|
| Fiyatlandırma Konumlandırma | Geliştirici başına yıllık yeni lisans ~$587,99 / abonelik ~$1,175,99 (satıcı listesi, ComponentSource), satıcının kendi Satın Al sayfası sınırlıdır | Lite $2,998 / Plus $4,498 / Professional $8,998 / Unlimited $17,998 (Enterprise custom); 2 fiyatına 10 ürün |
| Lisans modeli | Yıllık geliştirici başına abonelik; telif ücretsiz dağıtım; DXperience/Universal paketleri içinde mevcuttur | Süresiz geliştirici başına; lisanslı kullanımlar için telif ücretsiz; Saas/OEM Yeniden Dağıtım Eklentisi ile |
| Paket içerisindeki Bileşenler | 7 alt API (Word, Elektronik Tablo, PDF, PowerPoint, Barcode, Dijital İmza, AI uzantıları) | 10 products (IronPDF, IronWord, IronXL, IronPPT, IronOCR, IronBarcode, IronQR, IronPrint, IronZIP, IronWebScraper) |
| Format / yetenek kapsamı | DOCX, XLSX, PDF, PPTX + barcode + dijital imzalama + AI belge uzantıları | PDF, Office, OCR, Barcode/QR, ZIP, Baskı, Web Taraması |
| Çapraz platform / bulut | Windows, Linux, macOS, Docker, Azure, AWS | Windows, Linux, macOS, Docker, Azure, AWS Lambda |
| .NET çalışma zamanı desteği | .NET 8 / 9 / 10, .NET Framework 4.6.2+ | .NET Framework 4.6.2+, .NET Core, .NET 6/7/8/9/10 |
| Hedef pazar | Orta pazar ve kurumsal .NET dükkanları, özellikle mevcut DevExpress UI/Raporlama müşterileri | Bağımsız geliştiriciler, KOBİ, orta pazar .NET ekipleri, ISV'ler |
| Satıcı | Developer Express Inc. (DevExpress) | Iron Software |
Alıcı sorar: ekip zaten DevExpress UI için mi ödüyor (Universal abonelikleri, XtraReports kullanıcıları, WinForms/WPF kontrol alıcıları)? Evet ise, Office File API aslında bedavaya paketlenmiş olarak gelir ve bu, DevExpress'te kalmak için en güçlü ekonomik argümandır. Hayır ise, Iron Suite, kullanışlı bir arka uç paketi olarak, UI ekosistemine katılım olmadan, aynı Office, PDF, tanınma ve yardımcı program yüzeyini kapsayan düz bir süresiz fiyatla gelir.
Fiyatlandırma ve Lisanslama
DevExpress Office File API, yıllık geliştirici başına abonelik olarak satılır. Satıcının kendi Satın Al sayfası, USD fiyatlarını halk için kazıma göremiyor, ancak ComponentSource üzerindeki satıcı listesi, en son sürüm (v25.2.7) için yeni lisansları $587.99'dan ve geliştirici başına yıllık abonelik/yenilemeleri $1.175.99'dan gösteriyor. Her geliştirici, birden fazla makine üzerinden herhangi bir sunucu veya alan adı sayımı olmadan kapsanır. Office File API, DXperience ve Universal abonelikleri içinde de paketlenmiştir; zaten Universal'da olan ekipler için, belge motorları etkili bir şekilde artımlı SKU maliyeti olmayacak şekilde bedavadır.
Iron Suite, beş kademe seviyesinde (Lite, Plus, Professional, Unlimited ve Enterprise) $2,998'dan başlayan tek bir süresiz geliştirici başına lisans olarak satılır, "10 ürün fiyatına 2 ürün, %75 tasarruf" pazarlama konumlandırması ile. Temel lisans, lisanslı koltuklar, konumlar veya projeler için telif ücretsizdir ve SaaS, OEM veya temel lisans ötesinde dağıtılan yeniden dağıtım, tek bir, ayrı fiyatlandırılmış Yeniden Dağıtım Eklentisi kullanır.
Zaten DevExpress Universal üzerinde olan alıcılar, ek bir SKU maliyeti olmaksızın paketlenmiş bir katma değer olarak Office Dosya API'sine gider. Bir DevExpress UI bağımlılığı olmayan alıcılar, aynı Office ve PDF yüzeyi artı tanımanın (OCR, Barcode, QR) dahil edildiği Lite kademe için $2,998'da bağımsız bir süresiz paket olarak Iron Suite'e yönelir.
DevExpress Office Dosya API Nedir?
DevExpress Office File API, DevExpress'in Rich Edit, Elektronik Tablo ve PDF Görüntüleyici kontrolünü güçlendiren, Developer Express Inc. tarafından bağımsız bir sunucu tarafı SDK olarak satılan gözle görülmeyen belge motorudur. Eski DevExpress Belge Sunucu ürününün yenilenen adıdır ve DevExpress'in bileşen ailesinin geri kalanlarıyla (XtraReports, Snap, WinForms/WPF UI kontrolleri) sorunsuz bir şekilde entegre olur. Mevcut ürün sayfasındaki pazarlama sloganı "DevExpress tarafından (C# & VB.NET ve yakında Java) .NET için Office & PDF Dosya API'leri (DOCx, XLSx, PDF, PPTx)" şeklindedir. En son referans sürüm DevExpress.Document.Processor 25.2.7, 2026-05-06 tarihinde yayımlandı ve bir sonraki büyük v26.1 sürümü Haziran 2026'da yayımlanacak halk yol haritasına göre.
Paketlenmiş bileşenler ve yetenekler:
- Kelime İşleme Belge API'si: DOCX okuma/yazma, post merge, bul-ve-değiştir
- Elektronik Tablo Belge API'si: Tam formül yeniden hesaplama ile XLSX okuma/yazma
- PDF Belge API'si: PDF'leri oluşturma, düzenleme, birleştirme, güvenlik sağlama, imzalama
- PowerPoint Sunum API'si: PPTX okuma/yazma
- Barkod Oluşturma API'si: paketin içine yerleştirilmiş barkod sunumu
- Dijital İmza API'si: birinci sınıf PDF imzalama
- AI destekli Belge İşleme uzantıları: v26.1 yol haritasındaki yeni yön
Iron Suite Nedir
Iron Suite, UI kontrolleri bağımlılığı olmayan ve eşlik eden abonelik olmayan sadece arka uç belgeleri kütüphanesi olarak satılan Iron Software'in bağımsız .NET belge SDK'sıdır. On ürün, beş kademe seviyesinde tek bir süresiz geliştirici başına lisans altında birlikte sevk edilir, lisanslı koltuklar için $2,998'dan itibaren telif ücretsiz. SaaS ve OEM yeniden dağıtımı ayrı bir Yeniden Dağıtım Takviyesi kullanır.
PDF ve Office yetenek devresi programatik bir akış açısında gruplandırılmış on bileşen:
- Office yığını: IronWord (paragraf ve metin-çalıştır nesne grafiği, içerik çıkarma, özel stil ile DOCX); IronXL (formül yeniden hesaplama, grafikler, pivot tablolar, koşullu biçimlendirme ile XLSX); IronPPT (PPTX oluşturma ve düzenleme).
- PDF oluşturma (IronPDF): HTML-den-PDF ve URL-den-PDF, yerel birleştirme ve ayırma, PKCS#12 artı HSM artı TSA imzaları eIDAS ve ESIGN'e uygun, PDF/A ile PDF/A-4, PDF/UA-1 ve PDF/UA-2, AES şifrelemesi, AcroForm doldurma ve düzleştirme, font yönetimi, rasterizasyon, sıkıştırma ve doğrultma.
- Tanıma: IronOCR (Tesseract 5, 125+ dil, ~%90 İngilizce el yazısı); IronBarcode (30+ semboloji, MAUI tarayıcı); IronQR (ML destekli toplu
ReadPdfsile). - Yardımcı Program: IronPrint, IronZIP, IronWebScraper.
Yetenek Karşılaştırması
Word İşleme ve Posta Birleştirme
Tiplenmiş bir veri kaynağı kullanarak bir DOCX şablonuna karşı posta birleştirme, bir DevExpress imza iş yüküdür: RichEditDocumentServer, DevExpress'in WinForms Rich Edit kontrolünü çalıştıran motordur. IronWord, modern bir nesne grafik API'si ile DOCX oluşturma ve manipulate etmeyi hedefler.
// 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 ClassBir şablona karşı DevExpress posta birleştirme, herhangi bir DataTable kaynağına bağlanır ve güçlü bir şablon odaklı iş akışı olan iç içe birleştirme bölgeleri ve koşullu blokları destekler. IronWord, OOXML'e doğrudan haritalanan paragraf/metin-çalıştır nesne grafiği sağlar ve baştan bir DOCX oluşturmak için özel olarak yapılmıştır; IronWord içindeki şablon güdümlü iş akışları genellikle metin çalıştırmaları üzerindeki bul-ve-değiştir'i kullanır.
Excel İşleme
Her iki motor da günlük Excel iş yükünü kapsar (XLSX oluşturma veya yükleme, formüller hesaplama, PDF'ye aktarma) ve her ikisi de otomatik formül yeniden hesaplama modlarına sahiptir.
// 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, DevExpress Spreadsheet görsel kontrolünü güçlendiren aynı motor devreye girdiğinden, grafik türleri, pivot tablolar ve koşullu biçimlendirme içinde derinliğe yatırım yapmıştır. IronXL, çoğu arka uç XLSX işinde ihtiyaç duyulan oku/yaz/yeniden hesapla kapsamını, bir indeksleyici tarzındaki hücre API'si (sheet["B4"].Formula = …, workbook.EvaluateAll()) ile ve daha hafif bir bağımlılık ayak iziyle kapsar.
PDF Oluşturma ve Birleştirme
PDF, DevExpress API tarzının en net şekilde zorunlu olduğu yerdir. PdfDocumentProcessor bir belge işlemci nesnesi üzerinden PDF'ler oluşturur ve düzenler, yükler, değiştirir ve kaydeder. IronPDF, gerçek bir Chrome motoru kullanarak HTML'den PDF'ler oluşturur.
// 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 ModuleDevExpress PdfDocumentProcessor, ayrıntılı düşük seviyeli bir sayfa API'si ve ayrıntılı PDF nesne modeli çalışması için birinci sınıf Dijital İmza API'si sağlar. IronPDF'nin PdfDocument.Merge'i aynı birleştirme/bölme/sansürleme/imzalama işlemlerini doğrudan PDF nesne modeli üzerinde kapsar: HTML yuvarlak turu yalnızca bir PDF'nin HTML'den oluşturulması sırasında gerçekleşir, mevcut PDF'lerin manipülasyonu sırasında değil. Her iki motor da PDF'yi yerel olarak düzenler; API yüzeyi ayırt edicidir.
PowerPoint Oluşturma
PowerPoint oluşturma, birinci sınıf DevExpress yeteneğidir. Iron Suite, PPTX oluşturma ve manipulate etme için IronPPT içerir.
// 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 ModuleDevExpress'in Sunum API'si, diğer Office Dosya API'lerin zorunlu tarzını yansıtır: yükleme/değiştirme/kaydet, şekiller açıkça bir slayda eklenir. Iron Suite içindeki IronPPT, PPTX oluşturma ve sık kullanılan manipulation yüzeyini paketin geri kalanı ile aynı idiomatik hisle kapsar. PPTX gereksinimlerinin standart rapor güverte oluşturma içinde kaldığı ekipler için her ikisi de yeterlidir — animasyonlar ve geçişlerle derin güverte düzenlemeleri, DevExpress Sunum'un yatırım yaptığı durumdur.
Kod-Öncelikli .NET Belge Otomasyonu için Neden Iron Suite Seçilmeli
.NET arka uç eki veya mevcut DevExpress UI yatırımı olmayan ISV için, Iron Suite daha temiz bir uyum sağlar. On ürün, bir SKU, süresiz sahiplik, halka açık USD fiyatlandırma, ile OCR ve tanıma PDF ve Office çıkışı yanında pakette dahil. Kod temelli .NET belge işi için önemli olan yapısal kenarlar:
- Süresiz sahiplik vs süre dolduğunda güncellemelere erişimi kaybeden yıllık abonelik, 3-5 yıl içinde önemli KDV farkı oluşturur
- Halka açık USD fiyatlandırma her kademede, satıcıya veya teklif istemelerine talip olmadan
- Daha geniş paket: 10 ürün, oluşturma ve tanıma (OCR + Barcode + QR + WebScraper + ZIP + Baskı) kapsıyor vs DevExpress'in 7 alt-API'leri
- UI ekosistemi katılımı yok: Iron yalnızca arka uç SDK'ları olarak satılıyor, UI bileşenleri içine herhangi bir satış yok
- Telif ücretsiz dağıtım lisanslı koltuklar için, herhangi bir sunucu/alan adı sayımı olmadan ... SaaS/OEM'e bir Yeniden Dağıtım Eklentisi üzerinden
- HTML öncelikli PDF oluşturma böylece PDF, kullanıcı ekranda ne gördüğüne uyacak şekilde Chrome render'ı ile eşleşir
Iron Suite DevExpress Office File API'den Nasıl Farklı?
- Süresiz vs abonelik. Iron Suite, geliştirici başına süresizdir; DevExpress, güncellemeler erişimini kaybetmeye neden olan bir yıllık aboneliktir. 3-5 yıl içinde TCO farkı önemlidir.
- UI ekosistemi katılımı yok. DevExpress'in en güçlü fiyatlandırma kozları Office File API'yi Universal aboneliğine paketlemesidir. Iron, UI kontrollerine bir basamak olmaksızın yalnızca arka uç SDK'ları olarak satılmaktadır.
- Kutu dışı tanıma yığını. IronOCR, IronBarcode, IronQR, IronWebScraper, IronZIP, IronPrint tüm Iron Suite içinde yer alıyor. DevExpress'in barkod oluşturması vardır, ancak Office File API SKU'sunda bir OCR motoru yoktur.
- Halka açık USD fiyatlandırma vs DevExpress fiyatlandırması yalnızca satıcı kanalları ya da teklif istekleri ile mümkündür.
- Birlikte gelen web yazıcı ve ZIP arşivleyici. IronWebScraper ve IronZIP, DevExpress'in Office File API içinde bir eşdeğeri olmayan bitişik arka uç iş yüklerini kapsar.
- HTML öncelikli PDF oluşturma gerçek tarayıcı doğruluğu (CSS, web fontlar, SVG) ile DevExpress'in PdfDocumentProcessor zorunlu API yerine.
Sonuç
DevExpress Office File API ve Iron Suite farklı satın alma hareketlerine hizmet eder. DevExpress motorları, bir ekip zaten UI kontrolleri için sahip olduğu DXperience veya Universal aboneliğine paketlenmiş olduğunda ekonomik olarak en caziptir ve motorlar bir değer artışı olarak sunulurlar. Iron Suite, yalnızca arka uç kütüphaneleri şeklinde satılır: on ürün, bir süresiz geliştirici başına lisans, halka açık USD fiyatlandırmayla, PDF ve Office çıktısı yanında OCR ve tanıma pakete dahil edilir. Günlük belge iş yüklerini sabit bir geliştirici başına maliyetle çalıştıran yalnızca arka uç .NET ekipleri için, ironsoftware.com/csharp/suite üzerinden $2,998'dan itibaren Iron Suite yüzeyi kapsar.
