Comment migrer de Gnostice PDFOne vers IronPDF en C#
La migration de Gnostice PDFOneversIronPDFtransforme votre flux de travail PDF .NET d'une approche basée sur la coordination et fragmentée par plate-forme à une solution unifiée, alimentée par HTML/CSS, avec une prise en charge complète des normes Web modernes. Ce guide fournit un chemin de migration complet, étape par étape, qui élimine les limitations documentées autour de CSS, JavaScript et la stabilité de la mémoire pour les développeurs professionnels .NET.
Pourquoi migrer de Gnostice PDFOnevers IronPDF
Les défis PDFOne de Gnostice
Gnostice PDFOne et Document Studio .NET ont des limitations bien documentées qui affectent les applications de production :
-
Absence de prise en charge CSS externe : la documentation de Gnostice PDFOneindique explicitement qu'il ne prend pas en charge les feuilles de style CSS externes, une exigence fondamentale pour la conversion moderne du Web vers le PDF.
-
Absence d'exécution JavaScript : le contenu dynamique nécessitant JavaScript ne peut pas être rendu, ce qui rend impossible la conversion précise des applications Web modernes.
-
Pas de conversion directe HTML vers PDF : Gnostice PDFOnene propose pas de conversion directe HTML vers PDF. Vous devez utiliser Document Studio pour la conversion HTML ou analyser et rendre manuellement les éléments HTML, ce qui représente un coût de développement important.
-
Fragmentation de la plateforme : Des produits distincts pour WinForms, WPF, ASP.NET et Xamarin, chacun avec ses propres fonctionnalités et API. Plusieurs licences et bases de code peuvent être nécessaires.
-
Fuites de mémoire et stabilité : Les forums d'utilisateurs et Stack Overflow signalent des fuites de mémoire persistantes, l'erreur JPEG n° 53 et des exceptions StackOverflow lors du traitement des images.
-
Absence d'Unicode de droite à gauche : l'arabe, l'hébreu et les autres langues RTL ne sont pas pris en charge, ce qui constitue un obstacle majeur pour les applications internationales.
-
Prise en charge limitée des signatures numériques : les signatures numériques ont toujours été absentes ou peu fiables dans Gnostice PDFOne.
- API basée sur les coordonnées : De nombreuses opérations nécessitent un positionnement manuel X/Y plutôt que des approches de mise en page modernes, ce qui exige des calculs précis pour le placement de chaque élément.
Comparaison entre Gnostice PDFOneet IronPDF
| Aspect | Gnostice PDFOne | IronPDF |
|---|---|---|
| CSS externe | Non pris en charge | Prise en charge |
| Exécution JavaScript | Non pris en charge | Moteur Chromium complet |
| Langues RTL | Non pris en charge | Prise en charge complète de l'Unicode |
| Signatures numériques | Limité/manquant | Prise en charge complète de X509 |
| Plateforme | Produits fragmentés | Bibliothèque unique et unifiée |
| Stabilité de la mémoire | Problèmes signalés | Stable, bien géré |
| HTML vers PDF | Basique, nécessite des solutions de contournement | Rendu de qualité Chrome |
| Courbe d'apprentissage | API complexe | API simple et intuitive |
| CSS modernes (Flexbox, Grid) | Non pris en charge | Prise en charge complète de CSS3 |
| Traitement des images | Problèmes connus | Fiable |
Pour les équipes qui prévoient l'adoption de .NET 10 et C# 14 jusqu'en 2025 et 2026,IronPDFconstitue une base à l'épreuve du temps avec une bibliothèque unifiée qui fonctionne de manière cohérente sur toutes les plateformes .NET.
Évaluation de la complexité de la migration
Estimation de l'effort par fonctionnalité
| Fonction | Complexité de la migration |
|---|---|
| Charger/Enregistrer des PDF | Très faible |
| Fusionner des PDF | Très faible |
| Diviser les PDF | Faible |
| Extraction de texte | Faible |
| Filigranes | Faible |
| En-têtes/Pieds de page | Faible |
| HTML vers PDF | Faible |
| Chiffrement | Moyen |
| Champs de formulaire | Moyen |
| Signatures numériques | Faible |
Fonctionnalités que vous gagnez
Lors de la migration de Gnostice PDFOnevers IronPDF, ces fonctionnalités jusqu'alors impossibles deviennent disponibles :
- Feuilles de style CSS externes
- Exécution JavaScript
- Prise en charge des langues RTL (arabe, hébreu)
- Grille CSS et Flexbox
- Signatures numériques fiables
- Meilleure gestion de la mémoire
- Prise en charge multiplateforme avec une base de code unique
Avant de commencer
Prérequis
- Version .NET :IronPDFprend en charge .NET Framework 4.6.2+ et .NET Core 2.0+ / .NET 5/6/7/8/9+.
- Clé de licence : Obtenez votre clé de licenceIronPDFsur IronPDF
- Sauvegarde : Créer une branche pour les travaux de migration
Identifier toutes les utilisations de Gnostice PDFOne
# Find all Gnostice references
grep -r "Gnostice\|PDFOne\|PDFDocument\|PDFPage\|DocExporter" --include="*.cs" .
# Find package references
grep -r "Gnostice\|PDFOne" --include="*.csproj" .
# Find all Gnostice references
grep -r "Gnostice\|PDFOne\|PDFDocument\|PDFPage\|DocExporter" --include="*.cs" .
# Find package references
grep -r "Gnostice\|PDFOne" --include="*.csproj" .
Modifications du paquet NuGet
# Remove Gnostice PDFOnepackages
dotnet remove package PDFOne.NET
dotnet remove package Gnostice.DocumentStudio.NET
dotnet remove package Gnostice.PDFOne.NET
dotnet remove package Gnostice.XtremeDocumentStudio.NET
# Install IronPDF
dotnet add package IronPdf
# Remove Gnostice PDFOnepackages
dotnet remove package PDFOne.NET
dotnet remove package Gnostice.DocumentStudio.NET
dotnet remove package Gnostice.PDFOne.NET
dotnet remove package Gnostice.XtremeDocumentStudio.NET
# Install IronPDF
dotnet add package IronPdf
Migration rapide
Étape 1 : Mise à jour de la configuration de la licence
Avant (Gnostice PDFOne):
// Gnostice license often set via config or property
PDFOne.License.LicenseKey = "YOUR-GNOSTICE-LICENSE";
// Gnostice license often set via config or property
PDFOne.License.LicenseKey = "YOUR-GNOSTICE-LICENSE";
' Gnostice license often set via config or property
PDFOne.License.LicenseKey = "YOUR-GNOSTICE-LICENSE"
Après (IronPDF):
// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
// Or in appsettings.json:
// { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }
// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
// Or in appsettings.json:
// { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }
' Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY"
' Or in appsettings.json:
' { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }
Étape 2 : mise à jour des importations de l'espace de noms
// Before (Gnostice PDFOne)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Document;
using Gnostice.PDFOne.Graphics;
// After (IronPDF)
using IronPdf;
using IronPdf.Editing;
// Before (Gnostice PDFOne)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Document;
using Gnostice.PDFOne.Graphics;
// After (IronPDF)
using IronPdf;
using IronPdf.Editing;
Imports IronPdf
Imports IronPdf.Editing
Référence API complète
Mappage des classes de base
| Gnostice PDFOne | IronPDF | Description du projet |
|---|---|---|
PDFDocument |
PdfDocument |
Classe du document PDF principal |
PDFPage |
PdfDocument.Pages[i] |
Représentation des pages |
PDFFont |
Style CSS | Spécification des polices de caractères |
PDFTextElement |
Contenu HTML | Contenu du texte |
PDFImageElement |
HTML <img> balises |
Contenu de l'image |
DocExporter |
ChromePdfRenderer |
Conversion HTML/URL en PDF |
Opérations documentaires
| Gnostice PDFOne | IronPDF |
|---|---|
new PDFDocument() |
new PdfDocument() |
doc.Load(path) |
PdfDocument.FromFile(path) |
doc.Open() |
N/A (automatique) |
doc.Save(path) |
pdf.SaveAs(path) |
doc.Close() |
pdf.Dispose() |
doc.Pages.Count |
pdf.PageCount |
doc.Pages.Add() |
Rendre HTML ou fusionner |
Opérations de fusion
| Gnostice PDFOne | IronPDF |
|---|---|
doc.Append(otherDoc) |
PdfDocument.Merge(pdf1, pdf2) |
Plusieurs appels Append() |
PdfDocument.Merge(list) |
Exemples de migration de code
Exemple 1 : Conversion HTML vers PDF
Avant (Gnostice PDFOne):
// NuGet: Install-Package Gnostice.PDFOne.DLL
using Gnostice.PDFOne;
using Gnostice.PDFOne.Graphics;
using System;
class Program
{
static void Main()
{
PDFDocument doc = new PDFDocument();
doc.Open();
PDFPage page = doc.Pages.Add();
// PDFOne doesn't have direct HTML to PDF conversion
// You need to use Document Studio for HTML conversion
// Or manually parse and render HTML elements
PDFTextElement textElement = new PDFTextElement();
textElement.Text = "Simple text conversion instead of HTML";
textElement.Draw(page, 10, 10);
doc.Save("output.pdf");
doc.Close();
}
}
// NuGet: Install-Package Gnostice.PDFOne.DLL
using Gnostice.PDFOne;
using Gnostice.PDFOne.Graphics;
using System;
class Program
{
static void Main()
{
PDFDocument doc = new PDFDocument();
doc.Open();
PDFPage page = doc.Pages.Add();
// PDFOne doesn't have direct HTML to PDF conversion
// You need to use Document Studio for HTML conversion
// Or manually parse and render HTML elements
PDFTextElement textElement = new PDFTextElement();
textElement.Text = "Simple text conversion instead of HTML";
textElement.Draw(page, 10, 10);
doc.Save("output.pdf");
doc.Close();
}
}
Imports Gnostice.PDFOne
Imports Gnostice.PDFOne.Graphics
Imports System
Class Program
Shared Sub Main()
Dim doc As New PDFDocument()
doc.Open()
Dim page As PDFPage = doc.Pages.Add()
' PDFOne doesn't have direct HTML to PDF conversion
' You need to use Document Studio for HTML conversion
' Or manually parse and render HTML elements
Dim textElement As New PDFTextElement()
textElement.Text = "Simple text conversion instead of HTML"
textElement.Draw(page, 10, 10)
doc.Save("output.pdf")
doc.Close()
End Sub
End Class
Après (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<h1>Hello World</h1><p>This is HTML content.</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<h1>Hello World</h1><p>This is HTML content.</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim html As String = "<h1>Hello World</h1><p>This is HTML content.</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
La différence est de taille : Gnostice PDFOnene peut pas convertir directement HTML en PDF. Vous devez créer manuellement des éléments de texte et les positionner à l'aide de coordonnées. IronPDF's ChromePdfRenderer fournit un rendu HTML direct avec une prise en charge complète de CSS3 et JavaScript . Voir la documentation HTML vers PDF pour plus d'options de rendu.
Exemple 2 : Fusionner des fichiers PDF
Avant (Gnostice PDFOne):
// NuGet: Install-Package Gnostice.PDFOne.DLL
using Gnostice.PDFOne;
using Gnostice.PDFOne.Document;
using System;
class Program
{
static void Main()
{
PDFDocument doc1 = new PDFDocument();
doc1.Load("document1.pdf");
PDFDocument doc2 = new PDFDocument();
doc2.Load("document2.pdf");
PDFDocument mergedDoc = new PDFDocument();
mergedDoc.Open();
mergedDoc.Append(doc1);
mergedDoc.Append(doc2);
mergedDoc.Save("merged.pdf");
doc1.Close();
doc2.Close();
mergedDoc.Close();
}
}
// NuGet: Install-Package Gnostice.PDFOne.DLL
using Gnostice.PDFOne;
using Gnostice.PDFOne.Document;
using System;
class Program
{
static void Main()
{
PDFDocument doc1 = new PDFDocument();
doc1.Load("document1.pdf");
PDFDocument doc2 = new PDFDocument();
doc2.Load("document2.pdf");
PDFDocument mergedDoc = new PDFDocument();
mergedDoc.Open();
mergedDoc.Append(doc1);
mergedDoc.Append(doc2);
mergedDoc.Save("merged.pdf");
doc1.Close();
doc2.Close();
mergedDoc.Close();
}
}
Imports Gnostice.PDFOne
Imports Gnostice.PDFOne.Document
Imports System
Module Program
Sub Main()
Dim doc1 As New PDFDocument()
doc1.Load("document1.pdf")
Dim doc2 As New PDFDocument()
doc2.Load("document2.pdf")
Dim mergedDoc As New PDFDocument()
mergedDoc.Open()
mergedDoc.Append(doc1)
mergedDoc.Append(doc2)
mergedDoc.Save("merged.pdf")
doc1.Close()
doc2.Close()
mergedDoc.Close()
End Sub
End Module
Après (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}
Imports IronPdf
Imports System
Imports System.Collections.Generic
Module Program
Sub Main()
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
End Sub
End Module
L'approche PDFOne de Gnostice nécessite la création d'un nouveau document, son ouverture, le chargement séparé des documents sources, l'ajout de chacun d'entre eux et la fermeture manuelle des trois documents. La méthode statique Merge d'IronPDF gère cela en trois lignes avec une gestion appropriée des ressources. En savoir plus sur la fusion et la division de PDF.
Exemple 3 : Ajouter un filigrane au PDF
Avant (Gnostice PDFOne):
// NuGet: Install-Package Gnostice.PDFOne.DLL
using Gnostice.PDFOne;
using Gnostice.PDFOne.Graphics;
using System;
using System.Drawing;
class Program
{
static void Main()
{
PDFDocument doc = new PDFDocument();
doc.Load("input.pdf");
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 48);
foreach (PDFPage page in doc.Pages)
{
PDFTextElement watermark = new PDFTextElement();
watermark.Text = "CONFIDENTIAL";
watermark.Font = font;
watermark.Color = Color.FromArgb(128, 255, 0, 0);
watermark.RotationAngle = 45;
watermark.Draw(page, 200, 400);
}
doc.Save("watermarked.pdf");
doc.Close();
}
}
// NuGet: Install-Package Gnostice.PDFOne.DLL
using Gnostice.PDFOne;
using Gnostice.PDFOne.Graphics;
using System;
using System.Drawing;
class Program
{
static void Main()
{
PDFDocument doc = new PDFDocument();
doc.Load("input.pdf");
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 48);
foreach (PDFPage page in doc.Pages)
{
PDFTextElement watermark = new PDFTextElement();
watermark.Text = "CONFIDENTIAL";
watermark.Font = font;
watermark.Color = Color.FromArgb(128, 255, 0, 0);
watermark.RotationAngle = 45;
watermark.Draw(page, 200, 400);
}
doc.Save("watermarked.pdf");
doc.Close();
}
}
Imports Gnostice.PDFOne
Imports Gnostice.PDFOne.Graphics
Imports System
Imports System.Drawing
Module Program
Sub Main()
Dim doc As New PDFDocument()
doc.Load("input.pdf")
Dim font As New PDFFont(PDFStandardFont.Helvetica, 48)
For Each page As PDFPage In doc.Pages
Dim watermark As New PDFTextElement()
watermark.Text = "CONFIDENTIAL"
watermark.Font = font
watermark.Color = Color.FromArgb(128, 255, 0, 0)
watermark.RotationAngle = 45
watermark.Draw(page, 200, 400)
Next
doc.Save("watermarked.pdf")
doc.Close()
End Sub
End Module
Après (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
var watermark = new TextStamper()
{
Text = "CONFIDENTIAL",
FontSize = 48,
Opacity = 50,
Rotation = 45,
VerticalAlignment = VerticalAlignment.Middle,
HorizontalAlignment = HorizontalAlignment.Center
};
pdf.ApplyStamp(watermark);
pdf.SaveAs("watermarked.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
var watermark = new TextStamper()
{
Text = "CONFIDENTIAL",
FontSize = 48,
Opacity = 50,
Rotation = 45,
VerticalAlignment = VerticalAlignment.Middle,
HorizontalAlignment = HorizontalAlignment.Center
};
pdf.ApplyStamp(watermark);
pdf.SaveAs("watermarked.pdf");
}
}
Imports IronPdf
Imports IronPdf.Editing
Imports System
Module Program
Sub Main()
Dim pdf = PdfDocument.FromFile("input.pdf")
Dim watermark = New TextStamper() With {
.Text = "CONFIDENTIAL",
.FontSize = 48,
.Opacity = 50,
.Rotation = 45,
.VerticalAlignment = VerticalAlignment.Middle,
.HorizontalAlignment = HorizontalAlignment.Center
}
pdf.ApplyStamp(watermark)
pdf.SaveAs("watermarked.pdf")
End Sub
End Module
L'approche Gnostice PDFOnenécessite la création d'objets PDFFont, l'itération manuelle à travers les pages, le calcul des coordonnées (200, 400) et la définition des propriétés sur les objets PDFTextElement. IronPDF's TextStamper fournit une configuration déclarative avec centrage automatique et application de page - aucun calcul de coordonnées nécessaire. Consultez la documentation sur le tatouage numérique pour connaître les options supplémentaires.
Notes de migration essentielles
Mise en page basée sur les coordonnées vers HTML/CSS
Le changement de paradigme le plus important dans cette migration Gnostice PDFOneest le passage d'un positionnement basé sur les coordonnées à une mise en page HTML/CSS :
// Gnostice PDFOne: Manual coordinate positioning
watermark.Draw(page, 200, 400); // X=200, Y=400
// IronPDF: Declarative alignment
watermark.VerticalAlignment = VerticalAlignment.Middle;
watermark.HorizontalAlignment = HorizontalAlignment.Center;
// Gnostice PDFOne: Manual coordinate positioning
watermark.Draw(page, 200, 400); // X=200, Y=400
// IronPDF: Declarative alignment
watermark.VerticalAlignment = VerticalAlignment.Middle;
watermark.HorizontalAlignment = HorizontalAlignment.Center;
' Gnostice PDFOne: Manual coordinate positioning
watermark.Draw(page, 200, 400) ' X=200, Y=400
' IronPDF: Declarative alignment
watermark.VerticalAlignment = VerticalAlignment.Middle
watermark.HorizontalAlignment = HorizontalAlignment.Center
Les objets de police à la stylisation CSS
// Gnostice PDFOne
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 48);
watermark.Font = font;
//IronPDF- use CSS in HTML content
var html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 48pt;'>Text</span>";
// Gnostice PDFOne
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 48);
watermark.Font = font;
//IronPDF- use CSS in HTML content
var html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 48pt;'>Text</span>";
Imports Gnostice.PDFOne
' Gnostice PDFOne
Dim font As New PDFFont(PDFStandardFont.Helvetica, 48)
watermark.Font = font
' IronPDF- use CSS in HTML content
Dim html As String = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 48pt;'>Text</span>"
Indexation des pages
Gnostice PDFOne utilise souvent des pages indexées à 1, tandis qu'IronPDF utilise des pages indexées à 0 (convention .NET standard) :
// Gnostice PDFOne: May use 1-indexed
var page = doc.Pages[1]; // First page
// IronPDF: 0-indexed
var page = pdf.Pages[0]; // First page
// Gnostice PDFOne: May use 1-indexed
var page = doc.Pages[1]; // First page
// IronPDF: 0-indexed
var page = pdf.Pages[0]; // First page
' Gnostice PDFOne: May use 1-indexed
Dim page = doc.Pages(1) ' First page
' IronPDF: 0-indexed
Dim page = pdf.Pages(0) ' First page
Caractéristiques qui fonctionnent maintenant
Après avoir migré de Gnostice PDFOnevers IronPDF, ces fonctionnalités auparavant problématiques ou impossibles deviennent disponibles :
- CSS externe : les feuilles de style qui ne fonctionnaient pas dans Gnostice PDFOnes'affichent désormais correctement.
- Contenu JavaScript : Le contenu dynamique qui manquait auparavant apparaît désormais.
- Langues RTL : l'arabe, l'hébreu et les autres langues s'écrivant de droite à gauche fonctionnent correctement.
- CSS Grid et Flexbox : les techniques de mise en page modernes sont entièrement prises en charge.
- Signatures numériques : Signature de certificats X509 fiable
Dépannage
Édition 1 : PDFTextElement introuvable
Problème : PDFTextElement n'existe pas dans IronPDF.
Solution : Utilisez du contenu HTML ou TextStamper :
// For new documents - render HTML
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<p>Your text here</p>");
// For existing documents - use stampers
var stamper = new TextStamper() { Text = "Added Text" };
pdf.ApplyStamp(stamper);
// For new documents - render HTML
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<p>Your text here</p>");
// For existing documents - use stampers
var stamper = new TextStamper() { Text = "Added Text" };
pdf.ApplyStamp(stamper);
Imports IronPdf
' For new documents - render HTML
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<p>Your text here</p>")
' For existing documents - use stampers
Dim stamper As New TextStamper() With {.Text = "Added Text"}
pdf.ApplyStamp(stamper)
Numéro 2 : Objets PDFFont
Problème : Gnostice PDFOneutilise des objets PDFFont ;IronPDFutilise CSS.
Solution:
// Gnostice PDFOne
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 12);
//IronPDF- use CSS
var html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 12pt;'>Text</span>";
// Gnostice PDFOne
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 12);
//IronPDF- use CSS
var html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 12pt;'>Text</span>";
' Gnostice PDFOne
Dim font As New PDFFont(PDFStandardFont.Helvetica, 12)
' IronPDF- use CSS
Dim html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 12pt;'>Text</span>"
Édition 3 : DocExporter introuvable
Problème : la classe DocExporter n'existe pas dans IronPDF.
Solution : Utilisez ChromePdfRenderer :
// Gnostice PDFOne
DocExporter exporter = new DocExporter();
exporter.Export(doc, "output.pdf", DocumentFormat.PDF);
// IronPDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
pdf.SaveAs("output.pdf");
// Gnostice PDFOne
DocExporter exporter = new DocExporter();
exporter.Export(doc, "output.pdf", DocumentFormat.PDF);
// IronPDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
pdf.SaveAs("output.pdf");
' Gnostice PDFOne
Dim exporter As New DocExporter()
exporter.Export(doc, "output.pdf", DocumentFormat.PDF)
' IronPDF
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlFileAsPdf("input.html")
pdf.SaveAs("output.pdf")
Edition 4 : Améliorations de la mémoire
Problème : Gnostice PDFOnea signalé des fuites de mémoire.
Solution :IronPDFassure une gestion stable de la mémoire. Utilisez des modèles d'élimination appropriés :
using (var pdf = PdfDocument.FromFile("large.pdf"))
{
// Process PDF
pdf.SaveAs("output.pdf");
} // Automatically disposed
using (var pdf = PdfDocument.FromFile("large.pdf"))
{
// Process PDF
pdf.SaveAs("output.pdf");
} // Automatically disposed
Imports PdfDocument
Using pdf = PdfDocument.FromFile("large.pdf")
' Process PDF
pdf.SaveAs("output.pdf")
End Using
Liste de contrôle de la migration
Pré-migration
- Inventorier toutes les utilisations de Gnostice PDFOnedans le code source
- Notez les fonctionnalités qui ne fonctionnaient pas (CSS, JS, RTL) — elles fonctionneront maintenant !
- Problèmes de mémoire du document pour les tests comparatifs
- Obtenir une clé de licence IronPDF
- Créer une branche de migration dans le système de contrôle de version
Migration de code
- Supprimer les packages NuGet Gnostice PDFOne
- Installez le package NuGet IronPDF :
dotnet add package IronPdf - Mettre à jour les importations d'espace de noms
- Remplacer la configuration de la clé de licence
- Convertir
PDFDocumentenPdfDocument - Convertir
DocExporterenChromePdfRenderer - Remplacer le dessin basé sur les coordonnées par l'estampillage HTML
- Mise à jour du style CSS
PDFFont - Convertir
doc.Append()enPdfDocument.Merge()
Essai
- Tester la conversion de HTML en PDF
- Vérifier que le CSS externe fonctionne désormais
- Tester le contenu dépendant de JavaScript
- Tester les langues RTL (si nécessaire)
- Testez les signatures numériques (maintenant disponibles !)
- Test de fusion de PDF
- Test de tatouage numérique
- Comparer l'utilisation de la mémoire
Après la migration
- Supprimer la licence Gnostice PDFOne
- Mise à jour de la documentation
- Supprimer les solutions de contournement pour les limitations de Gnostice PDFOne
- Former l'équipe à l'API IronPDF

