Passer au contenu du pied de page
GUIDES DE MIGRATION

Comment migrer de PDFmyURL vers IronPDF en C#

Migrer de PDFmyURLàIronPDF: Un guide complet du développeur C

PDFmyURL est un service API basé sur le cloud conçu pour convertir des URL et du contenu HTML en documents PDF. Le service traite toutes les conversions sur des serveurs externes, offrant ainsi un chemin d'intégration direct qui ne nécessite qu'une infrastructure locale minimale. Cependant, cette architecture dépendante du nuage crée des problèmes importants pour les applications de production qui traitent des données sensibles, nécessitent une capacité hors ligne ou doivent éviter les coûts d'abonnement permanents.

Ce guide fournit un chemin de migration complet de PDFmyURLvers IronPDF, avec des instructions étape par étape, des comparaisons de code et des exemples pratiques pour les développeurs .NET professionnels qui évaluent cette transition.

Pourquoi migrer de PDFmyURL

Le modèle de traitement en nuage de PDFmyURLprésente plusieurs défis que les équipes de développement doivent prendre en compte :

Confidentialité et sécurité des données : Chaque document que vous convertissez voyage vers et à travers les serveurs de PDFmyURL- les contrats sensibles, les rapports financiers et les données personnelles sont tous traités en externe.

Coût de l'abonnement permanent : à partir de 39 $/mois, les coûts annuels dépassent 468 $/an sans propriété. Ce modèle d'abonnement implique des dépenses continues, quels que soient les schémas d'utilisation.

Dépendance à l'égard d'Internet : Chaque conversion nécessite une connectivité réseau. Les applications ne peuvent pas traiter les PDF hors ligne ou pendant les pannes de réseau.

Limites de débit et étranglement : Les appels à l'API peuvent être limités en cas de pic d'utilisation, ce qui peut avoir un impact sur les performances de l'application.

Disponibilité du service : Votre application dépend d'un service tiers en ligne et fonctionnel.

Vendor Lock-in : Les modifications de l'API peuvent interrompre votre intégration sans préavis, ce qui nécessite des mises à jour réactives du code.

IronPDFvs PDFmyURL: Comparaison des fonctionnalités

La compréhension des différences architecturales aide les décideurs techniques à évaluer l'investissement dans la migration :

Aspect PDFmyURL IronPDF
Lieu de traitement Serveurs externes Local (votre serveur)
Type API Wrapper bibliothèque .NET
Authentication Clé API par demande Clé de licence unique
Réseau requis Chaque conversion Seule la configuration initiale
Modèle de tarification Abonnement mensuel (39 $+) Licence perpétuelle disponible
Limites de tarifs Oui (en fonction du plan) Aucun
Confidentialité des données Données envoyées à l'extérieur Les données restent locales
Support HTML/CSS/JS Conforme au W3C Moteur Chromium complet
Async Pattern Obligatoire (asynchrone uniquement) Options de synchronisation et d'asynchronisation
Manipulation de PDF Limité Suite complète (fusion, division, édition)
Cas d'utilisation Applications à faible volume Volume important et entreprise

Démarrage rapide : Migration de PDFmyURLvers IronPDF

La migration peut commencer immédiatement grâce à ces étapes fondamentales.

Étape 1 : Remplacer les paquets NuGet

Supprimer les paquets PDFmyURL:

# Remove PDFmyURLpackages
dotnet remove package PdfMyUrl
dotnet remove package Pdfcrowd
# Remove PDFmyURLpackages
dotnet remove package PdfMyUrl
dotnet remove package Pdfcrowd
SHELL

InstallezIronPDF:

# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
SHELL

Étape 2 : Mise à jour des espaces de noms

Remplacez les espaces de noms PDFmyURLpar IronPdf :

// Before: PDFmyURL
using PdfMyUrl;
using Pdfcrowd;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
// Before: PDFmyURL
using PdfMyUrl;
using Pdfcrowd;

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

Étape 3 : initialisation de la licence

Ajouter l'initialisation de la licence au démarrage de l'application :

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Exemples de migration de code

Conversion des URL en PDF

L'opération URL-to-PDF démontre les différences fondamentales d'API entre PDFmyURLet IronPDF.

Approche PDFmyURL:

// Install PDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            client.convertUrlToFile("https://example.com", "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
// Install PDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            client.convertUrlToFile("https://example.com", "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Approche IronPDF:

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

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

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

PDFmyURL nécessite la création d'un HtmlToPdfClientavec un nom d'utilisateur et une clé API pour chaque demande de conversion, puis l'appel de convertUrlToFile() avec l'URL et le chemin de sortie. L'opération entière doit être enveloppée dans un try-catch pour le type Error personnalisé de PDFmyURL.

IronPDF simplifie cela en trois lignes : créer un ChromePdfRenderer, appeler RenderUrlAsPdf(), et utiliser la méthode intégrée SaveAs(). Il n'est pas nécessaire de fournir des informations d'identification par demande : la licence est définie une fois au démarrage de l'application.

Pour les scénarios avancés de conversion d'URL en PDF, voir la documentation sur la conversion d'URL en PDF.

La conversion de chaînes HTML en PDF

La conversion de la chaîne HTML montre clairement les différences de modèle.

Approche PDFmyURL:

// Install PDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            string html = "<html><body><h1>Hello World</h1></body></html>";
            client.convertStringToFile(html, "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
// Install PDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            string html = "<html><body><h1>Hello World</h1></body></html>";
            client.convertStringToFile(html, "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Approche IronPDF:

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

class Example
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Example
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFmyURL utilise convertStringToFile() qui envoie le contenu HTML à des serveurs externes pour traitement. Le RenderHtmlAsPdf() d'IronPDF traite tout localement en utilisant le moteur de rendu Chromium.

Explorez le guide de conversion du HTML en PDF pour des options supplémentaires.

Conversion de fichiers HTML avec paramètres de page

La configuration de la taille, de l'orientation et des marges du papier nécessite des approches différentes dans chaque bibliothèque.

Approche PDFmyURL:

// Install PDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            client.setPageSize("A4");
            client.setOrientation("landscape");
            client.setMarginTop("10mm");
            client.convertFileToFile("input.html", "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
// Install PDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            client.setPageSize("A4");
            client.setOrientation("landscape");
            client.setMarginTop("10mm");
            client.convertFileToFile("input.html", "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Approche IronPDF:

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

class Example
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.MarginTop = 10;
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Example
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.MarginTop = 10;
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFmyURL utilise des méthodes setter avec des paramètres de chaîne comme setPageSize("A4")et setMarginTop("10mm").IronPDFfournit des propriétés fortement typées par le biais de RenderingOptions avec des enums comme PdfPaperSize.A4 et des valeurs entières pour les marges en millimètres.

Référence de mappage de l'API PDFmyURLvers IronPDF

Cette cartographie accélère la migration en indiquant les équivalents directs des API :

Classes de base

PDFmyURL IronPDF Notes
HtmlToPdfClient ChromePdfRenderer Principale classe de conversion
PdfMyUrlClient ChromePdfRenderer Classe de client alternative
Objet de réponse API Document PDF Résultat Objet PDF

Méthodes

PDFmyURL IronPDF Notes
client.convertUrlToFile(url, file) renderer.RenderUrlAsPdf(url).SaveAs(file) URL vers PDF
client.convertStringToFile(html, file) renderer.RenderHtmlAsPdf(html).SaveAs(file) Chaîne HTML vers PDF
client.convertFileToFile(input, output) renderer.RenderHtmlFileAsPdf(input).SaveAs(output) De fichier à fichier
response.GetBytes() pdf.BinaryData Obtenir des octets bruts
Réponse.GetStream() pdf.Stream Obtenir en tant que flux

Options de configuration

PDFmyURL(méthodes setXxx) IronPDF(RenderingOptions) Notes
setPageSize("A4") .PaperSize = PdfPaperSize.A4 Taille du papier
setPageSize("Letter") .PaperSize = PdfPaperSize.Letter Lettre pour les États-Unis
setOrientation("landscape") .PaperOrientation = PdfPaperOrientation.Landscape Orientation
setOrientation("portrait") .PaperOrientation = PdfPaperOrientation.Portrait Portrait
setMarginTop("10mm") .MarginTop = 10 Marge supérieure (mm)
setMarginBottom("10mm") .MarginBottom = 10 Marge inférieure (mm)
setMarginLeft("10mm") .MarginLeft = 10 Marge gauche (mm)
setMarginRight("10mm") .MarginRight = 10 Marge droite (mm)
setHeaderHtml(html) .HtmlHeader = new HtmlHeaderFooter { HtmlFragment = html } En-tête
setFooterHtml(html) .HtmlFooter = new HtmlHeaderFooter { HtmlFragment = html } Pied de page
setJavascriptDelay(500) .RenderDelay = 500 Temps d'attente JS (ms)
setDisableJavascript(true) .EnableJavaScript = false Désactiver JS
setUsePrintMedia(true) .CssMediaType = PdfCssMediaType.Print Imprimer CSS

Comparaison de l'authentification

PDFmyURL IronPDF
new HtmlToPdfClient("username", "apikey") IronPdf.License.LicenseKey = "LICENSE-KEY"
Clé API par demande Une seule fois au démarrage
Nécessaire pour chaque appel Définir une fois au niveau mondial

Problèmes de migration courants et solutions

Enjeu 1 : Clé API vs clé de licence

PDFmyURL: Requiert des informations d'identification pour chaque demande de conversion.

Solution: Définir la licenceIronPDFune fois au démarrage de l'application :

// PDFmyURL: API key per request
var client = new HtmlToPdfClient("username", "apikey");

// IronPDF: One-time license at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Set once, typically in Program.cs or Startup.cs
// PDFmyURL: API key per request
var client = new HtmlToPdfClient("username", "apikey");

// IronPDF: One-time license at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Set once, typically in Program.cs or Startup.cs
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Sujet 2 : Syntaxe des espaces réservés dans les en-têtes et pieds de page

PDFmyURL: Utilise les caractères de remplacement {numéro de page} et {total_pages}.

Solution:Mise à jour du format de remplacement d'IronPDF :

// PDFmyURL: "Page {page_number} of {total_pages}"
// IronPDF: "Page {page} of {total-pages}"
// PDFmyURL: "Page {page_number} of {total_pages}"
// IronPDF: "Page {page} of {total-pages}"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Numéro 3 : Async Patterns (en anglais)

PDFmyURL: Requiert des modèles async/await.

Solution:IronPDFest synchrone par défaut ; enveloppez pour async si nécessaire :

// PDFmyURL: Native async
var response = await client.ConvertUrlAsync(url);

// IronPDF: Sync by default, wrap for async
var pdf = await Task.Run(() => renderer.RenderUrlAsPdf(url));
// PDFmyURL: Native async
var response = await client.ConvertUrlAsync(url);

// IronPDF: Sync by default, wrap for async
var pdf = await Task.Run(() => renderer.RenderUrlAsPdf(url));
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Edition 4 : Gestion des erreurs

PDFmyURL: Utilise le type d'exception personnalisé Pdfcrowd.Error.

Solution:Mettre à jour les blocs de capture pour les exceptionsIronPDF:

// PDFmyURL: Pdfcrowd.Error
catch (Pdfcrowd.Error e) { ... }

// IronPDF: Standard exceptions
catch (IronPdf.Exceptions.IronPdfRenderingException e) { ... }
// PDFmyURL: Pdfcrowd.Error
catch (Pdfcrowd.Error e) { ... }

// IronPDF: Standard exceptions
catch (IronPdf.Exceptions.IronPdfRenderingException e) { ... }
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Numéro 5 : Modèle de configuration

PDFmyURL: Utilise des méthodes setter avec des valeurs de chaîne.

Solution: Utiliser des propriétés RenderingOptions fortement typées :

// PDFmyURL: Setter methods
client.setPageSize("A4");
client.setOrientation("landscape");

// IronPDF: Properties with enums
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
// PDFmyURL: Setter methods
client.setPageSize("A4");
client.setOrientation("landscape");

// IronPDF: Properties with enums
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Liste de contrôle pour la migration vers PDFmyURL

Tâches préalables à la migration

Auditez votre base de code pour identifier toute utilisation de PDFmyURL:

# Find PDFmyURLusage
grep -r "PdfMyUrl\|Pdfcrowd\|HtmlToPdfClient" --include="*.cs" .

# Find API key references
grep -r "apikey\|api-key\|api_key" --include="*.cs" --include="*.json" --include="*.config" .

# Find placeholder patterns to migrate
grep -r "{page_number}\|{total_pages}" --include="*.cs" .
# Find PDFmyURLusage
grep -r "PdfMyUrl\|Pdfcrowd\|HtmlToPdfClient" --include="*.cs" .

# Find API key references
grep -r "apikey\|api-key\|api_key" --include="*.cs" --include="*.json" --include="*.config" .

# Find placeholder patterns to migrate
grep -r "{page_number}\|{total_pages}" --include="*.cs" .
SHELL

Documenter les options de configuration actuelles utilisées. Planifier le stockage des clés de licence à l'aide de variables d'environnement.

Tâches de mise à jour du code

  1. Supprimer les paquets NuGet PDFmyURL/Pdfcrowd
  2. Installer le paquet NuGet IronPdf
  3. Mise à jour de toutes les importations d'espaces de noms
  4. Remplacer l'authentification par clé API par une clé de licence IronPDF
  5. Convertir les méthodes setter en propriétés RenderingOptions
  6. Mise à jour de la syntaxe des caractères de remplacement dans les en-têtes/pieds de page ({numéro de page}{page}, {total_pages}{total-pages})
  7. Mise à jour du code de gestion des erreurs pour les types d'exception IronPDF
  8. Ajouter l'initialisation de la licenceIronPDFau démarrage

Test de post-migration

Après la migration, vérifiez ces aspects :

  • Testez la qualité de la sortie PDF en fonction des attentes
  • Vérifier que les modèles asynchrones fonctionnent correctement
  • Comparer la fidélité du rendu avec le résultat précédent
  • Testez le bon rendu de toutes les variantes du modèle
  • Valider les paramètres de la page (taille, orientation, marges)
  • Installer les dépendances Linux en cas de déploiement sur des serveurs Linux

Avantages clés de la migration vers IronPDF

Le passage de PDFmyURLàIronPDFprésente plusieurs avantages décisifs :

Confidentialité totale : Les documents ne quittent jamais votre serveur. Tous les traitements sont effectués localement, ce qui élimine les problèmes de sécurité des données pour les contenus sensibles.

<Coût unique : L'option de licence perpétuelle élimine les frais d'abonnement récurrents. Fini les paiements mensuels quel que soit le volume d'utilisation.

Capacité hors ligne : Fonctionne sans internet après l'installation initiale. Les pannes de réseau n'ont pas d'incidence sur la génération de PDF.

Aucune limite de débit : Traitez un nombre illimité de documents sans souci d'étranglement.

Moindre latence : l'absence de frais généraux de réseau se traduit par des conversions plus rapides, en particulier pour les applications à fort volume.

<Contrôle total : c'est vous qui contrôlez l'environnement de traitement, et non un service tiers.

Moteur moderne Chromium : Prise en charge complète de CSS3 et de JavaScript avec le même moteur de rendu que celui qui équipe le navigateur Chrome.

Développement actif : Alors que l'adoption de .NET 10 et C# 14 augmente jusqu'en 2026, les mises à jour régulières d'IronPDF garantissent la compatibilité avec les versions .NET actuelles et futures.

Conclusion

PDFmyURL offre une solution simple basée sur le cloud pour les besoins de génération de PDF à faible volume. Cependant, le modèle de traitement externe engendre des problèmes de confidentialité, des coûts permanents et des risques de dépendance que de nombreuses applications de production ne peuvent accepter.

IronPDF assure un traitement local qui conserve les données sensibles sur vos serveurs, élimine les frais d'abonnement avec une licence perpétuelle et offre un moteur de rendu moderne basé sur Chromium. Le chemin de migration est simple : remplacer les paquets NuGet, mettre à jour les méthodes setter vers des propriétés fortement typées et ajuster la syntaxe des espaces réservés.

Commencez votre migration dès aujourd'hui avec un essai gratuit d'IronPDF et découvrez les avantages du traitement local des PDF.

Pour des conseils de mise en œuvre complets, explorez la documentation IronPDF et les tutoriels.

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