Comment migrer de Scryber.Core vers IronPDF en 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 Chromium avec 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
- Problèmes liés à la licence LGPL : La licence LGPL exige que toute modification apportée à la bibliothèque elle-même soit publiée en open source, ce qui peut s'avérer limitant pour certaines applications commerciales.
- Syntaxe des modèles personnalisés : La syntaxe de liaison propriétaire nécessite un apprentissage.
- Prise en charge CSS limitée : moteur de rendu non complet basé sur le navigateur
- Communauté plus restreinte : moins de documentation et d'exemples communautaires
- Aucune exécution JavaScript : rendu statique uniquement
- Configuration complexe : approche de configuration basée sur le XML
- 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 | Chromium |
| 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 | Complète |
| 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 Chromium d'IronPDF assure une compatibilité totale avec les normes web contemporaines.
Avant de commencer
Prérequis
- Environnement .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
- Accès à NuGet : possibilité d'installer des packages NuGet
- Licence IronPDF : Obtenez votre clé de licence sur IronPDF
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
Configuration de la licence
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
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;
Imports Scryber.Components
Imports Scryber.Components.Pdf
Imports Scryber.PDF
Imports Scryber.Styles
Imports Scryber.Core
Imports Scryber.Core.Html
Imports Scryber.Drawing
Imports IronPdf
Imports IronPdf.Rendering
Mappages de l'API de base
| Scryber.Core | IronPDF |
|---|---|
Document.ParseDocument(html) |
renderer.RenderHtmlAsPdf(html) |
Document.ParseTemplate(path) |
renderer.RenderHtmlFileAsPdf(path) |
doc.SaveAsPDF(path) |
pdf.SaveAs(path) |
doc.SaveAsPDF(stream) |
pdf.Stream ou pdf.BinaryData |
doc.Info.Title |
pdf.MetaData.Title |
doc.Info.Author |
pdf.MetaData.Author |
PDFPage |
pdf.Pages[i] |
PDFLayoutDocument |
RenderingOptions |
PDFStyle |
CSS en HTML |
doc.RenderOptions.PaperSize |
RenderingOptions.PaperSize |
Liaison de données ({{value}}) |
Interpolation Razor/Chaîne |
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");
}
}
}
Imports Scryber.Core
Imports Scryber.Core.Html
Imports System.IO
Class Program
Shared Sub Main()
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Using doc = Document.ParseDocument(html, ParseSourceType.DynamicContent)
doc.SaveAsPDF("output.pdf")
End Using
End Sub
End Class
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");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
Cet exemple illustre la différence architecturale fondamentale. Scryber.Core utilise Document.ParseDocument() avec un paramètre ParseSourceType.DynamicContent pour analyser le contenu HTML, nécessitant un bloc using pour une élimination correcte. Le document est ensuite enregistré avec SaveAsPDF().
IronPDF utilise une instance ChromePdfRenderer avec RenderHtmlAsPdf() pour rendre directement le HTML. 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");
}
}
}
Imports Scryber.Core
Imports Scryber.Core.Html
Imports System.Net.Http
Imports System.Threading.Tasks
Module Program
Async Function Main() As Task
Using client As New HttpClient()
Dim html As String = Await client.GetStringAsync("https://www.example.com")
Using doc = Document.ParseDocument(html, ParseSourceType.DynamicContent)
doc.SaveAsPDF("webpage.pdf")
End Using
End Using
End Function
End Module
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");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
pdf.SaveAs("webpage.pdf")
End Sub
End Class
Scryber.Core ne peut pas convertir directement les URL en PDF. Vous devez récupérer manuellement le contenu HTML en utilisant HttpClient.GetStringAsync(), puis analyser le HTML téléchargé avec 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 du JavaScriptet le rendu CSS grâce à 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");
}
}
}
Imports Scryber.Core
Imports Scryber.Core.Html
Imports Scryber.Drawing
Imports System.IO
Class Program
Shared Sub Main()
Dim html As String = "<html><body><h1>Custom PDF</h1><p>With custom margins and settings.</p></body></html>"
Using doc = Document.ParseDocument(html, ParseSourceType.DynamicContent)
doc.RenderOptions.Compression = OutputCompressionType.FlateDecode
doc.RenderOptions.PaperSize = PaperSize.A4
doc.SaveAsPDF("custom.pdf")
End Using
End Sub
End Class
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");
}
}
Imports IronPdf
Imports IronPdf.Rendering
Class Program
Shared Sub Main()
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 40
renderer.RenderingOptions.MarginBottom = 40
Dim html As String = "<html><body><h1>Custom PDF</h1><p>With custom margins and settings.</p></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("custom.pdf")
End Sub
End Class
Scryber.Core utilise doc.RenderOptions pour configurer les paramètres de sortie comme Compression (défini sur OutputCompressionType.FlateDecode) et PaperSize (défini sur PaperSize.A4) après l'analyse du document.
IronPDF utilise RenderingOptions sur le moteur de rendu avant le rendu. Les propriétés incluent PaperSize (défini sur PdfPaperSize.A4), MarginTop et MarginBottom définis 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 :
Liaison Scryber.Core :
<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>
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);
Dim items = model.Items.Select(Function(i) $"<li>{i.Name}: {i.Price:C}</li>")
Dim html = $"
<p>{model.Name}</p>
<p>Total: {model.Total:C}</p>
<ul>
{String.Join("", items)}
</ul>"
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
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>
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");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' HTML header with full CSS support
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
.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 With {
.HtmlFragment = "
<div style='width: 100%; text-align: center; font-size: 10pt;'>
Page {page} of {total-pages}
</div>",
.MaxHeight = 25
}
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Content Here</h1>")
pdf.SaveAs("report.pdf")
Scryber.Core nécessite une définition d'en-tête/pied de page basée sur XML avec des espaces réservés propriétaires comme {{pagenum}} et {{pagetotal}}.IronPDFutilise du HTML/CSScomplet pour les en-têtes et les pieds de page avec des espaces réservés {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");
Dim pdf1 = PdfDocument.FromFile("chapter1.pdf")
Dim pdf2 = PdfDocument.FromFile("chapter2.pdf")
Dim pdf3 = PdfDocument.FromFile("chapter3.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2, pdf3)
merged.SaveAs("complete_book.pdf")
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");
Dim renderer = New ChromePdfRenderer()
Dim 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")
Résumé de la comparaison des fonctionnalités
| Fonction | Scryber.Core | IronPDF |
|---|---|---|
| HTML vers PDF | Basique | Chromium complet |
| URL vers PDF | Recherche manuelle | Support natif |
| Grille CSS | Limité | Prise en charge |
| Flexbox | Limité | Prise en charge |
| 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
- Vérifier tous les modèles Scryber à la recherche de modèles XML/de liaison
- Modèles de liaison de données de document utilisés (
{{model.Property}}) - Identifier les styles personnalisés nécessitant une conversion CSS
- Obtenez votre clé de licenceIronPDFsur IronPDF
Mises à jour du code
- Supprimer le package NuGet
Scryber.Core - Installer le package NuGet
IronPdf - Mise à jour des importations d'espace de noms (
using Scryber.Core;→using IronPdf;) - Remplacez
Document.ParseDocument(html, ParseSourceType.DynamicContent)parrenderer.RenderHtmlAsPdf(html) - Remplacez
doc.SaveAsPDF()parpdf.SaveAs() - Convertir les modèles XML en HTML
- Remplacer la liaison propriétaire par un système de modèles standard (Razor/ interpolation de chaînes)
- Mettre à jour les paramètres de la page :
doc.RenderOptions.PaperSize→renderer.RenderingOptions.PaperSize - Convertir les en-têtes/pieds de page au format HTML avec les espaces réservés
{page}et{total-pages} - Ajouter l'initialisation de la licence au démarrage de l'application
Essai
- Tester tous les modèles de documents
- Vérifier la correspondance des styles (tirer pleinement parti de la prise en charge CSS)
- Tester la liaison de données avec le nouveau modèle
- Vérifier les sauts de page
- Tester les en-têtes/pieds de page avec des espaces réservés pour les numéros de page
- Comparaison des performances

