C# 中免费 PDF 库的隐藏成本
选择Syncfusion Document SDK和Iron Suite通常归结为一个门槛问题:买家是否符合Syncfusion的社区许可证资格? 如果公司收入低于1百万美元且不超过5名开发者,不超过10名员工,则Document SDK以$0的价格商用无障碍使用,这是Iron没有等效产品的起步。 在这些上限之上,采购故事发生改变:Syncfusion的付费Document SDK按年度每开发者订阅制,只提供报价,而Iron Suite作为一个每开发者的组合包永久出售,包含从$2,998的十个Iron Software产品,免版税针对已授权的席位,SaaS和OEM再分发通过一个单一的再分发附加选项覆盖。
此比较主要基于采购决策实际依赖的因素:社区许可证资格是否适用,过这些限制后每个套件的定价方式,实际上包含了什么。 能力详情和代码接下来是给将要交付的工程师们的。
一目了然的比较
| 维度 | Syncfusion Document SDK | Iron Suite |
|---|---|---|
| 定价定位 | 仅通过报价; Document SDK和UI Suite都在公共定价页面路由到"获取自定义报价"; 社区许可证免费 | Lite $2,998 / Plus $4,498 / Professional $8,998 / Unlimited $17,998 (企业定制); 全部10个产品以2个的价格 |
| 许可模式 | 年度每开发者订阅(Starter / Growth / 业务团队等级); 免版税部署; 社区许可证对<$1M收入/≤5名开发者/≤10名员工免费 | 每开发者的永久许可; 许可席位免版税; SaaS/OEM通过Redistribution Add-On |
| 捆绑中的组件 | 4个主要库(PDF, DocIO, XlsIO, Presentation); OCR/Barcode/压缩位于相邻的Essential Studio平台中 | 10个产品(IronPDF、IronWord、IronXL、IronPPT、IronOCR、IronBarcode、IronQR、IronPrint、IronZIP、IronWebScraper) |
| 格式/能力覆盖 | PDF, Word, Excel, PowerPoint为主要特性;OCR/Barcode/HTML/Visio通过Essential Studio | PDF、Office、OCR、Barcode/QR、ZIP、Print、Web Scraping |
| 跨平台/云 | Windows、Linux、macOS、Azure、AWS | Windows、Linux、macOS、Docker、Azure、AWS Lambda |
| .NET运行时支持 | .NET Standard 2.0, .NET 8, .NET 9, .NET 10 | .NET Framework 4.6.2+, .NET Core, .NET 6/7/8/9/10 |
| 目标市场 | 从SMB到企业;对于资格符合社区许可证的团队和现有Syncfusion UI客户具有很强的吸引力 | 独立开发者,小型中型市场.NET团队,ISVs |
| 供应商 | Syncfusion, 公司 | Iron Software |
对于符合社区许可证(5个或更少开发者,10个或更少员工)资格的独立开发者或收入不足100万美元的初创企业,Syncfusion Document SDK可进行全面商业用途且完全$0,是无与伦比的启动选择。对于超出这些限制的.NET团队,或者更倾向于永久拥有而非续订的团队,Iron Suite的十产品组合提供了$2,998的覆盖,无需仅报价销售。
定价和许可
Syncfusion Document SDK采用年度每开发者订阅模型,并有三种团队许可证等级(Starter <25 名开发者,Growth 25–100 名开发者,Business >100 名开发者),至少1 年期限,且在期限内包括更新和支持。 部署是免版税的。 社区许可证是主要的差异化:对年收入在1百万美元以下、5名或更少开发者、10名或更少员工的公司免费商用(若获得风投支持则设有3百万美元资金上限)。 付费定价在Syncfusion公共页面上仅通过报价。 Document SDK和UI Suite都是通过"获取自定义报价"路由的。
Iron Suite作为一个单一的每开发者永久许可证出售,共有五个级别(Lite、Plus、Professional、Unlimited和Enterprise),起价为$2,998,其市场定位为"10个产品的价格仅相当于2个产品"。 节省75%。"基础许可证对已许可的席位、地点或项目免版税,超出基础许可证的SaaS、OEM或分布式再分发使用单一、单独定价的再分发附加组件。
在3至5年内,符合社区许可证资格的团队在整个期间均无需支付费用,并可在资格持续有效的情况下拥有该捆绑包。 不符合限制的团队将在Syncfusion的报价价格上面临年度订阅续约周期。Iron Suite的永久每开发者许可证则以等级价格一次性购买;购买的版本永久拥有,续约仅用于继续更新和支持。
什么是Syncfusion Document SDK
Syncfusion Document SDK 是Syncfusion Essential Studio平台中的仅为文件的SKU,由Syncfusion, 公司发布。Essential Studio UI控件(如Rich Edit、Spreadsheet、PDF Viewer)中使用的相同引擎单独作为无头后端库出售。 Document SDK定位为从中小型企业到大企业的.NET团队,他们希望获得一个对开发者友好的跨平台文档工具包,并因为社区许可证而特别具有吸引力,这使符合条件的小型组织以$0的价格全面商用使用。 最新参考版本是33.2Volume(Syncfusion.Pdf.Net.Core 33.2.7,2026年5月19日发布),并且这些库面向.NET Standard 2.0 和 .NET 8/9/10。
关键的捆绑组件和功能:
- PDF库:创建、编辑、签名、填表、压缩、合并、拆分
- Word库(DocIO):具有邮件合并、查找替换、文档合并的DOCX处理
- Excel库(XlsIO):XLSX引擎,具备80多种图表类型、公式、条件格式和数据透视表
- PowerPoint库(Presentation):幻灯片、形状、图表、表格、动画
- 在更广泛的Essential Studio平台中的相邻库:OCR、条形码、压缩/ZIP、HTML转换器、Visio
- 社区许可证:免费提供给收入低于1百万美元,≤5名开发者,≤10名员工的公司
什么是Iron Suite
Iron Suite 是Iron Software的十产品 .NET 捆绑包,Office 栈涵盖 DOCX、XLSX 和 PPTX 编程:IronWord 拥有段落和文本块对象图,IronXL 支持公式重计算和图表及数据透视表,IronPPT 用于幻灯片创建和内容提取。 IronPDF 携带 PDF 表面,识别功能栈(IronOCR,IronBarcode,IronQR)负责 OCR 和条形码工作,IronPrint、IronZIP 和 IronWebScraper 完成实用工具。 在五个级别的每开发者永久许可证下出售,起价为$2,998,无需年度续订即可保留所购买的版本。 对已授权席位免版税。 SaaS和OEM再分发使用单独的Redistribution Add-On。
这十个组件,按与编程的Office和PDF工作流的相关性进行分组:
- Office 栈(锚点):IronWord(DOCX 带有直接映射到 OOXML 的文本块对象图,自定义样式、字体、页眉、页脚、内容提取); IronXL(XLSX 具有公式重计算、图表、数据透视表、条件格式化、数据验证); IronPPT(PPTX创建、编辑、内容提取)。
- PDF生成(IronPDF):HTML到PDF和URL到PDF渲染、原生合并和拆分、符合eIDAS和ESIGN的PKCS#12及HSM及TSA签名、PDF/A到PDF/A-4、PDF/UA-1和PDF/UA-2、加密、AcroForm填充及扁平化、字体管理、栅格化、压缩及线性化。
- 识别:IronOCR(Tesseract 5,125+种语言,手写支持约90%英语); IronBarcode(30多种符号学,MAUI扫描仪); IronQR(ML驱动,批量
ReadPdfs)。 - 实用工具:IronPrint, IronZIP , IronWebScraper。
能力比较
PDF生成
PDF生成是两个套件的旗舰工作负载。 Syncfusion在PdfPage.Graphics平面上逐个构建PDF原语; IronPDF使用真实的Chrome引擎从HTML渲染相同内容。
// Syncfusion PDF Library creates and edits PDFs with no external dependency.
// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Drawing;
using System.IO;
class Program
{
static void Main()
{
// Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-KEY");
using PdfDocument doc = new PdfDocument();
PdfPage page = doc.Pages.Add();
PdfFont title = new PdfStandardFont(PdfFontFamily.Helvetica, 20, PdfFontStyle.Bold);
page.Graphics.DrawString("Statement of Account", title, PdfBrushes.Black, new PointF(40, 40));
PdfFont body = new PdfStandardFont(PdfFontFamily.Helvetica, 11);
page.Graphics.DrawString("Generated 2026-05-26", body, PdfBrushes.DarkSlateGray, new PointF(40, 80));
using FileStream stream = new FileStream("statement.pdf", FileMode.Create);
doc.Save(stream);
}
}// Syncfusion PDF Library creates and edits PDFs with no external dependency.
// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Drawing;
using System.IO;
class Program
{
static void Main()
{
// Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-KEY");
using PdfDocument doc = new PdfDocument();
PdfPage page = doc.Pages.Add();
PdfFont title = new PdfStandardFont(PdfFontFamily.Helvetica, 20, PdfFontStyle.Bold);
page.Graphics.DrawString("Statement of Account", title, PdfBrushes.Black, new PointF(40, 40));
PdfFont body = new PdfStandardFont(PdfFontFamily.Helvetica, 11);
page.Graphics.DrawString("Generated 2026-05-26", body, PdfBrushes.DarkSlateGray, new PointF(40, 80));
using FileStream stream = new FileStream("statement.pdf", FileMode.Create);
doc.Save(stream);
}
}Imports Syncfusion.Pdf
Imports Syncfusion.Pdf.Graphics
Imports Syncfusion.Drawing
Imports System.IO
Module Program
Sub Main()
' Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-KEY")
Using doc As New PdfDocument()
Dim page As PdfPage = doc.Pages.Add()
Dim title As PdfFont = New PdfStandardFont(PdfFontFamily.Helvetica, 20, PdfFontStyle.Bold)
page.Graphics.DrawString("Statement of Account", title, PdfBrushes.Black, New PointF(40, 40))
Dim body As PdfFont = New PdfStandardFont(PdfFontFamily.Helvetica, 11)
page.Graphics.DrawString("Generated 2026-05-26", body, PdfBrushes.DarkSlateGray, New PointF(40, 80))
Using stream As New FileStream("statement.pdf", FileMode.Create)
doc.Save(stream)
End Using
End Using
End Sub
End Module// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = @"<h1>Invoice 2026-0428</h1><p>Customer: Acme Corp</p><p>Total due: $1,240.00</p>";
using var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = @"<h1>Invoice 2026-0428</h1><p>Customer: Acme Corp</p><p>Total due: $1,240.00</p>";
using var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
}
}Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim html As String = "<h1>Invoice 2026-0428</h1><p>Customer: Acme Corp</p><p>Total due: $1,240.00</p>"
Using pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("invoice.pdf")
End Using
End Sub
End ClassSyncfusion 的API在基本级别上暴露出一个深层的PDF功能表面(数字签名、AcroForm填表、OCR增强的PDF、PDF/A和PDF/UA合规性)。 IronPDF抽象了页面画布模型,并允许开发者重用他们在其Web应用程序中使用的相同HTML/CSS,这大大减少了来自Web数据的PDF代码行数。 IronPDF通过PdfAVersions枚举支持完整的PDF/A一致性家族(A-1a、A-1b、A-2a、A-2b、A-3a、A-3b,以及ISO 19005-4:2020中增加的PDF/A-4/4E/4F家族),并通过PdfDocument.SaveAsPdfUA提供专用的PDF/UA无障碍性输出(PDF/UA-1默认,PDF/UA-2通过参数); 记录为符合Section 508 和 WCAG 2.0 AA)。
文档处理和邮件合并
在模板上的邮件合并是Syncfusion DocIO的标志性工作负载之一。 IronWord 使用现代对象图API针对DOCX生成和操作。
// Syncfusion DocIO performs Word read/write plus mail merge against a template.
// NuGet: Install-Package Syncfusion.DocIO.Net.Core
using Syncfusion.DocIO;
using Syncfusion.DocIO.DLS;
using System.IO;
class Program
{
static void Main()
{
using WordDocument doc = new WordDocument("welcome-template.docx", FormatType.Docx);
string[] fields = { "CustomerName", "OrderId", "Total" };
string[] values = { "Acme Corp", "44213", "$1,498.00" };
doc.MailMerge.Execute(fields, values);
using FileStream output = new FileStream("welcome.docx", FileMode.Create);
doc.Save(output, FormatType.Docx);
}
}// Syncfusion DocIO performs Word read/write plus mail merge against a template.
// NuGet: Install-Package Syncfusion.DocIO.Net.Core
using Syncfusion.DocIO;
using Syncfusion.DocIO.DLS;
using System.IO;
class Program
{
static void Main()
{
using WordDocument doc = new WordDocument("welcome-template.docx", FormatType.Docx);
string[] fields = { "CustomerName", "OrderId", "Total" };
string[] values = { "Acme Corp", "44213", "$1,498.00" };
doc.MailMerge.Execute(fields, values);
using FileStream output = new FileStream("welcome.docx", FileMode.Create);
doc.Save(output, FormatType.Docx);
}
}Imports Syncfusion.DocIO
Imports Syncfusion.DocIO.DLS
Imports System.IO
Module Program
Sub Main()
Using doc As New WordDocument("welcome-template.docx", FormatType.Docx)
Dim fields As String() = {"CustomerName", "OrderId", "Total"}
Dim values As String() = {"Acme Corp", "44213", "$1,498.00"}
doc.MailMerge.Execute(fields, values)
Using output As New FileStream("welcome.docx", FileMode.Create)
doc.Save(output, FormatType.Docx)
End Using
End Using
End Sub
End Module// 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 ModuleSyncfusion DocIO 以模板 DOCX 上的邮件合并作为一流功能,具有命名字段和数据集驱动的变体。 IronWord暴露一个段落/文本块对象图,它更贴近OOXML模型,非常适合从头生成DOCX; IronWord中的邮件合并模板工作流通常使用查找和替换文本运行,而不是专门的MailMerge API。
Excel处理
两个套件都涵盖Excel创建、公式重新计算和PDF导出。 Syncfusion XlsIO普遍被认为是市场上最深入的.NET Excel引擎之一。
// Syncfusion XlsIO creates and recalculates XLSX workbooks server-side.
// NuGet: Install-Package Syncfusion.XlsIO.Net.Core
using Syncfusion.XlsIO;
using System.IO;
class Program
{
static void Main()
{
using ExcelEngine engine = new ExcelEngine();
IApplication app = engine.Excel;
app.DefaultVersion = ExcelVersion.Xlsx;
IWorkbook book = app.Workbooks.Create(1);
IWorksheet sheet = book.Worksheets[0];
sheet.Range["A1"].Text = "Item";
sheet.Range["B1"].Text = "Qty";
sheet.Range["B4"].Formula = "=SUM(B2:B3)";
book.CalculateAllValue();
using FileStream stream = new FileStream("inventory.xlsx", FileMode.Create);
book.SaveAs(stream);
}
}// Syncfusion XlsIO creates and recalculates XLSX workbooks server-side.
// NuGet: Install-Package Syncfusion.XlsIO.Net.Core
using Syncfusion.XlsIO;
using System.IO;
class Program
{
static void Main()
{
using ExcelEngine engine = new ExcelEngine();
IApplication app = engine.Excel;
app.DefaultVersion = ExcelVersion.Xlsx;
IWorkbook book = app.Workbooks.Create(1);
IWorksheet sheet = book.Worksheets[0];
sheet.Range["A1"].Text = "Item";
sheet.Range["B1"].Text = "Qty";
sheet.Range["B4"].Formula = "=SUM(B2:B3)";
book.CalculateAllValue();
using FileStream stream = new FileStream("inventory.xlsx", FileMode.Create);
book.SaveAs(stream);
}
}Imports Syncfusion.XlsIO
Imports System.IO
Module Program
Sub Main()
Using engine As New ExcelEngine()
Dim app As IApplication = engine.Excel
app.DefaultVersion = ExcelVersion.Xlsx
Dim book As IWorkbook = app.Workbooks.Create(1)
Dim sheet As IWorksheet = book.Worksheets(0)
sheet.Range("A1").Text = "Item"
sheet.Range("B1").Text = "Qty"
sheet.Range("B4").Formula = "=SUM(B2:B3)"
book.CalculateAllValue()
Using stream As New FileStream("inventory.xlsx", FileMode.Create)
book.SaveAs(stream)
End Using
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 ModuleSyncfusion XlsIO覆盖了更深入的Excel界面,80多种图表类型、完整的条件格式、数据透视表、以及与Excel紧密匹配的计算引擎。 IronXL通过一个索引器风格的单元格API(workbook.EvaluateAll())来涵盖日常的读/写/重算范围,需要的形式较少。 依赖Excel高级接口(数据透视表、复杂条件格式化、80多种图表类型)的工作流是XlsIO不断深入投资的案例——对于日常数据库提取数据到XLSX的流程,IronXL用更少的代码行完成。
PowerPoint生成
PowerPoint创建与Syncfusion Document SDK一起捆绑。Iron Suite包含 IronPPT 用于 PowerPoint,尽管Iron Suite参考集将其定位为一个创建库,而不是深度编辑或动画界面。
// Syncfusion Presentation creates PPTX decks without PowerPoint installed.
// NuGet: Install-Package Syncfusion.Presentation.Net.Core
using Syncfusion.Presentation;
using System.IO;
class Program
{
static void Main()
{
using IPresentation pres = Presentation.Create();
ISlide slide = pres.Slides.Add(SlideLayoutType.TitleOnly);
IShape title = slide.Shapes[0] as IShape;
title.TextBody.AddParagraph("Quarterly Update");
IShape body = slide.Shapes.AddTextBox(60, 180, 600, 80);
body.TextBody.AddParagraph("Generated from .NET — no PowerPoint dependency.");
using FileStream stream = new FileStream("update.pptx", FileMode.Create);
pres.Save(stream);
}
}// Syncfusion Presentation creates PPTX decks without PowerPoint installed.
// NuGet: Install-Package Syncfusion.Presentation.Net.Core
using Syncfusion.Presentation;
using System.IO;
class Program
{
static void Main()
{
using IPresentation pres = Presentation.Create();
ISlide slide = pres.Slides.Add(SlideLayoutType.TitleOnly);
IShape title = slide.Shapes[0] as IShape;
title.TextBody.AddParagraph("Quarterly Update");
IShape body = slide.Shapes.AddTextBox(60, 180, 600, 80);
body.TextBody.AddParagraph("Generated from .NET — no PowerPoint dependency.");
using FileStream stream = new FileStream("update.pptx", FileMode.Create);
pres.Save(stream);
}
}Imports Syncfusion.Presentation
Imports System.IO
Module Program
Sub Main()
Using pres As IPresentation = Presentation.Create()
Dim slide As ISlide = pres.Slides.Add(SlideLayoutType.TitleOnly)
Dim title As IShape = TryCast(slide.Shapes(0), IShape)
title.TextBody.AddParagraph("Quarterly Update")
Dim body As IShape = slide.Shapes.AddTextBox(60, 180, 600, 80)
body.TextBody.AddParagraph("Generated from .NET — no PowerPoint dependency.")
Using stream As New FileStream("update.pptx", FileMode.Create)
pres.Save(stream)
End Using
End Using
End Sub
End Module// 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 ModuleSyncfusion Presentation 一直在幻灯片布局、母版幻灯片、动画、转换和转换为PDF和图像上挖掘深度,一个宽广的PPTX特性表面。 IronPPT 以与Iron Suite其余部分相同的惯用风格涵盖 PowerPoint 的创建和常见的操作界面(幻灯片、文本、图像、基本形状)。复杂的幻灯片转换和动画保真工作流是Syncfusion 一直在为 Presentation 定位的情况——从.NET数据生成标准报告幻灯片由任何一个很好服务。
为何选择Iron Suite进行代码优先的.NET文档自动化
对于不符合Syncfusion的社区许可证资格且更喜欢公共页面上的数值永久每开发者许可证的.NET团队,Iron Suite是结构上更简单的捆绑包。 十个产品,一个SKU,一个许可证文件,透明的美元定价。 对日常代码优先.NET文档工作的结构性边缘:
- 每个等级都有公开的美元定价:无需请求报价,无销售主导的谈判
- 永久所有权:您拥有您所购买的版本; 续约是为了更新和支持,而不是为了继续使用
- 以价格覆盖更广泛的捆绑包:10个涵盖创建和识别的产品VS Syncfusion Document SDK的4个主要库
- 许可席位免版税部署为开箱即用; SaaS/OEM通过一个Redistribution Add-On
- HTML优先的PDF生成,使PDF与用户在屏幕上看到的Chrome渲染一致
- 在同一捆绑包中的识别功能栈:OCR,Barcode,QR,而无需进入更广泛的Essential Studio平台
Iron Suite与Syncfusion Document SDK有何不同
- 公开美元定价。 当买家超过社区许可证限制时,Syncfusion仅通过报价,且以其销售主导的加售而闻名。 Iron Suite在每个等级上公布了一个平板数字。
- 永久对订阅。 Iron Suite开发者永久; Syncfusion是一个定期订阅,必须续订以获取更新和支持。 在3-5年窗口内,总成本差异很重要。
- 在支付等级提供更广泛的捆绑包。 Iron Suite捆绑了10个涵盖创建和识别(OCR、条码、QR、网抓、ZIP、打印)的产品。 Syncfusion Document SDK主打4个; OCR、条码和压缩位于相邻的Essential Studio SKU中。
- HTML优先的PDF生成具备真实浏览器的保真度对比Syncfusion的PdfPage/Graphics基本API。
- 开发试用无需许可证密钥注册,与Syncfusion的
SyncfusionLicenseProvider.RegisterLicense要求的付费部署相比。 - 买家简介。 Syncfusion的付费客户往往是已经为UI购买Essential Studio的企业; Iron面向不需要(也不想支付)UI控制依赖的后端仅团队。
结论
您的团队是否符合社区许可证限制(收入低于1 Millionen美元,五名或以下开发者,十名或以下员工,低于三百万美元VC融资)? 如果是这样,那么Syncfusion Document SDK在技术上是最适合的,以$0的价格进行全面商用和作为额外福利的Essential Studio UI集成为已经在那里的团队。 这些限制不适用,或者您的采购更偏好永久所有权而非续订吗? 然后Iron Suite每开发者售价为$2,998是更简洁的选择:十个产品涵盖PDF(包括完整的PDF/A和PDF/UA工作)、Office生成、OCR和条形码及QR识别,以及邻近实用工具,无需仅报价销售。 可在ironsoftware.com/csharp/suite获得。
