IRONSOFTWAREHOME
VIDÉOS

Comment gérer les connexions et l'authentification en utilisant C#

Curtis Chau
Curtis Chau
Updated: 18 mai 2026

BCL Technologies, l'éditeur d'origine du SDK easyPDF, a été acquis par Apryse (anciennement PDFTron) en mars 2020, et le produit est maintenant positionné en tant que SDK hérité aux côtés du SDK PDF Apryse. Le SDK lui-même dépend de plusieurs technologies héritées qui créent des défis de déploiement et de maintenance dans les environnements de développement modernes.

Problèmes courants de déploiement du SDK Easy PDF

Les développeurs rencontrent fréquemment ces problèmes lorsqu'ils travaillent avec Easy PDF SDK:

  • bcl.easypdf.interop.easypdfprinter.dll error loading
  • COM object that has been separated from its underlying RCW cannot be used
  • Timeout expired waiting for print job to complete
  • The printer operation failed because the service is not running
  • Error: Access denied (session interactive requise)
  • Cannot find printer: BCL easyPDF Printer

Ces erreurs proviennent généralement de l'architecture du SDK Easy PDF, qui repose sur des pilotes d'imprimante virtuelle, l'interopérabilité COM et des sessions interactives Windows difficiles à reproduire dans les environnements serveurs modernes.

Easy PDF SDKvs.IronPDF: Principales différences

FonctionEasy PDF SDKIronPDF
PlateformeWindows uniquementWindows, Linux, macOS, Docker
Dépendance bureautiqueLes exigences sont les suivantesNone
DistributionInstallateur MSI + références DLL manuelles (pas de package NuGet)Paquet NuGet (IronPdf)
InstallationMSI + pilote d'imprimante virtuelle + enregistrement COMPaquet NuGet
Support serveurNécessite généralement une session interactive WindowsFonctionne sans tête
Rendu HTMLBasique (bureautique)Chromium complet (CSS3, JS)
Support .NETLimited .NET Core.NET Framework 4.6.2+ et .NET 5/6/7/8/9
Async PatternBasé sur des rappelsAsync/await natif
Support de conteneursNon pris en charge par le fournisseurDocker/Kubernetes complet

Limitations de la plate-forme

Le SDK Easy PDF cible Windows et repose sur des installations Microsoft Office pour convertir les documents Office, ce qui limite son utilisation sur Linux, macOS et dans des environnements conteneurisés comme Docker. Cette dépendance a tendance à rendre les configurations de serveur plus complexes et lie le déploiement à Windows — une contrainte pour les équipes pratiquant le DevOps multi-plateformes ou s'appuyant sur des conteneurs Linux.

Préparation de la migration

Prérequis

Assurez-vous que votre environnement répond à ces exigences :

  • .NET Framework 4.6.2+ ou .NET Core 3.1 / .NET 5-9
  • Visual Studio 2019+ ou VS Code avec l'extension C#
  • Accès au Package Manager NuGet
  • Clé de licence IronPDF(essai gratuit disponible sur ironpdf.com)

Utilisation du SDK PDF facile d'audit

Exécutez ces commandes dans votre répertoire de solutions pour identifier toutes les références à Easy PDF SDK:

# Find all BCL using statements
grep -r "using BCL" --include="*.cs" .

# Find Printer/PDFDocument usage
grep -r "Printer\|PDFDocument\|PDFConverter\|HTMLConverter" --include="*.cs" .

# Find COM interop references
grep -r "easyPDF\|BCL.easyPDF" --include="*.csproj" .

# Find configuration settings
grep -r "PageOrientation\|TimeOut\|PrintOffice" --include="*.cs" .
SHELL

Modifications importantes à prévoir

Modèle Easy PDF SDKChangements requis
new Printer()Utiliser ChromePdfRenderer
PrintOfficeDocToPDF()La conversion bureautique traitée différemment
RenderHTMLToPDF()RenderHtmlAsPdf()
Références d'interopérabilité COMSupprimer entièrement
Configuration du pilote d'imprimantePas nécessaire
BeginPrintToFile() rappelsAsync/await natif
Exigences relatives aux sessions interactivesFonctionne sans tête
indexation des pages basée sur 1indexation basée sur 0
Délai d'attente en secondesDélai d'attente en millisecondes

Processus de migration étape par étape

Étape 1 : Supprimez Easy PDF SDK

Le SDK Easy PDF est distribué sous forme d'un installateur MSI plutôt que d'un paquet NuGet, et les projets référencent généralement ses assemblages (tels que BCL.easyPDF.PDFConverter.dll pour le .NET Framework ou BCL.easyPDF.PDFConverter.NetCore.dll for .NET Core) directement. Supprimez toutes les références :

  1. Désinstaller BCL EasyPDF SDK à partir de Programmes et fonctionnalités
  2. Supprimez les entrées DLL <Reference> de votre .csproj
  3. Supprimer les références d'interopérabilité COM
  4. Nettoyer les entrées du GAC si elles sont présentes

Étape 2 : Installer IronPDF

# Install IronPDF
dotnet add package IronPdf
SHELL

Ou via la console du Package Manager :

PM > Install-Package IronPdf

Étape 3 : mise à jour des références aux espaces de noms

Remplacez les espaces de noms Easy PDF SDKpar IronPDF:

// Remove these
using BCL.easyPDF;
using BCL.easyPDF.PDFConverter;
using BCL.easyPDF.PDFProcessor;
using BCL.easyPDF.Printer;

// Add these
using IronPdf;
using IronPdf.Rendering;

Référence complète de migration des API

Mappage des classes de base

Classe Easy PDF SDKÉquivalent d'IronPDF
PrinterChromePdfRenderer
PDFDocumentPdfDocument
HTMLConverterChromePdfRenderer
PrinterConfigurationChromePdfRenderOptions
PageOrientationPdfPaperOrientation
PageSizePdfPaperSize
SecurityHandlerPdfDocument.SecuritySettings

Méthodes de création de PDF

Méthode Easy PDF SDKMéthode IronPDF
printer.RenderHTMLToPDF(html, path)renderer.RenderHtmlAsPdf(html).SaveAs(path)
printer.RenderUrlToPDF(url, path)renderer.RenderUrlAsPdf(url).SaveAs(path)
htmlConverter.ConvertHTML(html, doc)renderer.RenderHtmlAsPdf(html)
htmlConverter.ConvertURL(url, doc)renderer.RenderUrlAsPdf(url)

Méthodes de manipulation des fichiers PDF

Méthode Easy PDF SDKMéthode IronPDF
doc.Append(doc2)PdfDocument.Merge(pdf1, pdf2)
doc.ExtractPages(start, end)pdf.CopyPages(start, end)
doc.DeletePage(index)pdf.RemovePages(index)
doc.GetPageCount()pdf.PageCount
doc.Save(path)pdf.SaveAs(path)
doc.Close()pdf.Dispose() ou using
doc.ExtractText()pdf.ExtractAllText()

Options de configuration

Option SDK Easy PDFOption IronPDF
config.TimeOutRenderingOptions.Timeout
config.PageOrientation = LandscapeRenderingOptions.PaperOrientation = Landscape
config.PageSize = A4RenderingOptions.PaperSize = PdfPaperSize.A4
config.MarginTop/Bottom/Left/RightRenderingOptions.MarginTop, etc.

Exemples de migration de code

Chaîne HTML convertie en PDF

Mise en œuvre facile du SDK PDF:

// Reference BCL.easyPDF.PDFConverter.dll (or the .NetCore variant)
// installed by the easyPDF SDK MSI — there is no NuGet package.
using BCL.easyPDF;
using System;

class Program
{
    static void Main()
    {
        var pdf = new PDFDocument();
        var htmlConverter = new HTMLConverter();
        htmlConverter.ConvertHTML("<h1>Hello World</h1>", pdf);
        pdf.Save("output.pdf");
        pdf.Close();
    }
}

Mise en œuvre d'IronPDF:

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

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
        pdf.SaveAs("output.pdf");
    }
}

IronPDF intègre le rendu HTML dans un seul appel de rendu et permet à Dispose de gérer le nettoyage, éliminant l'étape HTMLConverter séparée et le modèle Close() manuel.

Conversion d'URL en PDF

Mise en œuvre facile du SDK PDF:

// Reference BCL.easyPDF.PDFConverter.dll (or the .NetCore variant)
// installed by the easyPDF SDK MSI — there is no NuGet package.
using BCL.easyPDF;
using System;

class Program
{
    static void Main()
    {
        var pdf = new PDFDocument();
        var htmlConverter = new HTMLConverter();
        htmlConverter.ConvertURL("https://example.com", pdf);
        pdf.Save("webpage.pdf");
        pdf.Close();
    }
}

Mise en œuvre d'IronPDF:

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

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("webpage.pdf");
    }
}

Fusionner plusieurs fichiers PDF

Mise en œuvre facile du SDK PDF:

// Reference BCL.easyPDF.PDFConverter.dll (or the .NetCore variant)
// installed by the easyPDF SDK MSI — there is no NuGet package.
using BCL.easyPDF;
using System;

class Program
{
    static void Main()
    {
        var pdf1 = new PDFDocument("document1.pdf");
        var pdf2 = new PDFDocument("document2.pdf");
        pdf1.Append(pdf2);
        pdf1.Save("merged.pdf");
        pdf1.Close();
        pdf2.Close();
    }
}

Mise en œuvre d'IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        var pdfs = new List<PdfDocument>
        {
            PdfDocument.FromFile("document1.pdf"),
            PdfDocument.FromFile("document2.pdf")
        };
        var merged = PdfDocument.Merge(pdfs);
        merged.SaveAs("merged.pdf");
    }
}

La méthode statique Merge d'IronPDF accepte directement une collection de documents, remplaçant le modèle Append par paire.

Protection par mot de passe

Mise en œuvre d'IronPDF:

using IronPdf;

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

// Set security
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserEdits = PdfEditSecurity.NoEdit;

pdf.SaveAs("protected.pdf");

En-têtes et pieds de page

Le SDK Easy PDF n'expose pas d'API de header/footer dédiées dans son chemin de conversion HTML ; les en-têtes et pieds de page sont généralement intégrés directement dans le HTML source.IronPDF fournit des objets de header/footer dédiés :

using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='text-align:center; font-size:12px; font-family:Arial;'>
            Company Name - Confidential
        </div>",
    DrawDividerLine = true,
    MaxHeight = 30
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='text-align:center; font-size:10px;'>
            Page {page} of {total-pages}
        </div>",
    DrawDividerLine = true,
    MaxHeight = 25
};

var pdf = renderer.RenderHtmlAsPdf("<h1>Content</h1>");
pdf.SaveAs("with_headers.pdf");

Pour plus d'options, consultez la documentation sur les en-têtes et les pieds de page.

Génération de PDFs asynchrone

Easy PDF SDK utilise des modèles asynchrones basés sur des rappels.IronPDF prend en charge les fonctions natives async/await :

Mise en œuvre facile du SDK PDF:

using BCL.easyPDF;

Printer printer = new Printer();

// BCL uses callback-based async
printer.BeginPrintToFile(
    "https://example.com",
    "output.pdf",
    OnPrintComplete,
    OnPrintError
);

Console.ReadLine();
printer.Dispose();

Mise en œuvre d'IronPDF:

using IronPdf;
using System.Threading.Tasks;

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

        // Native async/await
        var pdf = await renderer.RenderUrlAsPdfAsync("https://example.com");
        await pdf.SaveAsAsync("output.pdf");

        Console.WriteLine("PDF created: output.pdf");
    }
}

Notes de migration essentielles

Modification de l'index des pages

Easy PDF SDK utilise une indexation basée sur 1.IronPDF utilise une indexation basée sur 0 :

// Easy PDF SDK: 1-based
doc.ExtractPages(1, 5);

// IronPDF: 0-based
pdf.CopyPages(0, 4);

Temps d'attente en millisecondes

Easy PDF SDK utilise des secondes pour les valeurs de délai d'attente.IronPDF utilise des millisecondes :

// Easy PDF SDK: seconds
config.TimeOut = 120;

// IronPDF: milliseconds
renderer.RenderingOptions.Timeout = 120000;

Intégration d'ASP.NET Core

Easy PDF SDK a du mal à s'adapter aux contextes web en raison des exigences liées aux sessions interactives.

Modèle IronPDF:

[ApiController]
[Route("[controller]")]
public class PdfController : ControllerBase
{
    [HttpGet("generate")]
    public IActionResult GeneratePdf()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Report</h1>");

        return File(pdf.BinaryData, "application/pdf", "report.pdf");
    }

    [HttpGet("generate-async")]
    public async Task<IActionResult> GeneratePdfAsync()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Report</h1>");

        return File(pdf.BinaryData, "application/pdf", "report.pdf");
    }
}

Déploiement de Docker

Le SDK Easy PDF n'est pas conçu pour les conteneurs Linux — sa configuration prise en charge est Windows avec Microsoft Office, un pilote d'imprimante virtuelle, et (dans la plupart des configurations) une session interactive de bureau, ce qui rend les flux de travail typiques basés sur Docker sous Linux difficiles à réaliser.

Configuration IronPDF Docker :

FROM mcr.microsoft.com/dotnet/aspnet:8.0

# Install Chromium dependencies
RUN apt-get update && apt-get install -y \
    libc6 libgdiplus libx11-6 libxcomposite1 \
    libxdamage1 libxrandr2 libxss1 libxtst6 \
    libnss3 libatk-bridge2.0-0 libgtk-3-0 \
    libgbm1 libasound2 fonts-liberation \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "MyApp.dll"]
Text

Dépannage des problèmes de migration courants

Édition : Imprimante introuvable

Symptôme : Cannot find printer: BCL easyPDF Printer

**Solution:**IronPDF n'a pas besoin de pilotes d'imprimante :

// Just use the renderer directly
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);

Sujet : Erreurs d'interopérabilité COM

Symptom: DLL error loading or RCW errors

Solution: Supprimer toutes les références COM et utiliser l'API gérée d'IronPDF.

Problème : Délai d'attente sur le serveur

Symptôme: La génération de PDF se bloque sur le serveur web

**Solution:**IronPDF fonctionne sans tête, sans sessions interactives :

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.Timeout = 60000; // Reliable timeout
var pdf = renderer.RenderHtmlAsPdf(html);

Problème : L'arrière-plan ne s'imprime pas

Symptôme: Les arrière-plans CSS sont manquants

Solution: Activer l'impression en arrière-plan :

renderer.RenderingOptions.PrintHtmlBackgrounds = true;

Liste de contrôle post-migration

Après avoir effectué la migration du code, vérifiez les points suivants :

  • Vérifiez la qualité de sortie PDF avec le moteur Chromium d'IronPDF
  • Tester tous les cas limites avec du HTML/CSS complexe
  • Vérifier que le déploiement du serveur fonctionne sans sessions interactives
  • Test du déploiement Docker/conteneur
  • Supprimer le programme d'installation BCL EasyPDF du déploiement
  • Supprimer l'installation d'Office des serveurs (elle n'est plus nécessaire)
  • Mettre à jour les pipelines CI/CD avec le nouveau package NuGet

Ressources supplémentaires


La migration du SDK Easy PDF à IronPDF supprime le pilote d'imprimante virtuelle, l'interopérabilité COM, et les contraintes Windows uniquement du chemin de génération PDF. Le rendu basé sur Chromium offre un support moderne de CSS3 et JavaScript, et le même code source s'exécute sur Docker, Kubernetes et les environnements cloud basés sur Linux qui sont difficiles à cibler avec le modèle de déploiement pris en charge par le SDK easyPDF.

Veuillez noter: BCL easyPDF SDK, Easy PDF SDK, et Apryse sont des marques déposées de leurs propriétaires respectifs. Ce site n'est pas affilié à, approuvé par, ou parrainé par BCL Technologies ou Apryse. 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 et créer des manuels bien structurés et visuellement attrayants.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise