PORóWNANIE

Iron Suite a Aspose.Total dla .NET

Wdrożenie produkcyjne Aspose.Total wygląda jak malezowiec: Developer Small Business za $3,999, OEM za $11,997, SDK za $79,980 (kwota 50 komercyjnych wdrożeń), a nastepnie poziomy Site Small Business/OEM/SDK, plus mierzone Pay-As-You-Go od $1,999/miesiac dla nieograniczonej liczby deweloperów. Każdy krok to oddzielny poziom z wyraźnie określonymi kwotami redystrybucji, zaprojektowany dla integratorów systemowych i ISV, które obejmują 20+ niszowych formatów.Iron Suitedostarcza dziesięć produktów"Iron Software"w jednym wieczystym pakiecie przypisanym do dewelopera od $2,998, bez opłat licencyjnych dla licencjonowanych miejsc, z możliwością SaaS, OEM i rozproszonej redystrybucji, objętych jednym dodatkiem do redystrybucji zamiast wielopoziomowej macierzy SDK.

To porownanie zaczyna się od tego, na czym faktycznie opiera się decyzja zakupu: jak wyceniona jest każda suite, jak jest zbudowana jej licencja i co faktycznie jest w paczce. 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

WymiaryAspose.Total for .NETIron Suite
Pozycjonowanie cenoweDeveloper Small Business $3,999; OEM $11,997; SDK $79,980; mierzone od $1,999/miesiacLite $2,998 / Plus $4,498 / Professional $8,998 / Unlimited $17,998 (Enterprise custom). Wszystkie 10 produktów za cene 2, oszczedz 75%
Model licencjiWieczyste na dewelopera + Site + OEM + poziomy SDK; mierzone Pay-As-You-Go również dostępneWieczyste na dewelopera; bez oplat licencyjnych dla licencjonowanych miejsc; SaaS/OEM redystrybucja poprzez Dodatek do Redystrybucji
Komponenty w zestawie26+ bibliotek (Słowa, Komórki, PDF, Slajdy, E-mail, Obrazowanie, BarCode, OCR, CAD, 3D, GIS, Zadania, Diagram, Notatka, Finanse, Medycyna, LLM, …)10 products (IronPDF, IronWord, IronXL, IronPPT, IronOCR, IronBarcode, IronQR, IronPrint, IronZIP, IronWebScraper)
Zasięg formatu/możliwościNajszerszy na rynku: Office, PDF, CAD, 3D, GIS, Visio, MS Project, OneNote, XBRL, DICOM, OMR10 najpopularniejszych formatów: PDF, Office, OCR, Barcode/QR, ZIP, Drukowanie, Web Scraping
Wsparcie międzyplatformowe/chmuroweWindows, Linux, macOS, Docker, Azure, AWSWindows, Linux, macOS, Docker, Azure, AWS Lambda
Wsparcie dla uruchamiania .NET.NET Standard 2.0 + net8.0, covering .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
Rynek docelowyŚrednia klasa do dużego korporacyjnego; ISV i SI, które potrzebują 20+ formatówNiezależni deweloperzy, SMB, średnie klasy .NET, ISV implementujące standardową automatyzację dokumentów
DostawcaAspose Pty Ltd"Iron Software"

Główna różnica jest jasna: Aspose wygrywa w surowej różnorodności formatów, podczas gdyIron Suitewygrywa w prostocie pakietu i cenie na produkt. Zespół, który naprawdę potrzebuje CAD, 3D lub DICOM ma jeden realistyczny wybór; zespół, który potrzebuje PDF + Office + OCR + Barcode jest idealnym nabywcą Iron Suite.

Ceny i licencje

Aspose.Total publikuje sześć poziomów wieczystej macierzy plus mierzone Pay-As-You-Go: Developer Small Business $3,999, Developer OEM $11,997, Developer SDK $79,980, Site Small Business $19,995, Site OEM $55,986, Site SDK $199,950, i mierzony od $1,999/miesiac z nieograniczoną liczbą deweloperów. Każdy poziom wieczysty obejmuje rok aktualizacji i bezpłatne wsparcie; odnowienia kosztują około 50% mniej niż cena katalogowa. Poziomy redystrybucji SDK są wyraźnie nazwane i wyceniane z kwotami na wdrożenia (50 komercyjnych wdrożeń na poziomie Developer SDK, 250 na poziomie Site SDK).

Iron Suite jest sprzedawany jako jedna wieczysta licencja przypisana do dewelopera na pięć poziomów (Lite, Plus, Professional, Unlimited, i Enterprise), zaczynając od $2,998. Pozycjonowanie marketingowe brzmi "wszystkie 10 produktów w cenie 2, oszczędzając 75%", a licencja podstawowa jest bezpłatna na licencjonowanych miejscach, lokalizacjach lub projektach. SaaS, OEM i dystrybuowana redystrybucja poza licencję podstawową używają jednego, oddzielnie wycenionego Dodatku do Redystrybucji niż wielopoziomowej macierzy SDK.

Różnica w praktyce: macierz Aspose daje zespołom zakupowym poziom dla każdej formy wdrożenia, ale wymaga negocjacji na poziomach Site/SDK. Płaska wieczysta strukturaIron Suitedaje deweloperom publiczny numer, który mogą podać wewnętrznie bez angażowania zespołów sprzedaży.

Czym jest Aspose.Total dla .NET

Aspose.Total dla .NET jest głównym pakietem publikowanym przez Aspose Pty Ltd. Zbiera całe katalog Aspose .NET (obecnie 26+ wyspecjalizowanych bibliotek) w jedną licencję SKU. Pakiet jest skierowany do zespołów średniej klasy i przedsiębiorstw, integratorów systemowych oraz ISV, które muszą odczytywać, pisać lub konwertować praktycznie każdy format pliku biznesowego po stronie serwera bez polegania na instalacji Microsoft Office lub Adobe. Aspose dostarcza indywidualne aktualizacje bibliotek w niezależnych kadencjach, ale łączy je w ten sam meta-pakiet Aspose.Total NuGet, a pakiet wspiera zarówno wieczyste zakupy na dewelopera, jak i mierzone Pay-As-You-Go.

Kluczowe komponenty i możliwości w zestawie:

  • Office formats: Aspose.Words (DOCX), Aspose.Cells (XLSX), Aspose.Slides (PPTX), Aspose.Email (MSG/PST/MBOX)
  • PDF i dokumentów strukturalnych: Aspose.PDF, Aspose.HTML, Aspose.Page (XPS/EPS), Aspose.SVG
  • Obrazowanie i rozpoznawanie: 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)
  • Newer additions: Aspose.LLM, Aspose.TeX, Aspose.Drawing, Aspose.Font
  • Modele cenowe: wieczyste Developer / Site / OEM / poziomy SDK plus mierzone Pay-As-You-Go

Co to jest Iron Suite

Iron Suite for .NET to pakiet opublikowany przez Iron Software, który łączy wszystkie dziesięć produktów"Iron Software"w jednej wieczystej licencji przypisanej do dewelopera, marketingowo jako "wszystkie 10 produktów w cenie 2, oszczędź 75%" z licencjami zaczynającymi się od $2,998. Pakiet jest zbudowany dla deweloperów .NET i ISV, którzy chcą jednego, idiomatycznego, narzędzia pierwszego kodu dla zadań dokumentowych, które występują w większości systemów backendowych: renderowanie plików PDF, manipulacja dokumentami Word i Excel, uruchamianie OCR, generowanie i odczytywanie kodow kreskowych, zeskrobywanie zawartości sieci. Te same komponenty działają na .NET Framework 4.6.2+ i nowoczesnej .NET (6/7/8/9/10) na wszystkich wersjach Windows, Linux, macOS, Docker, Azure i AWS.

Dziesięć produktów w pakiecie:

  • IronPDF: Renderowanie HTML do PDF, edycja PDF, podpisywanie, scalanie
  • IronWord: Tworzenie i manipulacja DOCX
  • IronXL: Odczyt / zapis Excela z obliczaniem formuł
  • IronPPT: Tworzenie i edycja prezentacji PowerPoint
  • IronOCR: OCR oparty na Tesseract z przedprocesowaniem obrazów
  • IronBarcode: Odczyt i zapis kodów kreskowych 1D/2D
  • IronQR: Dedykowana biblioteka kodów QR
  • IronPrint: Programowanie drukowania
  • IronZIP: Tworzenie i wydobywanie archiwów ZIP
  • IronWebScraper: Zeskrobywanie i wydobywanie zawartości sieci

Porównanie funkcjonalności

Przetwarzanie tekstu

Generowanie dokumentów Word i konwersja DOCX na PDF to jedno z najczęstszych zadań backendowych dla zespołów .NET. Obie pakiety wykonują to bez konieczności instalacji Microsoft Word na serwerze.

// 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
$vbLabelText   $csharpLabel
// NuGet: Install-Package IronWord
using IronWord;
using IronWord.Models;

class Program
{
    static void Main()
    {
        var doc = new WordDocument();

        var heading = new Paragraph();
        heading.AddChild(new TextRun("Quarterly Report — Q1 2026") { FontSize = 18, Bold = true });
        doc.AddParagraph(heading);

        var body = new Paragraph();
        body.AddChild(new TextRun("Revenue grew 14% quarter-over-quarter."));
        doc.AddParagraph(body);

        doc.SaveAs("report.docx");
    }
}
// NuGet: Install-Package IronWord
using IronWord;
using IronWord.Models;

class Program
{
    static void Main()
    {
        var doc = new WordDocument();

        var heading = new Paragraph();
        heading.AddChild(new TextRun("Quarterly Report — Q1 2026") { FontSize = 18, Bold = true });
        doc.AddParagraph(heading);

        var body = new Paragraph();
        body.AddChild(new TextRun("Revenue grew 14% quarter-over-quarter."));
        doc.AddParagraph(body);

        doc.SaveAs("report.docx");
    }
}
Imports IronWord
Imports IronWord.Models

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 Module
$vbLabelText   $csharpLabel

Aspose.Words używa wzorca kursora DocumentBuilder dziedziczonego z jego starszego projektu API i eksponuje poziomy zgodności PDF/A bezpośrednio w opcjach zapisywania. IronWord używa jawnego obiektu dla akapitów i przebiegu tekstu, który jest bliższy modelowi OOXML i naturalnie czytany w nowoczesnym C#. Oba generują równoważne wyjścia; przykład IronWord jest o ~3 linie krótszy, podczas gdy Aspose.Words eksponuje więcej powierzchni dostrajania eksportu do PDF w jednym wywołaniu.

Przetwarzanie Excela

Manipulacja Excela wraz z ponownym obliczeniem formuł to inne niemal uniwersalne zadanie Office. Obie pakiety potrafią pisać XLSX, obliczać formuły po stronie serwera i eksportować do 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
$vbLabelText   $csharpLabel
// NuGet: Install-Package IronXL.Excel
using IronXL;

class Program
{
    static void Main()
    {
        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet sheet = workbook.CreateWorkSheet("Sales");

        sheet["A1"].Value = "Product";
        sheet["B1"].Value = "Units";
        sheet["A2"].Value = "Widget A";
        sheet["B2"].Value = 1024;
        sheet["A3"].Value = "Widget B";
        sheet["B3"].Value = 768;
        sheet["B4"].Formula = "=SUM(B2:B3)";

        workbook.EvaluateAll();
        workbook.SaveAs("sales.xlsx");
    }
}
// NuGet: Install-Package IronXL.Excel
using IronXL;

class Program
{
    static void Main()
    {
        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet sheet = workbook.CreateWorkSheet("Sales");

        sheet["A1"].Value = "Product";
        sheet["B1"].Value = "Units";
        sheet["A2"].Value = "Widget A";
        sheet["B2"].Value = 1024;
        sheet["A3"].Value = "Widget B";
        sheet["B3"].Value = 768;
        sheet["B4"].Formula = "=SUM(B2:B3)";

        workbook.EvaluateAll();
        workbook.SaveAs("sales.xlsx");
    }
}
Imports IronXL

Module Program
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
        Dim sheet As WorkSheet = workbook.CreateWorkSheet("Sales")

        sheet("A1").Value = "Product"
        sheet("B1").Value = "Units"
        sheet("A2").Value = "Widget A"
        sheet("B2").Value = 1024
        sheet("A3").Value = "Widget B"
        sheet("B3").Value = 768
        sheet("B4").Formula = "=SUM(B2:B3)"

        workbook.EvaluateAll()
        workbook.SaveAs("sales.xlsx")
    End Sub
End Module
$vbLabelText   $csharpLabel

Aspose.Cells eksponuje głębszą powierzchnię formuł i tworzenia wykresów (450+ wbudowanych funkcji, formatowanie warunkowe i eksport do PDF są pierwszej klasy), co czyni go silniejszym wyborem, jeśli Twoje procesy biznesowe obejmują zaawansowaną automatyzację Excela. IronXL obejmuje codzienny zakres odczytu/zapisu/przeliczania z API opartym na indeksatorach (sheet["A1"].Value = …, sheet["B4"].Formula = …, workbook.EvaluateAll()), który większość deweloperów .NET uważa za natychmiastowo czytelny.

Generowanie i odczyt kodów kreskowych

Przepływy pracy związane z kodami kreskowymi są dostarczane jako jedna biblioteka w Aspose i jako dwa dedykowane produkty w Iron Suite: IronBarcode do symbologii 1D/2D i IronQR specjalnie do QR. Poniższa przykładowa implementacja Aspose demonstruje generowanie; przykład IronBarcode demonstruje ścieżkę odczytu, która jest bardziej wymagającym kierunkiem. Oba biblioteki obsługują zapis i odczyt w dowolnym kierunku.

// 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
$vbLabelText   $csharpLabel
// 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 Class
$vbLabelText   $csharpLabel

Aspose.BarCode wykorzystuje pojedynczą klasę generatora parametryzowaną przez EncodeTypes, odwzorowującą jego spójny wzorzec "jedna duża klasa z opcjami" w całej suite. IronBarcode i IronQR dzielą zapis i odczyt na dedykowane punkty wejściowe (BarcodeWriter i BarcodeReader), co jest bardziej naturalne w nowoczesnym .NET i daje procesom skanowania QR dedykowaną, zoptymalizowaną ścieżkę przez IronQR.

Generowanie i scalanie PDF

PDF to domena, w której dwa pakiety różnią się najbardziej w stylu. Aspose.PDF buduje dokumenty prymityw po prymitywie na wykresie obiektów strony; IronPDF renderuje z HTML przy użyciu prawdziwego silnika przeglądarki.

// 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
$vbLabelText   $csharpLabel
// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/merge-or-split-pdfs/
using IronPdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // PdfDocument.Merge accepts an array or params list of PdfDocument objects.
        // Order is preserved, and metadata, bookmarks, and annotations are retained.
        string[] inputs = { "invoice.pdf", "terms.pdf", "appendix.pdf" };

        List<PdfDocument> parts = new List<PdfDocument>();
        foreach (string path in inputs)
            parts.Add(PdfDocument.FromFile(path));

        PdfDocument merged = PdfDocument.Merge(parts.ToArray());
        merged.SaveAs("contract-package.pdf");
    }
}
// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/merge-or-split-pdfs/
using IronPdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // PdfDocument.Merge accepts an array or params list of PdfDocument objects.
        // Order is preserved, and metadata, bookmarks, and annotations are retained.
        string[] inputs = { "invoice.pdf", "terms.pdf", "appendix.pdf" };

        List<PdfDocument> parts = new List<PdfDocument>();
        foreach (string path in inputs)
            parts.Add(PdfDocument.FromFile(path));

        PdfDocument merged = PdfDocument.Merge(parts.ToArray());
        merged.SaveAs("contract-package.pdf");
    }
}
Imports IronPdf
Imports System.Collections.Generic

Module Program
    Sub Main()
        ' PdfDocument.Merge accepts an array or params list of PdfDocument objects.
        ' Order is preserved, and metadata, bookmarks, and annotations are retained.
        Dim inputs As String() = {"invoice.pdf", "terms.pdf", "appendix.pdf"}

        Dim parts As New List(Of PdfDocument)()
        For Each path As String In inputs
            parts.Add(PdfDocument.FromFile(path))
        Next

        Dim merged As PdfDocument = PdfDocument.Merge(parts.ToArray())
        merged.SaveAs("contract-package.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

Aspose.PDF eksponuje szczegółowy model obiektów strony dla precyzyjnych edycji (łączenie, dzielenie, redakcja, manipulacja drzewem stron). API PdfDocument IronPDF obejmuje te same operacje bezpośrednio na modelu obiektów PDF (rund-trippowanie HTML odbywa się tylko podczas tworzenia, a nie podczas manipulacji): PdfDocument.Merge(...) dla zgromadzeń, kopiowanie zakresów stron i usuwanie do podziałów, oraz RedactTextOnAllPages(...) dla redagowania tekstu. IronPDF obsługuje te same poziomy zgodności PDF/A (A-1a, A-1b, A-2a, A-2b, A-3a, A-3b) przez enum PdfAVersions na SaveAsPdfA, a także dostarcza dedykowane wsparcie dla dostępności PDF/UA: RenderHtmlAsPdfUA(html) tworzy otagowany dostępny PDF za jednym wywołaniem (domyślny PDF/UA-1; PDF/UA-2 również obsługiwane), udokumentowane, aby spełnić wymagania Sekcji 508 i WCAG 2.0 AA od razu. Dwa pakiety różnią się najbardziej, gdy tworzą PDFy z danych aplikacji webowej: IronPDF bierze ten sam HTML/CSS, który programista pisze już dla przeglądarki i generuje PDF renderowany w Chrome (nowoczesne CSS, czcionki webowe, SVG) poprzez zintegrowany pojedynczy pakiet Chromium; Aspose.PDF buduje dokumenty prymityw po prymitywie na płótnie strony.

Export PowerPoint

Manipulacja PowerPoint zawarta jest w Aspose.Slides jako biblioteka pierwszej klasy. Iron Suite's IronPPT również obejmuje generowanie PowerPoint, chociaż jest pozycjonowana jako biblioteka tworzenia/manipulacji, a nie jako pełna powierzchnia funkcji 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
$vbLabelText   $csharpLabel
// NuGet: Install-Package IronPPT
// Docs: https://ironsoftware.com/csharp/ppt/docs/
using IronPPT;
using IronPPT.Models;

class Program
{
    static void Main()
    {
        // PresentationDocument is the entry point for PPTX creation in IronPPT.
        // No Microsoft PowerPoint or Office Interop required.
        PresentationDocument document = new PresentationDocument();

        Slide titleSlide = new Slide();
        titleSlide.AddText("Quarterly Update");
        document.AddSlide(titleSlide);

        Slide bodySlide = new Slide();
        bodySlide.AddText("Generated from .NET, no PowerPoint dependency.");
        document.AddSlide(bodySlide);

        document.Save("update.pptx");
    }
}
// NuGet: Install-Package IronPPT
// Docs: https://ironsoftware.com/csharp/ppt/docs/
using IronPPT;
using IronPPT.Models;

class Program
{
    static void Main()
    {
        // PresentationDocument is the entry point for PPTX creation in IronPPT.
        // No Microsoft PowerPoint or Office Interop required.
        PresentationDocument document = new PresentationDocument();

        Slide titleSlide = new Slide();
        titleSlide.AddText("Quarterly Update");
        document.AddSlide(titleSlide);

        Slide bodySlide = new Slide();
        bodySlide.AddText("Generated from .NET, no PowerPoint dependency.");
        document.AddSlide(bodySlide);

        document.Save("update.pptx");
    }
}
Imports IronPPT
Imports IronPPT.Models

Module Program
    Sub Main()
        ' PresentationDocument is the entry point for PPTX creation in IronPPT.
        ' No Microsoft PowerPoint or Office Interop required.
        Dim document As New PresentationDocument()

        Dim titleSlide As New Slide()
        titleSlide.AddText("Quarterly Update")
        document.AddSlide(titleSlide)

        Dim bodySlide As New Slide()
        bodySlide.AddText("Generated from .NET, no PowerPoint dependency.")
        document.AddSlide(bodySlide)

        document.Save("update.pptx")
    End Sub
End Module
$vbLabelText   $csharpLabel

Aspose.Slides obejmuje szersze krawędzie (animacje, przejścia, zaawansowane geometrie kształtów, SmartArt) na równi ze specyfikacją formatu pliku PowerPoint. IronPPT obejmuje wspólną powierzchnię manipulacji (slajdy, tekst, obrazy, podstawowe kształty) z tym samym idiomatycznym odczuciem, co reszta Iron Suite. Zespoły, których wymagania dot. PPT obejmują głównie tworzenie i eksport, są dobrze obsługiwane przez oba; zespoły edytujące istniejące pokazy z głęboką wiernością formatowania będą skłaniać się ku Aspose tutaj.

Dlaczego warto wybraćIron Suitedo automatyzacji dokumentów .NET zatytułowanej przez kod

Dla zespołów .NET, których obciążenia dokumentowe są kształtowane przez codzienne (PDFy z danych aplikacji webowej, raporty Word i Excel, OCR na przesyłanych skanów, kody kreskowe na etykietach wysyłkowych),Iron Suitejest celowo zbudowany. Dziesięć produktów dzieli idiomatyczną powierzchnię API C#, jednorazowy model rejestracji licencji i jedną relację z dostawcą. Nie ma macierzy SDK do negocjacji, nie ma mierzonego przełącznika, ani zależności instalacji programu Office lub Adobe na serwerze. Strukturalne przewagi, które mają znaczenie dla pracy z dokumentami w .NET pociągniętymi przez kod:

  • Pojedynczy pakiet, przejrzysta wieczysta cena: publiczne numery w USD na każdym poziomie, w tym Enterprise
  • Wdrożenie bez oplat licencyjnych dla licencjonowanych miejsc od razu; SaaS/OEM poprzez jedno czyste Dodatek do Redystrybucji
  • Tworzenie i rozpoznawanie w jednym pakiecie (tworzenie PDF/Word/Excel plus rozpoznawanie OCR/Barcode/QR)
  • Generacja PDF koncentrująca się pierwotnie na HTML, dzięki czemu PDF odpowiada temu samemu renderowaniu Chrome, które widzi użytkownik na ekranie
  • Bez opłat za uruchamianie i bez mierzenia na dokument

JakIron Suiteróżni się od Aspose.Total

  • Publiczna cena w USD na każdym poziomie, w tym Enterprise. Poziomy Site i SDK Aspose zazwyczaj wiążą się z negocjacjami zakupowymi;Iron Suitedostarcza jedną liczbę na poziom na publicznej stronie.
  • Jeden pakiet, jeden SKU, jeden plik licencji w porównaniu do 26-pakietowego drzewa zależności przejściowej z zachowaniem watermark na próbę przy ocenie w każdej bibliotece.
  • Renderowanie PDF koncentrujące się pierwotnie na HTML z pełną zgodnością z przeglądarką (CSS, czcionki webowe, SVG) w porównaniu do API Aspose.ASPose.PDF opartego na prymitywie na płótnie strony.
  • Stos rozpoznawania w podstawowym pakiecie (OCR + Barcode + QR), bez oddzielonego mierzonego licznika ani kosztu na stronę; Aspose.OCR jest dostarczane w ramach Aspose.Total, ale szersze scenariusze dystrybucji mogą wymagać licencji klasy OEM.
  • Idiomaticzna powierzchnia API .NET dla wszystkich 10 produktów, bez wzorców jednej klasy z opcjami w stylu EncodeTypes, bez kursorów DocumentBuilder przenoszonych z wcześniejszych API.
  • Dyscyplina zakresu. Aspose ściga każdy format pliku biznesowego na ziemi (CAD, GIS, 3D, DICOM, XBRL);Iron Suitecelowo koncentruje się na ~10 najwyższych kategoriach pod względem ilości. Dla zespołów, które nie potrzebują tych niszowych formatów, pakietIron Suiteto czystsze dopasowanie przy znacząco niższej cenie wejściowej.

Wnioski

Aspose.Total iIron Suitenie są tak naprawdę bezpośrednimi substytutami; odpowiadają na różne pytania. Aspose.Total jest właściwą odpowiedzią, gdy pytanie to "musimy odczytać lub napisać każdy format pliku, jaki nasi klienci mogą nam podrzucić," zwłaszcza, gdy lista obejmuje CAD, 3D, GIS, MS Project, XBRL lub DICOM.Iron Suitejest właściwą odpowiedzią, gdy pytanie to "potrzebujemy PDF, Word, Excel, OCR i kody kreskowe w jednym pakiecie z jedną licencją i publiczną ceną." Dla integratorów średniego rynku i przedsiębiorstw oraz ISV, które faktycznie obejmują 20+ formatów, macierz Aspose'a zasługuje na swoją cenę. Dla znacznie większej populacji zespołów .NET, których obciążenie dokumentowe mieści się w pierwszej dziesiątce kategorii,Iron Suitedostarcza te same kluczowe wyniki przy znacząco niższym TCO z wieczystą, bezorialową licencją. Poznaj Iron Suite, w tym poziom wejściowy $2,998, na ironsoftware.com/csharp/suite.

Zwróć uwagęAspose.Total jest zarejestrowanym znakiem towarowym swojego właściciela. Ta strona nie jest powiązana z, wspierana przez lub sponsorowana przez Aspose.Total. Wszystkie nazwy produktów, logo i marki są własnością ich odpowiednich właścicieli. Porównania mają charakter wyłącznie informacyjny i odzwierciedlają informacje dostępne publicznie w momencie pisania.