COMPARAISON

Scryber.Core vs IronPDF : Guide de comparaison technique

Scryber.Core vsIronPDF: Guide de comparaison de la génération de PDF .NET

Lorsque les développeurs .NET évaluent les solutions de génération de PDF, Scryber.Core etIronPDFreprésentent des approches différentes avec des philosophies architecturales et des modèles de licence distincts. Scryber.Core fournit une bibliothèque open-source utilisant des modèles XML/HTML avec un moteur d'analyse personnalisé, tandis qu'IronPDF propose un moteur de rendu basé sur Chromeconçu pour la conversion HTML-PDF haute-fidélité. Cette comparaison technique examine les deux bibliothèques à travers les dimensions qui comptent le plus pour les développeurs professionnels et les architectes qui prennent des décisions de génération de PDF pour les applications .NET en 2025 et au-delà.

Comprendre Scryber.Core

Scryber.Core est une bibliothèque open-source qui transforme les modèles HTML en PDF à l'aide de C#. La bibliothèque exploite la polyvalence de HTML et les capacités de stylisation de CSS pour fournir une approche de génération de PDF basée sur des modèles. Scryber.Core utilise un moteur d'analyse personnalisé plutôt qu'un moteur de rendu basé sur un navigateur, traitant les documents par le biais de sa méthode propriétaire Document.ParseDocument().

La bibliothèque fonctionne sous licence LGPL, ce qui signifie qu'il n'y a pas de coûts directs pour utiliser Scryber.Core dans les projets tant que les développeurs respectent les termes de la LGPL. Toutefois, ce modèle de licence exige que toutes les modifications apportées à la bibliothèque elle-même soient en libre accès, ce qui peut s'avérer contraignant pour certaines applications commerciales.

<Considérations clés : Scryber.Core utilise une syntaxe de liaison propriétaire pour les modèles de données et des approches de configuration à forte composante XML. La bibliothèque n'exécute pas de JavaScriptet ne fournit qu'un rendu statique avec une prise en charge CSS limitée par rapport aux solutions basées sur un navigateur.

Comprendre IronPDF

IronPDF fournit une bibliothèque de génération de PDF prise en charge commercialement qui utilise un moteur de rendu basé sur Chromium. La bibliothèque convertit HTML, CSS et JavaScripten documents PDF avec une fidélité totale au niveau du navigateur, en prenant en charge les fonctionnalités CSS3 modernes, notamment Flexboxet CSS Grid, ainsi que l'exécution complète de JavaScriptES2024.

IronPDF s'installe en tant que package NuGet sans les restrictions de licence associées à la LGPL. La bibliothèque offre une documentation complète, un support professionnel et une communauté plus importante par rapport aux alternatives open-source.

Comparaison d'architecture

Les différences fondamentales entre Scryber.Core etIronPDFaffectent les capacités de rendu et les flux de travail de développement :

Aspect Scryber.Core IronPDF
Licence LGPL (restrictive) Commercial
Moteur de rendu Analyseur personnalisé Chrome
Support CSS Limité CSS3 complet
JavaScript Non ES2024 complet
Reliure de modèle XML propriétaire Standard (Razor, etc.)
Courbe d'apprentissage Syntaxe personnalisée HTML/CSSstandard
Prise en charge de l'asynchronisme Limité Complet
Documentation Basique Une traduction

Matrice de comparaison des fonctionnalités

Fonction Scryber.Core IronPDF
HTML vers PDF Basique Chromecomplet
URL vers PDF Récupération manuelle requise Support natif
Grille CSS Limité Prise en charge complète
Flexbox Limité Prise en charge complète
JavaScript Non ES2024 complet
Liaison de données XML propriétaire Utiliser Razor/Handlebars
En-têtes/Pieds de page Basé sur XML HTML/CSS
Fusionner des PDF Limité Intégré
Diviser les PDF Non Oui
Filigranes Basique HTML complet
Signatures numériques Non Oui
PDF/A Non Oui
Protection par mot de passe Basique Complet
Multiplateforme Oui Oui

Conversion HTML en PDF

Le flux de travail de base de HTML à PDF démontre les différences fondamentales d'API entre les bibliothèques.

Conversion HTML de Scryber.Core

Scryber.Core utilise la méthode Document.ParseDocument() avec un moteur d'analyse personnalisé :

// NuGet: Install-Package Scryber.Core
using Scryber.Core;
using Scryber.Core.Html;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent))
        {
            doc.SaveAsPDF("output.pdf");
        }
    }
}
// NuGet: Install-Package Scryber.Core
using Scryber.Core;
using Scryber.Core.Html;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent))
        {
            doc.SaveAsPDF("output.pdf");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cette approche nécessite :

  • Déclaration explicite de utilisation pour une élimination correcte des ressources
  • Le paramètre ParseSourceType.DynamicContent pour l'analyse des chaînes HTML
  • API basée sur des documents qui diffère des modèles de rendu HTML standard

Conversion HTML d'IronPDF

IronPDF fournit la classe ChromePdfRenderer avec une conversion HTML directe :

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

La méthode RenderHtmlAsPdf utilise le moteur de rendu Chromepour traiter le HTML avec un support CSS et JavaScriptcomplet. L'API suit un modèle simple de rendu puis d'enregistrement sans nécessiter de syntaxe explicite de gestion des ressources.

Conversion d'URL en PDF

La conversion de pages web en PDF révèle une différence de capacité significative entre les bibliothèques.

Gestion des URL de Scryber.Core

Scryber.Core ne peut pas restituer directement les URL - les développeurs doivent récupérer manuellement le contenu HTML :

// NuGet: Install-Package Scryber.Core
using Scryber.Core;
using Scryber.Core.Html;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        using var client = new HttpClient();
        string html = await client.GetStringAsync("https://www.example.com");

        using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent))
        {
            doc.SaveAsPDF("webpage.pdf");
        }
    }
}
// NuGet: Install-Package Scryber.Core
using Scryber.Core;
using Scryber.Core.Html;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        using var client = new HttpClient();
        string html = await client.GetStringAsync("https://www.example.com");

        using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent))
        {
            doc.SaveAsPDF("webpage.pdf");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cette approche de contournement :

  • Nécessite une gestion explicite du client HTTP
  • Téléchargement de HTML brut sans exécution de JavaScript
  • Impossible de capturer du contenu rendu dynamiquement
  • Perte des références aux ressources relatives (images, feuilles de style)

Conversion d'URL IronPDF

IronPDF assure la conversion native d'URL en PDF :

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

La méthode RenderUrlAsPdf navigue vers l'URL à l'aide du moteur Chromium, exécute JavaScript, applique le style CSS et capture la page entièrement rendue en tant que document PDF.

Paramètres de rendu personnalisés

La configuration de la page et les options de rendu démontrent différentes approches de l'API.

Paramètres personnalisés de Scryber.Core

Scryber.Core configure les paramètres par le biais de la propriété RenderOptions du document :

// NuGet: Install-Package Scryber.Core
using Scryber.Core;
using Scryber.Core.Html;
using Scryber.Drawing;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Custom PDF</h1><p>With custom margins and settings.</p></body></html>";

        using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent))
        {
            doc.RenderOptions.Compression = OutputCompressionType.FlateDecode;
            doc.RenderOptions.PaperSize = PaperSize.A4;
            doc.SaveAsPDF("custom.pdf");
        }
    }
}
// NuGet: Install-Package Scryber.Core
using Scryber.Core;
using Scryber.Core.Html;
using Scryber.Drawing;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Custom PDF</h1><p>With custom margins and settings.</p></body></html>";

        using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent))
        {
            doc.RenderOptions.Compression = OutputCompressionType.FlateDecode;
            doc.RenderOptions.PaperSize = PaperSize.A4;
            doc.SaveAsPDF("custom.pdf");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

La configuration intervient après l'analyse du document mais avant l'enregistrement. La configuration des marges nécessite une mise en forme supplémentaire basée sur XML ou une manipulation programmatique des sections de page.

Paramètres personnalisés d'IronPDF

IronPDF configure les paramètres via la propriété Options de rendudu moteur de rendu avant la conversion :

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 40;
        renderer.RenderingOptions.MarginBottom = 40;

        string html = "<html><body><h1>Custom PDF</h1><p>With custom margins and settings.</p></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("custom.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 40;
        renderer.RenderingOptions.MarginBottom = 40;

        string html = "<html><body><h1>Custom PDF</h1><p>With custom margins and settings.</p></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("custom.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

La propriété Options de rendufournit un accès direct à la taille du papier, les marges et d'autres paramètres PDF par le biais de propriétés fortement typées. Le moteur de rendu peut être configuré une seule fois et réutilisé pour de multiples conversions.

Référence de mappage d'API

Les équipes qui évaluent la migration de Scryber.Core versIronPDFpeuvent se référer à cette cartographie des opérations équivalentes :

Scryber.Core IronPDF Notes
Document.ParseDocument(html) renderer.RenderHtmlAsPdf(html) Rendu HTML
Document.ParseTemplate(path) renderer.RenderHtmlFileAsPdf(path) Rendu des fichiers
doc.SaveAsPDF(path) pdf.SaveAs(path) Enregistrer dans un fichier
doc.SaveAsPDF(stream) pdf.Stream ou pdf.BinaryData Obtenir un flux/octets
doc.Info.Title pdf.MetaData.Title Métadonnées
doc.Info.Author pdf.MetaData.Author Métadonnées
PDFPage pdf.Pages[i] Accès à la page
PDFLayoutDocument Options de rendu Contrôle de la mise en page
PDFStyle CSS en HTML Stylisme
Liaison de données ({{valeur}}) Interpolation Razor/Chaîne Création de modèles
doc.RenderOptions.PaperSize renderer.RenderingOptions.PaperSize Taille de la page

La différence du Template Binding

Scryber.Core utilise une syntaxe de liaison propriétaire basée sur XML qui nécessite l'apprentissage d'un langage de modélisation personnalisé :

<!-- Scryber proprietary binding -->
<pdf:Para text='{{model.Name}}' />
<pdf:Para text='Total: {{model.Total:C}}' />
<pdf:ForEach on='{{model.Items}}'>
    <pdf:Para text='{{.Name}}: {{.Price}}' />
</pdf:ForEach>
<!-- Scryber proprietary binding -->
<pdf:Para text='{{model.Name}}' />
<pdf:Para text='Total: {{model.Total:C}}' />
<pdf:ForEach on='{{model.Items}}'>
    <pdf:Para text='{{.Name}}: {{.Price}}' />
</pdf:ForEach>
XML

IronPDF utilise l'interpolation de chaînes C# standard ou n'importe quel moteur de templating (Razor, Handlebars) :

// Standard C# with IronPDF
var items = model.Items.Select(i => $"<li>{i.Name}: {i.Price:C}</li>");

var html = $@"
<p>{model.Name}</p>
<p>Total: {model.Total:C}</p>
<ul>
    {string.Join("", items)}
</ul>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
// Standard C# with IronPDF
var items = model.Items.Select(i => $"<li>{i.Name}: {i.Price:C}</li>");

var html = $@"
<p>{model.Name}</p>
<p>Total: {model.Total:C}</p>
<ul>
    {string.Join("", items)}
</ul>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

L'approche d'IronPDF exploite les compétences existantes en C# et en développement web plutôt que d'exiger des développeurs qu'ils apprennent une syntaxe de modèle propriétaire.

Mise en œuvre des en-têtes et pieds de page

Les en-têtes et pieds de page du document révèlent des différences significatives dans le flux de travail.

En-têtes et pieds de page de Scryber.Core

Scryber.Core nécessite des définitions d'en-tête et de pied de page basées sur XML :

<!-- Scryber XML template -->
<?xml version='1.0' encoding='utf-8' ?>
<pdf:Document xmlns:pdf='http://www.scryber.co.uk/schemas/core/release/v1/Scryber.Components.xsd'>
    <Pages>
        <pdf:Section>
            <Header>
                <pdf:Para text='Company Report' />
            </Header>
            <Footer>
                <pdf:Para text='Page {{pagenum}} of {{pagetotal}}' />
            </Footer>
            <Content>
                <pdf:H1 text='Content Here' />
            </Content>
        </pdf:Section>
    </Pages>
</pdf:Document>
<!-- Scryber XML template -->
<?xml version='1.0' encoding='utf-8' ?>
<pdf:Document xmlns:pdf='http://www.scryber.co.uk/schemas/core/release/v1/Scryber.Components.xsd'>
    <Pages>
        <pdf:Section>
            <Header>
                <pdf:Para text='Company Report' />
            </Header>
            <Footer>
                <pdf:Para text='Page {{pagenum}} of {{pagetotal}}' />
            </Footer>
            <Content>
                <pdf:H1 text='Content Here' />
            </Content>
        </pdf:Section>
    </Pages>
</pdf:Document>
XML

Cette approche nécessite des fichiers modèles XML avec des déclarations d'espace de noms et des noms d'éléments propriétaires.

En-têtes et pieds de page IronPDF

IronPDF offre une configuration entièrement programmatique des en-têtes et des pieds de page basée sur le langage HTML :

using IronPdf;

var renderer = new ChromePdfRenderer();

// HTML header with full CSS support
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='width: 100%; text-align: center; font-size: 12pt; border-bottom: 1px solid #ccc;'>
            Company Report
        </div>",
    MaxHeight = 30
};

// HTML footer with page numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='width: 100%; text-align: center; font-size: 10pt;'>
            Page {page} of {total-pages}
        </div>",
    MaxHeight = 25
};

var pdf = renderer.RenderHtmlAsPdf("<h1>Content Here</h1>");
pdf.SaveAs("report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// HTML header with full CSS support
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='width: 100%; text-align: center; font-size: 12pt; border-bottom: 1px solid #ccc;'>
            Company Report
        </div>",
    MaxHeight = 30
};

// HTML footer with page numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='width: 100%; text-align: center; font-size: 10pt;'>
            Page {page} of {total-pages}
        </div>",
    MaxHeight = 25
};

var pdf = renderer.RenderHtmlAsPdf("<h1>Content Here</h1>");
pdf.SaveAs("report.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

La classe HtmlHeaderFooter d'IronPDF permet une stylisation HTML/CSScomplète avec des caractères génériques {page} et {total-pages} pour une numérotation dynamique des pages.

Les considérations relatives à la licence LGPL

La licence LGPL de Scryber.Core crée des obligations spécifiques qui affectent les applications commerciales :

Exigences LGPL :

  • Toute modification apportée à la bibliothèque Scryber.Core elle-même doit être ouverte à tous
  • Les applications doivent permettre aux utilisateurs de remplacer la bibliothèque LGPL par des versions modifiées
  • La divulgation des sources peut être requise dans certains scénarios de distribution commerciale

Licence commerciale IronPDF :

  • Aucune exigence en matière de divulgation des sources
  • Aucune restriction sur les modifications ou la distribution
  • Des licences claires sans complexité de conformité
  • L'assistance professionnelle comprend

Pour les organisations qui envisagent un déploiement commercial à long terme, la différence de modèle de licence a une incidence considérable sur la planification des aspects juridiques et de la conformité.

Quand les équipes envisagent la migration vers Scryber.Core

Plusieurs facteurs incitent les équipes de développement à évaluer des alternatives à Scryber.Core :

<Les problèmes liés à la licence LGPL affectent les applications commerciales où les obligations de divulgation des sources entrent en conflit avec les exigences de l'entreprise. La licence commerciale d'IronPDF élimine ces restrictions.

<La prise en charge limitée des feuilles de style CSS devient problématique lorsque les conceptions utilisent des fonctions CSS modernes. L'analyseur personnalisé de Scryber.Core ne peut pas rendre Flexbox, Grille CSSou un style complexe qu'un moteur basé sur Chromegère nativement.

Aucune exécution de JavaScript ne bloque le rendu du contenu dynamique. Les applications à page unique, les graphiques et le contenu interactif nécessitent une exécution JavaScriptque Scryber.Core ne peut pas fournir.

<La syntaxe de modèle propriétaire augmente la courbe d'apprentissage et limite l'intégration des développeurs. Les équipes familiarisées avec HTML/CSSdoivent apprendre la syntaxe de liaison personnalisée de Scryber plutôt que de tirer parti de leurs compétences existantes.

<Une communauté plus restreinte signifie moins de ressources pour le dépannage et moins de documentation tierce. La communauté plus large d'IronPDF fournit davantage d'exemples et de ressources d'assistance.

La prise en charge limitée de l'asynchronisme affecte l'évolutivité des applications. Les applications .NET modernes ciblant .NET 10 et C# 14 en 2026 bénéficient d'une prise en charge asynchrone/await complète tout au long du pipeline de génération de PDF.

Forts et compromis

Scryber.Core Points forts

  • Open-source sans coût de licence direct (conformité LGPL requise)
  • Prise en charge multiplateforme dans les environnements .NET
  • Approche du modèle HTML pour les développeurs familiarisés avec les technologies web
  • Convient aux projets pour lesquels les termes de la LGPL s'alignent sur le modèle commercial

Limitations de Scryber.Core

  • La licence LGPL restreint certaines applications commerciales
  • Moteur d'analyse personnalisé avec prise en charge CSS limitée
  • Pas d'exécution de JavaScript(rendu statique uniquement)
  • La syntaxe de liaison XML propriétaire nécessite une courbe d'apprentissage
  • Une communauté plus petite avec moins de documentation
  • Support limité async
  • Pas de capacité native de conversion d'URL en PDF
  • Pas de fonctions de manipulation de PDF (fusion, division, signatures)

Les points forts d'IronPDF

  • Rendu complet de Chromeavec prise en charge de CSS3 et JavaScriptES2024
  • Conversion native URL-to-PDF
  • Modélisation HTML/CSSstandard (utiliser Razor, Handlebars ou HTML simple)
  • Licence commerciale sans restrictions LGPL
  • Une documentation complète et une assistance professionnelle
  • Prise en charge complète de l'asynchronisme et de l'attente
  • Fonctions de manipulation des PDF (fusion, division, filigranes)
  • Signatures numériques et fonctions de sécurité
  • Prise en charge de la conformité PDF/A

Considérations relatives à IronPDF

  • Le modèle de licence commerciale nécessite un achat
  • Le moteur Chromeest plus encombrant que les analyseurs personnalisés

Conclusion

Scryber.Core etIronPDFrépondent à des contextes organisationnels et à des exigences techniques différents. Scryber.Core constitue une option open-source pour les développeurs qui souhaitent générer des PDF sous licence LGPL avec des modèles HTML et qui sont prêts à travailler avec la syntaxe personnalisée et les limites de rendu de la bibliothèque.

Pour les applications nécessitant un rendu CSS moderne, l'exécution de JavaScript, la conversion native d'URL ou l'octroi de licences commerciales sans obligations LGPL,IronPDFoffre des capacités complètes grâce à son moteur basé sur Chromium. La possibilité d'utiliser des modèles HTML/CSSstandard, de tirer parti des compétences existantes en matière de développement web et d'accéder à des fonctions de manipulation des PDF répond aux limitations que les équipes rencontrent fréquemment avec les solutions d'analyseur de texte personnalisées.

Lors de l'évaluation de la migration de Team Licencevers IronPDF, les équipes doivent prendre en compte leurs exigences spécifiques concernant la complexité des CSS, les besoins en JavaScript, les préférences en matière de licences et les préférences en matière de flux de travail des modèles. Pour les équipes ciblant les plateformes .NET modernes avec des flux de conception basés sur le web, l'architecture d'IronPDF s'aligne plus naturellement sur les pratiques de développement contemporaines.


Pour des conseils de mise en œuvre, explorez le tutoriel HTML-to-PDF d'IronPDF et documentation couvrant les modèles de génération de PDF pour les applications .NET.