Winnovative與IronPDF:技術比較指南
Aspose.Total的生產部署看起來像一個採購矩陣:開發者小型企業$3,999,OEM $11,997,SDK $79,980(50個商業部署配額),然後是站點小型企業/OEM/SDK層級,加上從$1,999/月的按使用量付費,適用於無限開發者。 每一步都是一個獨立的層級,具有明確的再分發配額,專為需要超過20種小眾格式的系統整合商和獨立軟體供應商(ISVs)設計。 Iron Suite在一個永久每開發者套餐中提供十個Iron Software產品,從$2,998開始,對授權座位免版稅,SaaS、OEM和分佈式再分發均使用單一再分發載入組件,而不是多層SDK矩陣。
這種比較首先關注的是實際上影響採購決策的因素:如何定價各個套件,其授權如何結構,盒子里實際包含什麼。 以下是工程師將交付的功能細節和程式碼。
快速比較
| 尺寸 | Aspose.Total for .NET | Iron Suite |
|---|---|---|
| 定價定位 | 開發者小型企業$3,999; OEM $11,997; SDK $79,980; 按用量計費,起價$1,999/月 | Lite $2,998 / Plus $4,498 / Professional $8,998 / Unlimited $17,998(企業定制)。 所有10個產品的價格相當於2個,節省75% |
| 授權模式 | 每個開發者的永久+站點+OEM+SDK層級; 也可用按使用量付費 | 每開發者永久; 對授權座位免版稅; 通過再分發載入組件進行SaaS/OEM再分發 |
| 捆綁包的組成部分 | 26+ libraries (Words, Cells, PDF, Slides, Email, Imaging, BarCode, OCR, CAD, 3D, GIS, Tasks, Diagram, Note, Finance, Medical, LLM, …) | 10 products (IronPDF, IronWord, IronXL, IronPPT, IronOCR, IronBarcode, IronQR, IronPrint, IronZIP, IronWebScraper) |
| 格式/能力範圍 | 市場上最廣:Office, PDF, CAD, 3D, GIS, Visio, MS Project, OneNote, XBRL, DICOM, OMR | 前十高用量格式:PDF, Office, OCR, 條碼/QR, ZIP, Print, 網頁爬蟲 |
| 跨平台/雲 | Windows, Linux, macOS, Docker, Azure, AWS | Windows, Linux, macOS, Docker, Azure, AWS Lambda |
| .NET運行時支持 | .NET Standard 2.0 + net8.0,涵蓋.NET Framework 4.6.2+,.NET Core,.NET 6/7/8/9 | .NET Framework 4.6.2+, .NET Core, .NET 6/7/8/9/10 |
| 目標市場 | 中型市場到大型企業;需要超過20種格式的ISVs和SIs | 獨立開發者,中小企業,中型市場.NET團隊,嵌入標準文件自動化的ISVs |
| 供應商 | Aspose Pty Ltd | Iron Software |
顯而易見地對比:Aspose在純粹的格式廣度上勝出,而Iron Suite則在捆綁簡單性和每產品價格上勝出。 真正需要CAD、3D或DICOM的團隊只有一個現實選擇;需要PDF+Office+OCR+條碼的團隊是教科書式的Iron Suite買家。
定價和授權
Aspose.Total發布一個六層永久矩陣加上一個按使用量付費選項:開發者小型企業$3,999,開發者OEM $11,997,開發者SDK $79,980,站點小型企業$19,995,站點OEM $55,986,站點SDK $199,950,還有從$1,999/月的不限開發者按使用量計費。 每個永久層包含一年的更新和免費支持; 更新約50%折扣。SDK再分發層級名稱明確,含部署數量配額(開發者SDK層級50個商業部署,站點SDK層級250個)。
Iron Suite以五個等級水平(Lite, Plus, Professional, Unlimited, Enterprise)的單一永久每開發者許可出售,從$2,998開始。 市場定位為"所有10個產品僅需2個價格,節省75%",基礎許可對授權座位、位置或專案免版稅。 SaaS、OEM和超出基礎許可的分佈再分發使用單一、獨立定價的再分發載入組件,而不是多層SDK矩陣。
實踐中的對比:Aspose的矩陣為採購團隊提供了每種部署形態的層級,但需要在站點/SDK層級進行談判。 Iron Suite的平行永久模型為開發者提供了一個不必涉及銷售的內部報價公開數字。
Aspose.Total for .NET 是什麼
Aspose.Total for .NET 是由 Aspose Pty Ltd 發布的主套裝。它將整個 Aspose .NET 目錄(目前 26+ 專用程式庫)彙整合一個授權 SKU。 這個套裝定位於中型市場和企業團隊、系統整合商和需要在伺服器端讀取、寫入或轉換幾乎任何商業文件格式的ISVs,而不依賴於 Microsoft Office 或 Adobe 安裝。 Aspose 提供獨立進度的各個程式庫更新,但將它們集合到同一Aspose.Total NuGet元包中,這個套裝支持每開發者永久購買和按使用量付費。
關鍵的捆綁組件和能力:
- Office formats: Aspose.Words (DOCX), Aspose.Cells (XLSX), Aspose.Slides (PPTX), Aspose.Email (MSG/PST/MBOX)
- PDF 和結構化文件:Aspose.PDF, Aspose.HTML, Aspose.Page (XPS/EPS), Aspose.SVG
- 成像與識別:Aspose.Imaging, Aspose.OCR, Aspose.OMR, Aspose.BarCode
- Niche/vertical formats: Aspose.CAD (DWG), Aspose.3D (glTF/FBX), Aspose.GIS (Shapefile), Aspose.Tasks (MS Project), Aspose.Diagram (Visio), Aspose.Note (OneNote), Aspose.Finance (XBRL), Aspose.Medical (DICOM)
- 新增功能:Aspose.LLM, Aspose.TeX, Aspose.Drawing, Aspose.Font
- 定價模型:永久的開發者/站點/OEM/SDK層級加上按使用量付費
什麼是Iron Suite
Iron Suite for .NET 是由 Iron Software 發布的套件,將所有十個Iron Software產品打包成一個每開發者永久授權,廣告爲"所有 10 個產品的價格比 2 便宜,節省75%",授權起價為$2,998。 這個套裝適合 .NET 開發人員和需要一個統一、合规程式碼先行工具套件來幾乎在每個後端系統中進行文件任務的 ISVs。這包括生成PDF、操作Word和Excel、運行OCR、生成功並讀取條碼、抓取網頁內容。 相同的組件運行於 .NET Framework 4.6.2+ 和現代 .NET(6/7/8/9/10),跨 Windows、Linux、macOS、Docker、Azure 和 AWS。
捆綁的十個產品:
- IronPDF:HTML到PDF渲染、PDF編輯、簽名、合併
- IronWord:DOCX建立和操作
- IronXL:Excel讀寫與公式計算
- IronPPT:PowerPoint建立與編輯
- IronOCR:基於Tesseract的OCR與圖像預處理
- IronBarcode:1D/2D條碼讀取與寫入
- IronQR:專用QR程式碼程式庫
- IronPrint:程式化列印
- IronZIP:ZIP壓縮檔案建立與提取
- IronWebScraper:網頁爬蟲與內容提取
功能比較
文字處理
生成Word文件和DOCX轉PDF是.NET團隊中最常見的後端任務之一。 兩個套件都能做到這一點,而無需在伺服器上安裝Microsoft Word。
// Aspose.Words handles Word document creation, manipulation, and PDF rendering with no Office install.
// NuGet: Install-Package Aspose.Words
using Aspose.Words;
using Aspose.Words.Saving;
class Program
{
static void Main()
{
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Font.Size = 18;
builder.Font.Bold = true;
builder.Writeln("Quarterly Report");
builder.Font.Size = 11;
builder.Font.Bold = false;
builder.Writeln("Generated from a .NET service with no Microsoft Word dependency.");
PdfSaveOptions options = new PdfSaveOptions { Compliance = PdfCompliance.PdfA2u };
doc.Save("report.pdf", options);
}
}// Aspose.Words handles Word document creation, manipulation, and PDF rendering with no Office install.
// NuGet: Install-Package Aspose.Words
using Aspose.Words;
using Aspose.Words.Saving;
class Program
{
static void Main()
{
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Font.Size = 18;
builder.Font.Bold = true;
builder.Writeln("Quarterly Report");
builder.Font.Size = 11;
builder.Font.Bold = false;
builder.Writeln("Generated from a .NET service with no Microsoft Word dependency.");
PdfSaveOptions options = new PdfSaveOptions { Compliance = PdfCompliance.PdfA2u };
doc.Save("report.pdf", options);
}
}Imports Aspose.Words
Imports Aspose.Words.Saving
Class Program
Shared Sub Main()
Dim doc As New Document()
Dim builder As New DocumentBuilder(doc)
builder.Font.Size = 18
builder.Font.Bold = True
builder.Writeln("Quarterly Report")
builder.Font.Size = 11
builder.Font.Bold = False
builder.Writeln("Generated from a .NET service with no Microsoft Word dependency.")
Dim options As New PdfSaveOptions With {.Compliance = PdfCompliance.PdfA2u}
doc.Save("report.pdf", options)
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
Module Program
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 ModuleAspose.Words 使用了一種來自其舊版API設計的 DocumentBuilder 游標模式,並在保存選項上直接暴露PDF/A符合級別。 IronWord 使用的是一個明確的段落/文字運行物件圖,這更接近於底層的OOXML模型,並且在現代C#中自然讀寫。 兩者生成的輸出是等效的; IronWord的範例比Aspose.Words少約3行,而Aspose.Words在一次調用中暴露了更多PDF導出調整介面。
Excel 處理
具有公式重新計算的Excel操作是另一個幾乎普遍存在的Office工作負載。 兩個套件都可以寫入XLSX,計算伺服器端公式,並導出為PDF。
// Aspose.Cells provides a full XLSX engine including formula calculation, charts, and PDF export.
using Aspose.Cells;
class Program
{
static void Main()
{
Workbook book = new Workbook();
Worksheet sheet = book.Worksheets[0];
sheet.Cells["A1"].PutValue("Region");
sheet.Cells["B1"].PutValue("Revenue");
sheet.Cells["A2"].PutValue("EMEA");
sheet.Cells["B2"].PutValue(120000);
sheet.Cells["B4"].Formula = "=SUM(B2:B3)";
book.CalculateFormula();
book.Save("revenue.xlsx", SaveFormat.Xlsx);
book.Save("revenue.pdf", SaveFormat.Pdf);
}
}// Aspose.Cells provides a full XLSX engine including formula calculation, charts, and PDF export.
using Aspose.Cells;
class Program
{
static void Main()
{
Workbook book = new Workbook();
Worksheet sheet = book.Worksheets[0];
sheet.Cells["A1"].PutValue("Region");
sheet.Cells["B1"].PutValue("Revenue");
sheet.Cells["A2"].PutValue("EMEA");
sheet.Cells["B2"].PutValue(120000);
sheet.Cells["B4"].Formula = "=SUM(B2:B3)";
book.CalculateFormula();
book.Save("revenue.xlsx", SaveFormat.Xlsx);
book.Save("revenue.pdf", SaveFormat.Pdf);
}
}Imports Aspose.Cells
Class Program
Shared Sub Main()
Dim book As New Workbook()
Dim sheet As Worksheet = book.Worksheets(0)
sheet.Cells("A1").PutValue("Region")
sheet.Cells("B1").PutValue("Revenue")
sheet.Cells("A2").PutValue("EMEA")
sheet.Cells("B2").PutValue(120000)
sheet.Cells("B4").Formula = "=SUM(B2:B3)"
book.CalculateFormula()
book.Save("revenue.xlsx", SaveFormat.Xlsx)
book.Save("revenue.pdf", SaveFormat.Pdf)
End Sub
End Class// 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 ModuleAspose.Cells 暴露了更深入的公式和圖表介面(450+個內建功能、條件格式、和PDF導出是一等公民),如果您的工作流包含複雜的Excel自動化,這就是更強的選擇。 IronXL 覆蓋了日常的讀寫/重算範圍,使用了一個基於索引器的 API(sheet["A1"].Value = …, sheet["B4"].Formula = …, workbook.EvaluateAll()),大多數.NET開發人員立即就找到了它的可讀性。
條碼生成與讀取
條碼工作負載在Aspose中作為一個程式庫進行配送,在Iron Suite中作為兩個專用產品:IronBarcode 用於1D/2D符號學和IronQR專門用於QR。 以下為Aspose片段演示生成; IronBarcode片段演示了讀取路徑,它是更具挑戰性的方向。 兩個程式庫都可處理寫入和讀取。
// Aspose.BarCode generates and recognizes 1D, 2D, and postal symbologies across the suite.
using Aspose.BarCode.Generation;
class Program
{
static void Main()
{
BarcodeGenerator code128 = new BarcodeGenerator(EncodeTypes.Code128, "ORDER-44213");
code128.Parameters.Resolution = 300;
code128.Save("code128.png", BarCodeImageFormat.Png);
BarcodeGenerator qr = new BarcodeGenerator(EncodeTypes.QR, "https://example.com/track/44213");
qr.Save("qr.png", BarCodeImageFormat.Png);
}
}// Aspose.BarCode generates and recognizes 1D, 2D, and postal symbologies across the suite.
using Aspose.BarCode.Generation;
class Program
{
static void Main()
{
BarcodeGenerator code128 = new BarcodeGenerator(EncodeTypes.Code128, "ORDER-44213");
code128.Parameters.Resolution = 300;
code128.Save("code128.png", BarCodeImageFormat.Png);
BarcodeGenerator qr = new BarcodeGenerator(EncodeTypes.QR, "https://example.com/track/44213");
qr.Save("qr.png", BarCodeImageFormat.Png);
}
}Imports Aspose.BarCode.Generation
Class Program
Shared Sub Main()
Dim code128 As New BarcodeGenerator(EncodeTypes.Code128, "ORDER-44213")
code128.Parameters.Resolution = 300
code128.Save("code128.png", BarCodeImageFormat.Png)
Dim qr As New BarcodeGenerator(EncodeTypes.QR, "https://example.com/track/44213")
qr.Save("qr.png", BarCodeImageFormat.Png)
End Sub
End Class// NuGet: Install-Package IronBarcode
using IronBarCode;
class Program
{
static void Main()
{
var results = BarcodeReader.Read("shipment-label.png");
foreach (var barcode in results)
{
Console.WriteLine($"Value: {barcode.Value}");
Console.WriteLine($"Format: {barcode.BarcodeType}");
}
}
}// NuGet: Install-Package IronBarcode
using IronBarCode;
class Program
{
static void Main()
{
var results = BarcodeReader.Read("shipment-label.png");
foreach (var barcode in results)
{
Console.WriteLine($"Value: {barcode.Value}");
Console.WriteLine($"Format: {barcode.BarcodeType}");
}
}
}Imports IronBarCode
Class Program
Shared Sub Main()
Dim results = BarcodeReader.Read("shipment-label.png")
For Each barcode In results
Console.WriteLine($"Value: {barcode.Value}")
Console.WriteLine($"Format: {barcode.BarcodeType}")
Next
End Sub
End ClassAspose.BarCode 使用一個參數化的生成器類 BarcodeReader),這在現代.NET中讀起來更自然,並為QR掃描工作流提供了一條專用、優化的路徑。
PDF生成與合併
PDF 是這兩個套件在風格上最明顯的分歧處。 Aspose.PDF 基於頁面物件圖逐步構建文件; IronPDF 使用真實瀏覽器引擎從HTML進行渲染。
// Aspose.PDF creates, edits, and merges PDF documents independent of Adobe.
using Aspose.Pdf;
class Program
{
static void Main()
{
Document combined = new Document();
foreach (string path in new[] { "invoice.pdf", "terms.pdf", "appendix.pdf" })
{
Document part = new Document(path);
combined.Pages.Add(part.Pages);
}
combined.Save("merged.pdf");
}
}// Aspose.PDF creates, edits, and merges PDF documents independent of Adobe.
using Aspose.Pdf;
class Program
{
static void Main()
{
Document combined = new Document();
foreach (string path in new[] { "invoice.pdf", "terms.pdf", "appendix.pdf" })
{
Document part = new Document(path);
combined.Pages.Add(part.Pages);
}
combined.Save("merged.pdf");
}
}Imports Aspose.Pdf
Class Program
Shared Sub Main()
Dim combined As New Document()
For Each path As String In {"invoice.pdf", "terms.pdf", "appendix.pdf"}
Dim part As New Document(path)
combined.Pages.Add(part.Pages)
Next
combined.Save("merged.pdf")
End Sub
End Class// 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 ModuleAspose.PDF暴露了一個精細的低層頁面物件模型,適用於細粒度編輯(合併、拆分、修訂、頁面樹操 manipulation)。 IronPDF 的 PdfDocument API 直接在 PDF 物件模型上涵蓋相同的操作(HTML round-trip 只在建立時發生,而不是在操作期間):PdfDocument.Merge(...) 用於組裝,頁面範圍複製和刪除用於拆分,而 RedactTextOnAllPages(...) 用於文字遮罩。 IronPDF 支持相同的 PDF/A 符合等級(A-1a, A-1b, A-2a, A-2b, A-3a, A-3b),通過 PdfAVersions enum 在 SaveAsPdfA 上,並且還提供專用的 PDF/UA 無障礙支持:RenderHtmlAsPdfUA(html) 一次呼叫即可產生標記的可存取性 PDF(預設 PDF/UA-1; 同時支持 PDF/UA-2),文件滿足508節和WCAG 2.0 AA標準。 這兩個套件在從網頁應用資料建立PDF時最為不同:IronPDF 採用開發者已經為瀏覽器撰寫的相同 HTML/CSS 並生成一個 Chrome 渲染的 PDF(現代 CSS、網頁字體、SVG)透過捆綁的 Chromium 單一包安裝; Aspose.PDF 基於頁面畫布逐步構建文件。
PowerPoint輸出
PowerPoint 操作在 Aspose.Slides 中作為一個一流的程式庫提供。Iron Suite的 IronPPT 也涵蓋 PowerPoint 建立,但定位於建立/操作程式庫而不是深度的 PPTX 功能對等表面。
// Aspose.Slides handles PowerPoint creation, manipulation, and export to PDF or images.
using Aspose.Slides;
using Aspose.Slides.Export;
class Program
{
static void Main()
{
using (Presentation pres = new Presentation())
{
ISlide slide = pres.Slides[0];
IAutoShape shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 600, 80);
shape.TextFrame.Text = "Aspose.Slides exports PPTX without PowerPoint installed.";
pres.Save("deck.pptx", SaveFormat.Pptx);
pres.Save("deck.pdf", SaveFormat.Pdf);
}
}
}// Aspose.Slides handles PowerPoint creation, manipulation, and export to PDF or images.
using Aspose.Slides;
using Aspose.Slides.Export;
class Program
{
static void Main()
{
using (Presentation pres = new Presentation())
{
ISlide slide = pres.Slides[0];
IAutoShape shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 600, 80);
shape.TextFrame.Text = "Aspose.Slides exports PPTX without PowerPoint installed.";
pres.Save("deck.pptx", SaveFormat.Pptx);
pres.Save("deck.pdf", SaveFormat.Pdf);
}
}
}Imports Aspose.Slides
Imports Aspose.Slides.Export
Class Program
Shared Sub Main()
Using pres As New Presentation()
Dim slide As ISlide = pres.Slides(0)
Dim shape As IAutoShape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 600, 80)
shape.TextFrame.Text = "Aspose.Slides exports PPTX without PowerPoint installed."
pres.Save("deck.pptx", SaveFormat.Pptx)
pres.Save("deck.pdf", SaveFormat.Pdf)
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 ModuleAspose.Slides 全面涵蓋較廣邊緣(動畫,過渡,進階形狀幾何,智慧藝術),與PowerPoint文件格式規範保持平等。 IronPPT 涵蓋了常見的操作表面(幻燈片、文字、圖像、基礎形狀),有與Iron Suite其他部分相同的慣用感覺。PPT要求主要集中在創作和輸出的團隊都能得到很好的服務; 需要對現有甲板進行深度格式忠實編輯的團隊則著重於Aspose。
為什麼選擇Iron Suite進行Code-First.NET文件自動化
對於.NET團隊而言,其文件工作負載是由日常(來自網頁應用資料的PDF、Word和Excel報告,對掃描上傳的OCR,在運送標籤上的條碼)塑造的,Iron Suite是專門構建的。 這十個產品共享一個慣用的C# API表面,一個單一的授權登記模式和一個單一的供應商關係。無需協商SDK矩陣,沒有計量記數器計時,伺服器上也不需要安裝Office或Adobe。 對於程式碼先行的.NET文件工作的結構優勢:
- 單一捆綁,透明永久定價:每個層級,包括企業版的公開美元價格
- 對授權座位的免版稅部署,開箱即用; 通過一個整潔的再分發載入組件實現SaaS/OEM
- 建立和識別於一個捆綁包中(PDF/Word/Excel建立加上OCR/條碼/QR識別)
- HTML先行 PDF 生成,因此生成的PDF與使用者螢幕上看到的Chrome渲染相匹配
- 無運行時費用,無按文件計量
Iron Suite與Aspose.Total有何不同
- 每個層級的公開美元定價,包括企業版。Aspose的站點和SDK層級通常涉及採購談判; Iron Suite在公開頁面上給出每層級的一個數字。
- 一個捆綁,一個SKU,一個授權文件,對比於一個26個包的可轉移依賴樹,試用期間每個程式庫都帶有水印行為。
- HTML先行PDF渲染,具有完整的瀏覽器保真度(CSS、網頁字體、SVG),對比於Aspose.PDF的基於原始逐步頁面畫布的API。
- 基礎捆綁中的識別堆疊(OCR + 條碼 + QR),無需額外記量器或按頁費用;Aspose.OCR內部於Aspose.Total,但更廣的分發場景可能需要OEM級授權。
- 所有10個產品中慣用的.NET API表面,沒有
EncodeTypes風格的一類帶選項模式,也沒有從舊版API中繼承的DocumentBuilder游標。 - 範圍紀律。 Aspose追求地球上每種商業文件格式(CAD,GIS,3D,DICOM,XBRL); Iron Suite有意專注於約10個最高量類別。 對於不需要那些專業格式的團隊,Iron Suite捆綁包在顯著更低的進入價格上更契合。
結論
Aspose.Total和Iron Suite並不是直接替代品; 它們回答的問題不同。 Aspose.Total 是當您的問題是"我們需要讀取或寫入客戶可能丟給我們的任何文件格式"的正確答案,尤其當那個列表包括 CAD、3D、GIS、MS Project、XBRL 或 DICOM 時。Iron Suite當問題是"我們需要PDF、Word、Excel、OCR和條碼的單一捆綁包,單一授權和公開價格"時是正確答案。對於真正涵蓋20多種格式的中型市場和企業整合商和ISVs來說,Aspose的矩陣就值它的價錢。對於文件工作負載坐在十大類別之內的.NET團隊的更大人羣,Iron Suite在顯著較低的TCO上以永久、免版稅授權交付相同的頭條結果。 探索Iron Suite,包括$2,998入門層,請存取ironsoftware.com/csharp/suite。
