Passer au contenu du pied de page
GUIDES DE MIGRATION

Comment migrer de C# à IronPDF en C#

Migrer de pdforgeàIronPDF: Guide de migration complet en C

La migration de pdforgeversIronPDFfait passer votre flux de production de PDF d'une API basée sur le cloud qui traite les documents sur des serveurs externes à une bibliothèque .NET complète qui gère tout localement au sein de votre application. Ce guide fournit un chemin de migration complet, étape par étape, qui élimine les dépendances externes, supprime les coûts d'abonnement permanents et vous donne un contrôle total sur votre pipeline de traitement de documents.

Pourquoi migrer de pdforgeà IronPDF

Compréhension de pdforge

pdforge est une API de génération de PDF basée sur le cloud, qui offre un moyen simple de produire des fichiers PDF en s'intégrant à votre application par le biais d'appels API. En confiant la création de PDF à une API externe, les développeurs peuvent simplifier le processus de développement. Cependant, pdforgeprésente des inconvénients tels que des dépendances externes, des options de personnalisation limitées et des coûts d'abonnement permanents dont les développeurs doivent être conscients.

Le problème de la dépendance de l'API Cloud

pdforge traite tous les documents sur des serveurs cloud externes. Cette architecture pose des problèmes importants pour les applications de production :

  1. Traitement sur serveur externe : Chaque PDF que vous générez nécessite l'envoi de votre HTML/données aux serveurs de pdforge- vos documents quittent votre infrastructure.

  2. Risques liés à la confidentialité et à la conformité : Les données sensibles transitent par l'internet vers des serveurs tiers. Lorsqu'ils utilisent pdforge, les développeurs doivent tenir compte des problèmes de sécurité liés à l'envoi de données à une API externe. Si le contenu du PDF contient des informations sensibles, cela peut constituer un facteur critique.

  3. Coût de l'abonnement permanent : Les frais mensuels s'accumulent indéfiniment sans aucune propriété d'actifs. Le modèle SaaS de pdforgeintroduit des dépenses opérationnelles continues qui peuvent s'accumuler au fil du temps.

  4. Dépendance vis-à-vis d'Internet : Pas de génération de PDF lorsque le réseau n'est pas disponible.

  5. Limites de taux : Les plafonds d'utilisation de l'API peuvent freiner les applications à fort volume.

  6. Latitude du réseau : Le temps d'aller-retour ajoute des secondes à chaque génération de PDF.

Comparaison entre Pdforge et IronPDF

Fonction pdforge IronPDF
Type de déploiement API basée sur le cloud Bibliothèque locale
Dépendances Nécessite une authentification Internet et API Aucune dépendance externe
Personnalisation Contrôle limité sur la génération de PDF Contrôle total de la personnalisation
Structure des coûts Abonnement en cours Option d'achat unique
Sécurité Problèmes potentiels liés aux données envoyées sur le web Le traitement des données se fait entièrement dans l'environnement local
Complexité de l'installation Installation initiale plus facile grâce à la manipulation externe Nécessite plus d'installation et de configuration initiales

IronPDF se différencie en fournissant une bibliothèque entièrement locale, accordant aux développeurs un contrôle total sur le processus de création de PDF. Ceci est particulièrement avantageux pour les applications où le traitement interne des fichiers est préféré, ou lorsque les appels d'API externes posent des problèmes de sécurité.IronPDFtraite tout localement, ce qui minimise ces risques.

Pour les équipes qui prévoient l'adoption de .NET 10 et C# 14 d'ici 2025 et 2026,IronPDFconstitue une base de traitement local qui élimine la dépendance au cloud tout en ajoutant des fonctionnalités complètes de manipulation des PDF.


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 pdforgepackages
dotnet remove package pdforge
dotnet remove package PdfForge

# Install IronPDF
dotnet add package IronPdf
# Remove pdforgepackages
dotnet remove package pdforge
dotnet remove package PdfForge

# Install IronPDF
dotnet add package IronPdf
SHELL

Configuration de la licence

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

Identifier l'utilisation de pdforge

# Find pdforgeusage
grep -r "PdForge\|PdfClient\|HtmlToPdfRequest\|HtmlToPdfConverter" --include="*.cs" .

# Find placeholder patterns to migrate
grep -r "{totalPages}" --include="*.cs" .
# Find pdforgeusage
grep -r "PdForge\|PdfClient\|HtmlToPdfRequest\|HtmlToPdfConverter" --include="*.cs" .

# Find placeholder patterns to migrate
grep -r "{totalPages}" --include="*.cs" .
SHELL

Référence API complète

Modifications de l'espace de nommage

// Before: pdforge
using PdfForge;
using System.IO;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
// Before: pdforge
using PdfForge;
using System.IO;

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

Mappages de classes de base

pdforge IronPDF Notes
HtmlToPdfConverter ChromePdfRenderer Générateur principal de PDF
PdfClient ChromePdfRenderer Équivalent du client API
PageSize.A4 PdfPaperSize.A4 Énumération de la taille du papier
PageOrientation.Landscape PdfPaperOrientation.Landscape Énumération des orientations
Type de retour : byte[] Document PDF Objet du résultat

Mise en correspondance des méthodes

pdforge IronPDF Notes
converter.ConvertHtmlString(html) renderer.RenderHtmlAsPdf(html) Chaîne HTML vers PDF
converter.ConvertUrl(url) renderer.RenderUrlAsPdf(url) URL vers PDF
File.WriteAllBytes(path, bytes) pdf.SaveAs(path) Sauvegarder sur disque
Type de retour : byte[] pdf.BinaryData Obtenir des octets bruts

Mappages de configuration

pdforge IronPDF(RenderingOptions) Notes
converter.PageSize = PageSize.A4 renderer.RenderingOptions.PaperSize = PdfPaperSize.A4 Taille du papier
converter.Orientation = PageOrientation.Landscape renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape Orientation
Footer = "Page {page} de {totalPages}" TextFooter = new TextHeaderFooter { CenterText = "Page {page} de {total-pages}" } Pied de page (noter le changement d'espace réservé)

Nouvelles fonctionnalités non disponibles dans pdforge

Fonctionnalité d'IronPDF Description du projet
PdfDocument.Merge() Combiner plusieurs PDF
pdf.ExtractAllText() Extraction de texte à partir de PDF
pdf.ApplyWatermark() Ajouter des filigranes
pdf.SecuritySettings Protection par mot de passe
pdf.Form Remplissage de formulaires
pdf.SignWithDigitalSignature() Signatures numériques

Exemples de migration de code

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

Avant (pdforge):

// NuGet: Install-Package PdfForge
using PdfForge;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = converter.ConvertHtmlString(html);
        File.WriteAllBytes("output.pdf", pdf);
    }
}
// NuGet: Install-Package PdfForge
using PdfForge;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = converter.ConvertHtmlString(html);
        File.WriteAllBytes("output.pdf", 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 html = "<html><body><h1>Hello World</h1></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();
        var 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

La différence fondamentale réside dans le modèle de traitement et le type de retour. pdforgeutilise HtmlToPdfConverteravec ConvertHtmlString() qui renvoie un tableau byte[] - vous devez ensuite utiliser File.WriteAllBytes() pour enregistrer le résultat.

IronPDF utilise ChromePdfRendereravec RenderHtmlAsPdf() qui renvoie un objet PdfDocument. Cet objet peut être enregistré directement avec SaveAs(), ou vous pouvez accéder à pdf.BinaryDatasi vous avez besoin des octets bruts. Le Document PDFpermet également la manipulation (ajout de filigranes, fusion avec d'autres PDF, ajout de sécurité) avant l'enregistrement. Consultez la documentation HTML vers PDF pour des exemples complets.

Exemple 2 : Conversion d'une URL en PDF

Avant (pdforge):

// NuGet: Install-Package PdfForge
using PdfForge;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var pdf = converter.ConvertUrl("https://example.com");
        File.WriteAllBytes("webpage.pdf", pdf);
    }
}
// NuGet: Install-Package PdfForge
using PdfForge;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var pdf = converter.ConvertUrl("https://example.com");
        File.WriteAllBytes("webpage.pdf", 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://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://example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

pdforge utilise ConvertUrl() sur la classe HtmlToPdfConverter, renvoyant les octets que vous écrivez avec File.WriteAllBytes().IronPDFutilise RenderUrlAsPdf() sur ChromePdfRenderer, renvoyant un Document PDFavec la méthode intégrée SaveAs().

Le principal avantage d'IronPDF est que l'URL est récupérée et rendue localement à l'aide d'un moteur Chromium - aucune donnée n'est envoyée à des serveurs externes. IronPDF, étant une bibliothèque locale, peut offrir de meilleures performances car il n'y a pas de temps d'aller-retour impliqué dans les requêtes web. En savoir plus sur la conversion d'URL en PDF.

Exemple 3 : Fichier HTML vers PDF avec des paramètres personnalisés

Avant (pdforge):

// NuGet: Install-Package PdfForge
using PdfForge;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        converter.PageSize = PageSize.A4;
        converter.Orientation = PageOrientation.Landscape;
        var htmlContent = File.ReadAllText("input.html");
        var pdf = converter.ConvertHtmlString(htmlContent);
        File.WriteAllBytes("output.pdf", pdf);
    }
}
// NuGet: Install-Package PdfForge
using PdfForge;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        converter.PageSize = PageSize.A4;
        converter.Orientation = PageOrientation.Landscape;
        var htmlContent = File.ReadAllText("input.html");
        var pdf = converter.ConvertHtmlString(htmlContent);
        File.WriteAllBytes("output.pdf", 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.PaperOrientation = PdfPaperOrientation.Landscape;
        var htmlContent = System.IO.File.ReadAllText("input.html");
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.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.PaperOrientation = PdfPaperOrientation.Landscape;
        var htmlContent = System.IO.File.ReadAllText("input.html");
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cet exemple illustre la différence entre les modèles de configuration. pdforgedéfinit des propriétés directement sur l'objet convertisseur (converter.PageSize = PageSize.A4, converter.Orientation = PageOrientation.Landscape).

IronPDF utilise la propriété RenderingOptions avec des enums fortement typés : renderer.RenderingOptions.PaperSize = PdfPaperSize.A4et renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape. Ces outils offrent une prise en charge IntelliSense et une sécurité de type au moment de la compilation. Notez qu'IronPDF nécessite l'importation de l'espace de noms IronPdf.Rendering pour les enums de taille de papier et d'orientation. Voir les tutoriels pour plus d'exemples de configuration.


Notesde migration essentielles

Changement de type de retour

pdforge renvoie byte[] ;IronPDFrenvoie Document PDF:

// pdforge: Returns byte[]
byte[] pdfBytes = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdfBytes);

// IronPDF: Returns PdfDocument
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");           // Direct save
byte[] bytes = pdf.BinaryData;      // Get bytes if needed
// pdforge: Returns byte[]
byte[] pdfBytes = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdfBytes);

// IronPDF: Returns PdfDocument
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");           // Direct save
byte[] bytes = pdf.BinaryData;      // Get bytes if needed
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Changement de classe de convertisseur

// pdforge: HtmlToPdfConverter
var converter = new HtmlToPdfConverter();

// IronPDF: ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// pdforge: HtmlToPdfConverter
var converter = new HtmlToPdfConverter();

// IronPDF: ChromePdfRenderer
var renderer = new ChromePdfRenderer();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Modification des noms de méthode

// pdforgemethods
converter.ConvertHtmlString(html)
converter.ConvertUrl(url)

//IronPDFmethods
renderer.RenderHtmlAsPdf(html)
renderer.RenderUrlAsPdf(url)
// pdforgemethods
converter.ConvertHtmlString(html)
converter.ConvertUrl(url)

//IronPDFmethods
renderer.RenderHtmlAsPdf(html)
renderer.RenderUrlAsPdf(url)
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Enregistrer le changement de méthode

// pdforge: Manual file write
File.WriteAllBytes("output.pdf", pdfBytes);

// IronPDF: Built-in save method
pdf.SaveAs("output.pdf");
// pdforge: Manual file write
File.WriteAllBytes("output.pdf", pdfBytes);

// IronPDF: Built-in save method
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Modification de l'emplacement de la configuration

pdforge utilise les propriétés du convertisseur ;IronPDFutilise RenderingOptions :

// pdforge: Properties on converter
converter.PageSize = PageSize.A4;
converter.Orientation = PageOrientation.Landscape;

// IronPDF: Properties on RenderingOptions
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
// pdforge: Properties on converter
converter.PageSize = PageSize.A4;
converter.Orientation = PageOrientation.Landscape;

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

Syntaxe de l'en-tête et du pied de page

Si vous utilisez des numéros de page dans les en-têtes ou les pieds de page, la syntaxe des espaces réservés est différente :

// pdforgeplaceholders
"Page {page} of {totalPages}"

//IronPDFplaceholders
"Page {page} of {total-pages}"  // Note: hyphen in total-pages
// pdforgeplaceholders
"Page {page} of {totalPages}"

//IronPDFplaceholders
"Page {page} of {total-pages}"  // Note: hyphen in total-pages
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nouvelles capacités après la migration

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

Fusion de fichiers PDF

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

Extraction de texte

var pdf = PdfDocument.FromFile("document.pdf");
string allText = pdf.ExtractAllText();
var pdf = PdfDocument.FromFile("document.pdf");
string allText = pdf.ExtractAllText();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Marques de fond

pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Protection par mot de passe

pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Résumé de la comparaison des fonctionnalités

Fonction pdforge IronPDF
HTML vers PDF
URL vers PDF
Paramètres de la page
Capacité hors ligne
Traitement local
Fusionner des PDF
Diviser les PDF
Extraire le texte
Filigranes
Remplissage de formulaires
Signatures numériques
Protection par mot de passe
Pas de limite de tarif
Licence unique

Liste de contrôle de la migration

Pré-migration

  • [Inventaire de tous les appels API de pdforgedans la base de code
  • [Documenter les options de configuration actuelles utilisées (taille de page, orientation)
  • [Identifier les caractères d'en-tête/de pied de page à mettre à jour ({totalPages}{total-pages})
  • [Planifier le stockage des clés de licenceIronPDF(variables d'environnement recommandées)
  • [Testez d'abord avec la licence d'essai d'IronPDF

Modifications du paquet

  • supprimer le package NuGet pdforge [ ]
  • supprimer le package NuGet PdfForge [ ]
  • [Installer le package NuGet IronPdf : dotnet add package IronPdf

Modifications du code

  • [Mise à jour de toutes les importations d'espaces de noms (utilisant PdfForge;utilisant IronPdf;)
  • [Ajouter utilisant IronPdf.Rendering; pour les enums de taille et d'orientation du papier
  • [Remplacer HtmlToPdfConverterpar ChromePdfRenderer
  • [Remplacer ConvertHtmlString() par RenderHtmlAsPdf()
  • [Remplacer ConvertUrl() par RenderUrlAsPdf()
  • [Remplacer File.WriteAllBytes() par pdf.SaveAs()
  • [Déplacer la propriété PageSize vers RenderingOptions.PaperSize
  • [Déplacer la propriété Orientation vers RenderingOptions.PaperOrientation
  • [Mise à jour des noms d'énumération (PageSize.A4PdfPaperSize.A4)
  • [Mise à jour des noms d'énumération (PageOrientation.LandscapePdfPaperOrientation.Landscape)
  • [Mise à jour de la syntaxe des espaces réservés dans les en-têtes/pieds de page

Post-Migration

  • [Tester la qualité de la sortie PDF en fonction des attentes
  • [Vérifier que l'opération hors ligne fonctionne
  • [ ] Supprimer les informations d'identification de l'API de la configuration
  • [Ajouter de nouvelles fonctionnalités (fusion, filigrane, sécurité) selon les besoins

Conclusion

La migration de pdforgeversIronPDFtransforme votre flux de travail PDF d'un service API dépendant du cloud à une bibliothèque PDF traitée localement et dotée de toutes les fonctionnalités. La migration élimine les coûts d'abonnement, supprime la dépendance à l'égard d'Internet et garantit la confidentialité des données en conservant l'ensemble du traitement des documents sur vos serveurs.

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

  1. Classe principale : HtmlToPdfConverterChromePdfRenderer
  2. Méthode HTML : ConvertHtmlString()RenderHtmlAsPdf()
  3. Méthode URL : ConvertUrl()RenderUrlAsPdf()
  4. Type de retour : byte[]PdfDocument
  5. Méthode d'enregistrement : File.WriteAllBytes()pdf.SaveAs()
  6. Taille de la page : converter.PageSize = PageSize.A4renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
  7. Orientation : converter.Orientation = PageOrientation.Landscaperenderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
  8. Nouvelles fonctionnalités : Fusion de PDF, extraction de texte, filigranes, signatures numériques, etc

Le choix entre pdforgeetIronPDFdépend en grande partie des exigences spécifiques du projet, notamment en termes de besoins de personnalisation, de budget et de considérations de sécurité.IronPDFoffre une suite d'outils plus complète avec de solides avantages en matière de sécurité pour les développeurs capables de gérer des déploiements locaux. En traitant localement,IronPDFcontourne les problèmes de confidentialité associés aux modèles basés sur le cloud et offre une solution plus rentable et plus évolutive aux développeurs d'applications.

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

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