Passer au contenu du pied de page
VIDéOS

Comment définir l'orientation et la rotation de la page en .NET C# | IronPDF

La migration de SelectPdfvers IronPDF déplace votre flux de travail de génération de PDF depuis une bibliothèque uniquement Windows, dont le moteur de rendu par défaut est un WebKit interne et dont le moteur Blink en option est livré avec Chromium 124 (avril 2024), vers une bibliothèque actuelle-Chromium, multiplateforme, avec un support complet de CSS3 et JavaScript. Ce guide fournit un chemin de migration complet, étape par étape, qui permet le déploiement sur Linux, Docker, Azure Functions, et d'autres plateformes cloud que SelectPdfne prend pas en charge.

Pourquoi migrer de SelectPdfà IronPDF

Comprendre SelectPdf

SelectPdf est une bibliothèque commerciale conçue pour convertir du contenu HTML en PDF à l'aide de C#. La bibliothèque est conçue pour les développeurs qui ont besoin d'une intégration transparente de la fonctionnalité de génération de PDF dans leurs applications. La force de SelectPdfréside dans la simplicité de son API, ce qui en fait une option attrayante pour les novices en matière de génération de PDF.

Toutefois, les utilisateurs potentiels doivent être conscients de ses limites critiques. Selon la documentation du fournisseur lui-même, SelectPdfne fonctionne que sur Windows — pas Linux, macOS, ou Xamarin. Cela représente un obstacle important lors de l'examen des solutions de déploiement basées dans le cloud, telles que Linux Azure Functionsou Docker. L'édition communautaire est limitée à 5 pages par PDF et applique un filigrane à chaque page jusqu'à ce qu'une clé de licence soit achetée. Le moteur de rendu par défaut de SelectPdfest un WebKit interne ; le moteur Blink optionnel est livré avec Chromium 124 (avril 2024), qui est en retard par rapport à la version actuelle de Chrome et peut causer des problèmes avec les nouvelles fonctionnalités CSS telles que Grille CSSet la propriété Flexbox gap.

Limites critiques de SelectPdf

Problème Impact Solution IronPDF
Fenêtres uniquement Impossible de déployer vers Linux, Docker, Azure Functions Prise en charge multiplateforme complète
Moteur WebKit par défaut ; Blink optionnel livré avec Chromium 124 (avril 2024) Les nouvelles fonctionnalités CSS peuvent échouer sur le moteur par défaut Chromium à jour
Limite de 5 pages pour la version gratuite Filigrane par page sur chaque page jusqu'à ce qu'une licence soit achetée Essai généreux
.NET 10 uniquement sur Windows Pas de déploiement Linux/macOS/container Compatibilité totale .NET 10 toutes plateformes
Déploiement cloud bloqué (non-Windows) Impossible d'utiliser AWS Lambdaou Linux Azure Functions Cloud-native

Comparaison SelectPdfvs IronPDF

Fonction SelectPdf IronPDF
Support de la plateforme Windows uniquement Multiplateforme complète, 10+ distros
Support des normes Web modernes WebKit par défaut ; Option Blink livré avec Chromium 124 (avril 2024) CSS3 complet, Chromium actuel
Limite maximale de pages de la version gratuite 5 pages + filigrane par page Flexible, pas de limite stricte
Tarification 499 $ par développeur, 1 599 $ pour l'Enterprise OEM Tarification transparente et flexible
Prise en charge de .NET 10 Oui, mais uniquement Windows Oui, toutes plateformes
Déploiement dans les environnements cloud Cibles uniquement Windows Complètement pris en charge (Windows + Linux)
CSS Grid WebKit : limité ; Blink (Chromium 124) : pris en charge Prise en charge
Flexbox (propriété gap) WebKit : non pris en charge ; Blink: pris en charge Prise en charge
Variables CSS WebKit : non pris en charge ; Blink: pris en charge Prise en charge
Docker (Linux) Non pris en charge Images officielles
Azure Functions (Linux) Non pris en charge Prise en charge
AWS Lambda Non pris en charge Prise en charge

Le package NetCore de SelectPdfcible .NET Standard 2.0 et est documenté comme compatible avec .NET 5 à travers .NET 10 — mais uniquement sur Windows, ce qui neutralise cette compatibilité pour toute équipe déployant sur des conteneurs Linux, AWS Lambda, ou Azure App Service basé sur Linux.IronPDF prend en charge les mêmes versions .NET et fonctionne sur Windows, Linux, macOS, et Docker.


Avant de commencer

Prérequis

  1. .NET Environment: .NET Framework 4.6.1+ or .NET Core 3.1+ / .NET 5/6/7/8/9/10+
  2. Accès à NuGet : possibilité d'installer des packages NuGet
  3. Licence IronPDF : Obtenez votre clé de licence sur IronPDF

Modifications du paquet NuGet

# Remove SelectPdf(use Select.HtmlToPdf.NetCore on .NET Core / .NET 5+)
dotnet remove package Select.HtmlToPdf
# or: dotnet remove package Select.HtmlToPdf.NetCore

# Install IronPDF
dotnet add package IronPdf
# Remove SelectPdf(use Select.HtmlToPdf.NetCore on .NET Core / .NET 5+)
dotnet remove package Select.HtmlToPdf
# or: dotnet remove package Select.HtmlToPdf.NetCore

# 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";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Référence API complète

Modifications de l'espace de nommage

// Before: SelectPdf
using SelectPdf;

// After: IronPDF
using IronPdf;
using IronPdf.Engines.Chrome;
// Before: SelectPdf
using SelectPdf;

// After: IronPDF
using IronPdf;
using IronPdf.Engines.Chrome;
' Before: SelectPdf
Imports SelectPdf

' After: IronPDF
Imports IronPdf
Imports IronPdf.Engines.Chrome
$vbLabelText   $csharpLabel

Mappages de l'API de base

SelectPdf IronPDF Notes
HtmlToPdf ChromePdfRenderer Classe de convertisseur de base
converter.ConvertHtmlString(html) renderer.RenderHtmlAsPdf(html) Conversion de chaînes HTML
converter.ConvertUrl(url) renderer.RenderUrlAsPdf(url) Conversion d'URL
doc.Save(path) pdf.SaveAs(path) Enregistrer dans un fichier
doc.Close() Pas nécessaire IronPDFs'occupe du nettoyage
converter.Options.PdfPageSize renderer.RenderingOptions.PaperSize Taille du papier
converter.Options.PdfPageOrientation renderer.RenderingOptions.PaperOrientation Orientation
converter.Options.MarginTop renderer.RenderingOptions.MarginTop Marge supérieure
converter.Options.MarginBottom renderer.RenderingOptions.MarginBottom Marge inférieure
converter.Options.MarginLeft renderer.RenderingOptions.MarginLeft Marge gauche
converter.Options.MarginRight renderer.RenderingOptions.MarginRight Marge droite
PdfPageSize.A4 PdfPaperSize.A4 Format A4 enum
PdfPageOrientation.Portrait PdfPaperOrientation.Portrait Portrait enum
PdfPageOrientation.Landscape PdfPaperOrientation.Landscape Paysage enum
{page_number} {page} Espace réservé au numéro de page
{total_pages} {total-pages} Nombre total de pages

Exemples de migration de code

Exemple 1 : Conversion d'une chaîne HTML en fichier PDF

Avant (SelectPdf):

// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

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

        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertHtmlString(htmlContent);
        doc.Save("document.pdf");
        doc.Close();

        Console.WriteLine("PDF generated from HTML string");
    }
}
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

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

        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertHtmlString(htmlContent);
        doc.Save("document.pdf");
        doc.Close();

        Console.WriteLine("PDF generated from HTML string");
    }
}
Imports SelectPdf
Imports System

Class Program
    Shared Sub Main()
        Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"

        Dim converter As New HtmlToPdf()
        Dim doc As PdfDocument = converter.ConvertHtmlString(htmlContent)
        doc.Save("document.pdf")
        doc.Close()

        Console.WriteLine("PDF generated from HTML string")
    End Sub
End Class
$vbLabelText   $csharpLabel

Après (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

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

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");

        Console.WriteLine("PDF generated from HTML string");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

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

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");

        Console.WriteLine("PDF generated from HTML string");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"

        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
        pdf.SaveAs("document.pdf")

        Console.WriteLine("PDF generated from HTML string")
    End Sub
End Class
$vbLabelText   $csharpLabel

Cet exemple illustre les principales différences entre les API. SelectPdfutilise HtmlToPdf comme classe de convertisseur, appelant ConvertHtmlString() pour créer un PdfDocument, puis Save() et Close() pour persister et nettoyer.

IronPDF utilise ChromePdfRenderer avec RenderHtmlAsPdf(), retournant un PdfDocument qui est enregistré avec SaveAs(). L'appel Close() est éliminé—IronPDF gère automatiquement la gestion des ressources. Consultez la documentation HTML vers PDF pour des exemples complets.

Exemple 2 : Conversion d'une URL en PDF

Avant (SelectPdf):

// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertUrl("https://www.example.com");
        doc.Save("output.pdf");
        doc.Close();

        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertUrl("https://www.example.com");
        doc.Save("output.pdf");
        doc.Close();

        Console.WriteLine("PDF created successfully");
    }
}
Imports SelectPdf
Imports System

Class Program
    Shared Sub Main()
        Dim converter As New HtmlToPdf()
        Dim doc As PdfDocument = converter.ConvertUrl("https://www.example.com")
        doc.Save("output.pdf")
        doc.Close()

        Console.WriteLine("PDF created successfully")
    End Sub
End Class
$vbLabelText   $csharpLabel

Après (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
        pdf.SaveAs("output.pdf")

        Console.WriteLine("PDF created successfully")
    End Sub
End Class
$vbLabelText   $csharpLabel

La méthode ConvertUrl() de SelectPdfse mappe directement à RenderUrlAsPdf() de IronPDF. La différence essentielle réside dans le moteur de rendu : SelectPdfutilise par défaut un WebKit interne et offre un moteur Blink optionnel fourni avec Chromium 124 (avril 2024), tandis qu'IronPDF utilise Chromium stable actuel pour un support complet de CSS3 et JavaScript. Pour en savoir plus, consultez nos tutoriels.

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

Avant (SelectPdf):

// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();

        converter.Options.PdfPageSize = PdfPageSize.A4;
        converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait;
        converter.Options.MarginTop = 20;
        converter.Options.MarginBottom = 20;
        converter.Options.MarginLeft = 20;
        converter.Options.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        PdfDocument doc = converter.ConvertHtmlString(html);
        doc.Save("custom-settings.pdf");
        doc.Close();

        Console.WriteLine("PDF with custom settings created");
    }
}
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();

        converter.Options.PdfPageSize = PdfPageSize.A4;
        converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait;
        converter.Options.MarginTop = 20;
        converter.Options.MarginBottom = 20;
        converter.Options.MarginLeft = 20;
        converter.Options.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        PdfDocument doc = converter.ConvertHtmlString(html);
        doc.Save("custom-settings.pdf");
        doc.Close();

        Console.WriteLine("PDF with custom settings created");
    }
}
Imports SelectPdf
Imports System

Module Program
    Sub Main()
        Dim converter As New HtmlToPdf()

        converter.Options.PdfPageSize = PdfPageSize.A4
        converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait
        converter.Options.MarginTop = 20
        converter.Options.MarginBottom = 20
        converter.Options.MarginLeft = 20
        converter.Options.MarginRight = 20

        Dim html As String = "<html><body><h1>Custom Page Settings</h1></body></html>"
        Dim doc As PdfDocument = converter.ConvertHtmlString(html)
        doc.Save("custom-settings.pdf")
        doc.Close()

        Console.WriteLine("PDF with custom settings created")
    End Sub
End Module
$vbLabelText   $csharpLabel

Après (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("custom-settings.pdf");

        Console.WriteLine("PDF with custom settings created");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("custom-settings.pdf");

        Console.WriteLine("PDF with custom settings created");
    }
}
Imports IronPdf
Imports IronPdf.Engines.Chrome
Imports System

Module Program
    Sub Main()
        Dim renderer As New ChromePdfRenderer()

        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
        renderer.RenderingOptions.MarginTop = 20
        renderer.RenderingOptions.MarginBottom = 20
        renderer.RenderingOptions.MarginLeft = 20
        renderer.RenderingOptions.MarginRight = 20

        Dim html As String = "<html><body><h1>Custom Page Settings</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("custom-settings.pdf")

        Console.WriteLine("PDF with custom settings created")
    End Sub
End Module
$vbLabelText   $csharpLabel

Le modèle de configuration des pages est presque identique, avec des changements simples de noms de propriétés :

  • converter.Options.PdfPageSizerenderer.RenderingOptions.PaperSize
  • converter.Options.PdfPageOrientationrenderer.RenderingOptions.PaperOrientation
  • PdfPageSize.A4PdfPaperSize.A4
  • PdfPageOrientation.PortraitPdfPaperOrientation.Portrait

Les propriétés des marges conservent les mêmes noms et les mêmes unités.


Le problème de Windows uniquement

Limitation de la plateforme SelectPdf

Malgré toutes les affirmations marketing, SelectPdfne prend explicitement pas en charge :

  • Linux (toute distribution)
  • macOS
  • Conteneurs Docker
  • Azure Functions
  • AWS Lambda
  • Fonctions Google Cloud
  • Tous les systèmes basés sur ARM

Il s'agit d'une limitation architecturale fondamentale - SelectPdfdépend de bibliothèques spécifiques à Windows et ne peut pas être porté.

Comparaison de la prise en charge des plates-formes

Plateforme SelectPdf IronPDF
Windows Server 2019+
Windows 10/11
Ubuntu 20.04+
Debian 10+
CentOS 7+
Alpine Linux
Amazon Linux 2
macOS 10.15+
Azure App Service (Linux)
Azure Functions
AWS Lambda
Docker (Linux)
Kubernetes

Le moteur de rendu dépassé

Comparaison de la prise en charge des fonctionnalités CSS

SelectPdf propose trois moteurs (selon les docs du fournisseur) : un WebKit interne (par défaut), Blink (introduit en v19.1, fourni avec Chromium 124.0.6367.201 — sorti en avril 2024), et Chromium/CEF. Le moteur WebKit par défaut n'a pas suivi le rythme des normes web modernes :

Fonctionnalité CSS SelectPdf(par défaut WebKit) SelectPdf(Blink, Chromium 124) IronPDF
Grille CSS ⚠ Partiel/cassé ✅Complet
Flexbox (de base)
Flexbox (propriété de l'espace)
Variables CSS
CSS calc() ⚠ Limité
@media print ⚠ Limité
@font-face ⚠ Limité
Polices de caractères Web ⚠ Limité
SVG ⚠ Basique ✅Complet
Transformations CSS ⚠ Limité
Animations CSS ⚠ Partiel

Nouvelles capacités après la migration

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

Déploiement multiplateforme

// ✅IronPDF- Works everywhere
using IronPdf;

// Azure App Service (Linux)- WORKS
// Docker container - WORKS
// AWS Lambda- WORKS
// GitHub Actions on ubuntu-latest - WORKS
// macOS development - WORKS

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>");
pdf.SaveAs("output.pdf");
// ✅IronPDF- Works everywhere
using IronPdf;

// Azure App Service (Linux)- WORKS
// Docker container - WORKS
// AWS Lambda- WORKS
// GitHub Actions on ubuntu-latest - WORKS
// macOS development - WORKS

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>");
pdf.SaveAs("output.pdf");
Imports IronPdf

' Azure App Service (Linux)- WORKS
' Docker container - WORKS
' AWS Lambda- WORKS
' GitHub Actions on ubuntu-latest - WORKS
' macOS development - WORKS

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>")
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Support CSS moderne

// ✅IronPDF- Uses latest stable Chromium
var renderer = new ChromePdfRenderer();

var html = @"
<style>
    :root { --primary: #007bff; --gap: 20px; }
    .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); }
</style>
<div class='grid'>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 1</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 2</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 3</div>
</div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// All modern CSS features render correctly!
// ✅IronPDF- Uses latest stable Chromium
var renderer = new ChromePdfRenderer();

var html = @"
<style>
    :root { --primary: #007bff; --gap: 20px; }
    .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); }
</style>
<div class='grid'>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 1</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 2</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 3</div>
</div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// All modern CSS features render correctly!
Imports IronPdf

' ✅IronPDF- Uses latest stable Chromium
Dim renderer As New ChromePdfRenderer()

Dim html As String = "
<style>
    :root { --primary: #007bff; --gap: 20px; }
    .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); }
</style>
<div class='grid'>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 1</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 2</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 3</div>
</div>"

Dim pdf = renderer.RenderHtmlAsPdf(html)
' All modern CSS features render correctly!
$vbLabelText   $csharpLabel

Pas de Close() nécessaire

IronPDF s'occupe automatiquement de la gestion des ressources :

// Option 1: Let garbage collection handle it
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// No Close() needed

// Option 2: Explicit disposal
using (var pdf = renderer.RenderHtmlAsPdf(html))
{
    pdf.SaveAs("output.pdf");
}
// Option 1: Let garbage collection handle it
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// No Close() needed

// Option 2: Explicit disposal
using (var pdf = renderer.RenderHtmlAsPdf(html))
{
    pdf.SaveAs("output.pdf");
}
' Option 1: Let garbage collection handle it
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
' No Close() needed

' Option 2: Explicit disposal
Using pdf = renderer.RenderHtmlAsPdf(html)
    pdf.SaveAs("output.pdf")
End Using
$vbLabelText   $csharpLabel

Liste de contrôle de la migration

Pré-migration

  • Auditer toutes les utilisations de SelectPdfdans le code source
  • Documenter les options de convertisseur de courant pour la cartographie
  • Identifier les implémentations d'en-tête/pied de page
  • Vérifiez la syntaxe du placeholder de numéro de page ({page_number}{page})
  • Notez les modèles de gestion des URL de base
  • Vérifier les plateformes de déploiement cibles
  • Obtenez votre clé de licence IronPDF sur IronPDF

Mises à jour du code

  • Supprimez le package NuGet Select.HtmlToPdf
  • Installez le package NuGet IronPdf
  • Mettez à jour les imports de namespaces (using SelectPdf;using IronPdf;)
  • Remplacez HtmlToPdf par ChromePdfRenderer
  • Remplacez ConvertHtmlString() par RenderHtmlAsPdf()
  • Remplacez ConvertUrl() par RenderUrlAsPdf()
  • Mettez à jour les noms des propriétés d'option (Options.PdfPageSizeRenderingOptions.PaperSize)
  • Convertissez PdfPageSize en PdfPaperSize
  • Convertissez PdfPageOrientation en PdfPaperOrientation
  • Remplacez doc.Save() par pdf.SaveAs()
  • Supprimez tous les appels doc.Close()
  • Corrigez les placeholders de numéro de page ({page_number}{page}, {total_pages}{total-pages})
  • Ajouter l'initialisation de la licence au démarrage de l'application

Après la migration

  • Exécuter tous les tests unitaires
  • Vérifier le rendu CSS (en particulier Grid/Flexbox)
  • Test d'exécution JavaScript
  • Vérifier les numéros de page d'en-tête/de pied de page
  • Tester sur les plateformes cibles (Linux, Docker, etc.)
  • Test de performance
  • Comparer la qualité de sortie des PDF
  • Mise à jour des pipelines CI/CD
  • Tester les déploiements cloud (le cas échéant)

Veuillez noterSelectPDF est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié, approuvé ou sponsorisé par Outside Software SRL ou SelectPdf. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont à titre informatif uniquement et reflètent les informations publiquement disponibles au moment de l'écriture.

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

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi