Passer au contenu du pied de page
GUIDES DE MIGRATION

Comment migrer de Scryber.Core vers IronPDF en C#

Migrer de Scryber.Core versIronPDF: Guide complet de migration C

La migration de Scryber.Core versIronPDFtransforme votre flux de production de PDF d'un moteur d'analyse XML/HTML personnalisé à un moteur de rendu moderne alimenté par Chromeavec une prise en charge complète de CSS3 et de JavaScript. Ce guide fournit un chemin de migration complet, étape par étape, qui élimine les problèmes de licence LGPL, la syntaxe propriétaire des modèles et les capacités de rendu limitées.

Pourquoi migrer de Scryber.Core vers IronPDF

Comprendre Scryber.Core

Scryber.Core est une bibliothèque open-source qui transforme les modèles HTML en PDF à l'aide de C#. Cette capacité en fait un outil intéressant pour les développeurs familiers du développement web et du langage HTML. Contrairement à d'autres solutions PDF qui requièrent des compétences spécifiques en matière de codage de documents, Scryber.Core tire parti de la polyvalence du HTML et des capacités de stylisme CSS pour offrir une approche plus intuitive de la génération de PDF.

Bien que Scryber.Core soit une option viable pour de nombreux développeurs, principalement en raison de son alignement idéologique sur les principes du logiciel libre et de la flexibilité qu'il offre, il n'est pas sans limites.

Principales raisons de migrer

  1. <Problèmes liés à la licence LGPL : la licence LGPL exige que toutes les modifications apportées à la bibliothèque elle-même soient ouvertes à tous, ce qui peut être une contrainte pour certaines applications commerciales
  2. Syntaxe de modèle personnalisée : La syntaxe de liaison propriétaire nécessite une courbe d'apprentissage
  3. Support CSS limité : il ne s'agit pas d'un moteur de rendu complet basé sur le navigateur
  4. Communauté plus restreinte : Moins de documentation et d'exemples communautaires
  5. Pas d'exécution JavaScript : Rendu statique uniquement
  6. Configuration complexe : approche de configuration à forte composante XML
  7. <Soutien commercial limité : Scryber.Core est principalement soutenu par la communauté

Comparaison Scryber.Core vs IronPDF

Aspect Scryber.Core IronPDF
Licence LGPL (restrictive) Commercial
Moteur de rendu Sur mesure 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
Soutien à la communauté Plus petit Grandes
Soutien commercial Limité L'assistance professionnelle comprend

IronPDF offre un support commercial de niveau entreprise, une documentation complète et une communauté plus importante par rapport à Scryber.Core. La bibliothèque offre des options de licence plus souples sans les restrictions de la LGPL, ce qui la rend idéale pour les applications commerciales.

Pour les équipes qui prévoient l'adoption de .NET 10 et C# 14 jusqu'en 2025 et 2026, le moteur moderne Chromed'IronPDF assure une compatibilité totale avec les normes web contemporaines.


Avant de commencer

Prérequis

  1. Environnement .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Accès NuGet : Capacité à installer des paquets NuGet
  3. Licence IronPDF : Obtenez votre clé de licence sur ironpdf.com

Modifications du paquet NuGet

# Remove Scryber.Core
dotnet remove package Scryber.Core

# Install IronPDF
dotnet add package IronPdf
# Remove Scryber.Core
dotnet remove package Scryber.Core

# Install IronPDF
dotnet add package IronPdf
SHELL

Configuration de la licence

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Référence API complète

Modifications de l'espace de nommage

// Before: Scryber.Core
using Scryber.Components;
using Scryber.Components.Pdf;
using Scryber.PDF;
using Scryber.Styles;
using Scryber.Core;
using Scryber.Core.Html;
using Scryber.Drawing;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
// Before: Scryber.Core
using Scryber.Components;
using Scryber.Components.Pdf;
using Scryber.PDF;
using Scryber.Styles;
using Scryber.Core;
using Scryber.Core.Html;
using Scryber.Drawing;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Mappages de l'API de base

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
doc.RenderOptions.PaperSize RenderingOptions.PaperSize Taille du papier
Liaison de données ({{valeur}}) Interpolation Razor/Chaîne Création de modèles

Exemples de migration de code

Exemple 1 : Conversion de base de HTML en PDF

Avant (Scryber.Core):

// 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

Après (IronPDF):

// 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

Cet exemple illustre la différence architecturale fondamentale. Scryber.Core utilise Document.ParseDocument() avec un paramètre ParseSourceType.DynamicContent pour analyser le contenu HTML, ce qui nécessite un bloc using pour une élimination correcte. Le document est ensuite enregistré avec SaveAsPDF().

IronPDF utilise une instance de ChromePdfRenderer avec RenderHtmlAsPdf() pour effectuer un rendu HTML direct. Le PDF est enregistré avec SaveAs(). Aucune élimination manuelle n'est requise -IronPDFgère le nettoyage automatiquement. Consultez la documentation HTML vers PDF pour des exemples complets.

Exemple 2 : Conversion d'une URL en PDF

Avant (Scryber.Core):

// 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

Après (IronPDF):

// 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

Scryber.Core ne peut pas convertir directement les URL en PDF. Vous devez récupérer manuellement le contenu HTML à l'aide de HttpClient.GetStringAsync(), puis analyser le HTML téléchargé à l'aide de Document.ParseDocument(). Cette approche ne tient pas compte de l'exécution de JavaScript, du contenu dynamique et de la résolution CSS appropriée, car l'analyseur personnalisé n'exécute pas les scripts.

La méthode RenderUrlAsPdf() d'IronPDF gère l'ensemble du processus en un seul appel, y compris l'exécution complète de JavaScriptet le rendu CSS avec son moteur Chromium. Pour en savoir plus, consultez nos tutoriels.

Exemple 3 : Paramètres et marges de page personnalisés

Avant (Scryber.Core):

// 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

Après (IronPDF):

// 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

Scryber.Core utilise doc.RenderOptions pour configurer les paramètres de sortie tels que Compression (défini sur OutputCompressionType.FlateDecode) et PaperSize (défini sur PaperSize.A4) après l'analyse du document.

IronPDF utilise Options de rendusur le moteur de rendu avant le rendu. Les propriétés comprennent PaperSize (défini sur PdfPaperSize.A4), MarginTop, et MarginBottom définies en millimètres. La principale différence réside dans le fait qu'IronPDF permet un contrôle direct des marges grâce à des propriétés numériques, tandis que Scryber.Core utilise un style basé sur XML.


Modèles de migration de modèles

Migration de la reliure propriétaire vers des modèles standard

Scryber.Core utilise une syntaxe de liaison propriétaire basée sur XML qui doit être convertie en modèle standard :

Scryber.Core 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>
<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 avec l'interpolation de chaînes en C# :

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);
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

Principal avantage :IronPDFutilise le C# et le HTML standard, ce qui permet d'utiliser n'importe quel moteur de templating (Razor, Handlebars, etc.) plutôt que d'apprendre une syntaxe propriétaire.


Migration des en-têtes et pieds de page

Scryber.Core (en-tête/pied de page basé sur XML):

<?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 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

IronPDF (en-têtes/pieds de page 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

Scryber.Core nécessite une définition de l'en-tête et du pied de page basée sur XML avec des caractères de remplacement propriétaires tels que {{pagenum}} et {{pagetotal}}.IronPDFutilise le langage HTML/CSScomplet pour les en-têtes et les pieds de page avec les caractères génériques {page} et {total-pages}.


Nouvelles capacités après la migration

Après avoir migré vers IronPDF, vous bénéficiez de fonctionnalités que Scryber.Core ne peut pas vous offrir :

Fusion de fichiers PDF

var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var pdf3 = PdfDocument.FromFile("chapter3.pdf");

var merged = PdfDocument.Merge(pdf1, pdf2, pdf3);
merged.SaveAs("complete_book.pdf");
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var pdf3 = PdfDocument.FromFile("chapter3.pdf");

var merged = PdfDocument.Merge(pdf1, pdf2, pdf3);
merged.SaveAs("complete_book.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Sécurité et métadonnées

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>");

// Metadata
pdf.MetaData.Title = "My Document";
pdf.MetaData.Author = "John Doe";
pdf.MetaData.Subject = "Annual Report";
pdf.MetaData.Keywords = "report, annual, confidential";

// Security
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;

pdf.SaveAs("protected.pdf");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>");

// Metadata
pdf.MetaData.Title = "My Document";
pdf.MetaData.Author = "John Doe";
pdf.MetaData.Subject = "Annual Report";
pdf.MetaData.Keywords = "report, annual, confidential";

// Security
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;

pdf.SaveAs("protected.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Résumé de la comparaison des fonctionnalités

Fonction Scryber.Core IronPDF
HTML vers PDF Basique Chromecomplet
URL vers PDF Recherche manuelle 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
Prise en charge de l'asynchronisme Limité Complet
Multiplateforme Oui Oui

Liste de contrôle de la migration

Pré-migration

  • [Audit de tous les modèles Scryber pour les modèles XML/de liaison
  • [Les modèles de liaison de données utilisés ({{model.Property}})
  • [Identifier les styles personnalisés qui nécessitent une conversion CSS
  • [ ] Obtenir la clé de licenceIronPDFà partir de ironpdf.com

Mises à jour du code

  • supprimer le package NuGet Scryber.Core [ ]
  • [Installer le paquet IronPdf NuGet
  • [Mise à jour des importations de l'espace de noms (utilisant Scryber.Core;utilisant IronPdf;)
  • [Remplacer Document.ParseDocument(html, ParseSourceType.DynamicContent) par renderer.RenderHtmlAsPdf(html)
  • [Remplacer doc.SaveAsPDF() par pdf.SaveAs()
  • [ ] Convertir des modèles XML en HTML
  • [Remplacer le binding propriétaire par un templating standard (Razor/interpolation de chaînes)
  • [La traduction doit rester professionnelle, en préservant l'exactitude technique tout en expliquant les caractéristiques et les avantages de ces outils de développement : doc.RenderOptions.PaperSizerenderer.RenderingOptions.PaperSize
  • [ ] Convertir les en-têtes/pieds de page au format HTML avec les caractères de remplacement {page} et {total-pages}
  • [Ajouter l'initialisation de la licence au démarrage de l'application

Testing

  • [Tester tous les modèles de documents
  • [Vérifier les correspondances de style (tirer parti de la prise en charge complète des feuilles de style CSS)
  • [Tester la liaison de données avec le nouveau modèle de présentation (templating)
  • [Vérifier les sauts de page
  • [Tester les en-têtes/pieds de page avec des espaces réservés aux numéros de page
  • [Comparaison des performances

Conclusion

Le choix entre Scryber.Core etIronPDFse résume en fin de compte aux exigences du projet, au budget et au niveau d'assistance souhaité. Scryber.Core constitue une base solide pour les projets où les licences open-source s'alignent sur le modèle commercial et où les modèles HTML sont préférables. Pour les entreprises à la recherche d'une plateforme commerciale soutenue par une large communauté,IronPDFest le choix préférable.

Les principaux changements apportés à cette migration sont les suivants :

  1. Moteur de rendu : Analyseur personnalisé → basé sur Chromium
  2. Support CSS : Limité → CSS3 complet
  3. JavaScript : Non pris en charge → Complet ES2024
  4. Licence : LGPL (restrictive)→ Commercial (flexible)
  5. Analyse HTML : Document.ParseDocument(html, ParseSourceType.DynamicContent)renderer.RenderHtmlAsPdf(html)
  6. Rendu d'URL : Récupération manuelle HttpClient → Native Render URLAsPdf()
  7. Page Settings : doc.RenderOptions.PaperSize = PaperSize.A4renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
  8. Margins : XML styles → renderer.RenderingOptions.MarginTop = 40 (numérique mm)
  9. Méthode d'enregistrement : doc.SaveAsPDF()pdf.SaveAs()
  10. Data Binding : Syntaxe propriétaire {{value}} → Standard C#/Razor
  11. En-têtes/Pieds de page : XML avec {{pagenum} → HTML avec {page}
  12. Nouvelles fonctionnalités : Fusion et division de PDF, filigranes, signatures numériques, PDF/A, sécurité totale

Explorez la documentation complète IronPDF, tutoriel, et référence API pour accélérer votre migration vers IronPDF.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite