Passer au contenu du pied de page
GUIDES DE MIGRATION

Comment migrer de Ghostscript GPL à IronPDF en C#

La migration de Ghostscript GPLversIronPDFtransforme votre flux de travail PDF .NET, qui passe du lancement de processus en ligne de commande et de la manipulation de commutateurs à base de chaînes à une API native .NET sécurisée et dotée d'IntelliSense. Ce guide fournit un chemin de migration complet, étape par étape, qui élimine les problèmes de licence AGPL et les dépendances binaires externes pour les développeurs .NET professionnels.

Pourquoi passer de Ghostscript GPLà IronPDF

Les défis de la licence GPL de Ghostscript

Ghostscript GPL est un interprète PostScript/PDF vénérable qui a des décennies d'histoire, mais son utilisation dans les applications .NET modernes présente des défis importants :

  1. Restrictions de la licence AGPL : La licence AGPL de Ghostscript GPLvous oblige à publier votre code source si vous distribuez un logiciel qui l'utilise, à moins d'acheter une licence commerciale coûteuse auprès d'Artifex. Ce modèle de licence "virale" crée un risque juridique important pour les applications propriétaires.

  2. Interface en ligne de commande : Ghostscript GPLest fondamentalement un outil en ligne de commande. Pour l'utiliser à partir de C#, il faut lancer des processus, passer des arguments de chaîne et analyser la sortie - une approche fragile et sujette aux erreurs.

  3. Dépendance binaire externe : vous devez installer Ghostscript GPLséparément, gérer les variables PATH et assurer la compatibilité des versions dans tous les environnements de déploiement. Des DLL différentes sont nécessaires pour les systèmes 32 bits et 64 bits (gsdll32.dll vs gsdll64.dll).

  4. Pas de conversion native HTML vers PDF : Ghostscript GPLne peut pas convertir directement le HTML en PDF. Vous devez d'abord convertir HTML en PostScript à l'aide d'un autre outil, puis utiliser Ghostscript GPLpour convertir PostScript en PDF - un processus en plusieurs étapes avec des dépendances externes.

  5. Syntaxe de commutation complexe : les opérations sont contrôlées via des commutateurs de ligne de commande cryptiques comme -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=.... Pas d'IntelliSense, pas de sécurité de type, et facile de faire des fautes de frappe.

  6. Gestion des erreurs : Les erreurs arrivent via stderr sous forme de chaînes de caractères, nécessitant une analyse syntaxique plutôt qu'une gestion structurée des exceptions.

  7. Surcharge de gestion des processus : Chaque opération génère un processus distinct, ce qui ajoute de la surcharge et de la complexité pour la gestion des erreurs, les délais d'attente et le nettoyage des ressources.

Comparaison entre Ghostscript GPLet IronPDF

Aspect Ghostscript GPL IronPDF
Licence AGPL (virale) ou commerciale onéreuse Commercial avec des termes clairs
Intégration Lancement d'un processus en ligne de commande Bibliothèque native .NET
Conception de l'API Commutateurs à base de chaînes API typée et dotée d'IntelliSense
Gestion des erreurs Analyse du texte stderr exceptions .NET
HTML vers PDF Non pris en charge (besoin d'outils externes) Moteur Chromium intégré
Dépendances Installation binaire externe Paquet NuGet autonome
Déploiement Configurer le PATH, copier les DLL Il suffit d'ajouter une référence NuGet
Sécurité des fils Isolation du processus uniquement Sécurité des threads dès la conception
.NET moderne Soutien limité Prise en charge complète de .NET 6/7/8/9/10
Prise en charge de l'asynchronisme Basé sur le processus Async/await natif

Pour les équipes qui prévoient d'adopter .NET 10 et C# 14 jusqu'en 2025 et 2026,IronPDFconstitue une base à l'épreuve du temps qui s'intègre nativement aux modèles .NET modernes.


Évaluation de la complexité de la migration

Estimation de l'effort par fonctionnalité

Fonction Complexité de la migration
PDF vers images Faible
Fusionner des PDF Faible
Compresser le PDF Faible
Optimisation PDF Faible
Chiffrement Moyen
Extraction de pages Faible
PostScript vers PDF Moyenne-élevée
Commutateurs personnalisés Moyenne-élevée

Changement de paradigme

Le Shift fondamental de cette migration vers la licence GPL de Ghostscript réside dans le passage de l'exécution de processus en ligne de commande aux appels d'API .NET typés :

Ghostscript GPL :  "Transmettre ces chaînes de caractères à un processus externe"
IronPDF :          "Appeler ces méthodes sur des objets .NET"

Avant de commencer

Prérequis

  1. Version .NET :IronPDFprend en charge .NET Framework 4.6.2+ et .NET Core 2.0+ / .NET 5/6/7/8/9+.
  2. Clé de licence : Obtenez votre clé de licenceIronPDFsur IronPDF
  3. Sauvegarde : Créer une branche pour les travaux de migration

Identifier toutes les utilisations de Ghostscript sous licence GPL

# Find all Ghostscript.NET references
grep -r "Ghostscript\.NET\|GhostscriptProcessor\|GhostscriptRasterizer\|gsdll" --include="*.cs" .

# Find direct process calls to Ghostscript
grep -r "gswin64c\|gswin32c\|gs\|ProcessStartInfo.*ghost" --include="*.cs" .

# Find package references
grep -r "Ghostscript" --include="*.csproj" .
# Find all Ghostscript.NET references
grep -r "Ghostscript\.NET\|GhostscriptProcessor\|GhostscriptRasterizer\|gsdll" --include="*.cs" .

# Find direct process calls to Ghostscript
grep -r "gswin64c\|gswin32c\|gs\|ProcessStartInfo.*ghost" --include="*.cs" .

# Find package references
grep -r "Ghostscript" --include="*.csproj" .
SHELL

Modifications du paquet NuGet

# Remove Ghostscript.NET
dotnet remove package Ghostscript.NET

# Install IronPDF
dotnet add package IronPdf
# Remove Ghostscript.NET
dotnet remove package Ghostscript.NET

# Install IronPDF
dotnet add package IronPdf
SHELL

Supprimer les dépendances GPL de Ghostscript

Après la migration :

  • Désinstaller Ghostscript GPLdes serveurs
  • Supprimer gsdll32.dll / gsdll64.dll des déploiements
  • Supprimer la configuration PATH pour Ghostscript GPL
  • Supprimez toutes les références à GhostscriptVersionInfo

Migration rapide

Étape 1 : Mise à jour de la configuration de la licence

Avant (Ghostscript GPL):

Ghostscript GPL sous AGPL nécessite soit la divulgation du code source, soit une licence commerciale onéreuse auprès d'Artifex.

Après (IronPDF):

// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
' Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY"
$vbLabelText   $csharpLabel

Étape 2 : mise à jour des importations de l'espace de noms

// Before (Ghostscript GPL)
using Ghostscript.NET;
using Ghostscript.NET.Processor;
using Ghostscript.NET.Rasterizer;

// After (IronPDF)
using IronPdf;
// Before (Ghostscript GPL)
using Ghostscript.NET;
using Ghostscript.NET.Processor;
using Ghostscript.NET.Rasterizer;

// After (IronPDF)
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Référence API complète

Mappage des classes de base

Ghostscript.NET IronPDF Description du projet
GhostscriptProcessor Diverses méthodes PdfDocument Traitement PDF
GhostscriptRasterizer PdfDocument.ToBitmap() / RasterizeToImageFiles() PDF vers images
GhostscriptVersionInfo N/A (pas nécessaire) Emplacement de la DLL
GhostscriptStdIO N/A (utiliser les exceptions) Traitement des E/S
Processus + ligne de commande ChromePdfRenderer HTML vers PDF

Mappage des commutateurs de ligne de commande

Ghostscript GPLSwitch Équivalent d'IronPDF Description du projet
-dNOPAUSE N/A (pas nécessaire) Ne pas faire de pause entre les pages
-dBATCH N/A (pas nécessaire) Quitter après traitement
-dSAFER N/A (par défaut) Accès sécurisé aux fichiers
-sDEVICE=pdfwrite Diverses méthodes PDF PDF de sortie
-sDEVICE=png16m ToBitmap() ou RasterizeToImageFiles() Sortie PNG
-sOutputFile=X SaveAs("X") Nom du fichier de sortie
-r300 Paramètre DPI dans les méthodes Résolution
-dPDFSETTINGS=/ebook CompressImages(quality: 75) Qualité moyenne
-sOwnerPassword=X SecuritySettings.OwnerPassword Mot de passe du propriétaire
-sUserPassword=X SecuritySettings.UserPassword Mot de passe utilisateur

Exemples de migration de code

Exemple 1 : Conversion HTML vers PDF

Avant (Ghostscript GPL):

// NuGet: Install-Package Ghostscript.NET
using Ghostscript.NET;
using Ghostscript.NET.Processor;
using System.IO;
using System.Text;

class GhostscriptExample
{
    static void Main()
    {
        // Ghostscript cannot directly convert HTML to PDF
        // You need to first convert HTML to PS/EPS using another tool
        // then use Ghostscript to convert PS to PDF

        string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        string psFile = "temp.ps";
        string outputPdf = "output.pdf";

        // This is a workaround - Ghostscript primarily works with PostScript
        GhostscriptProcessor processor = new GhostscriptProcessor();

        List<string> switches = new List<string>
        {
            "-dNOPAUSE",
            "-dBATCH",
            "-dSAFER",
            "-sDEVICE=pdfwrite",
            $"-sOutputFile={outputPdf}",
            psFile
        };

        processor.Process(switches.ToArray());
    }
}
// NuGet: Install-Package Ghostscript.NET
using Ghostscript.NET;
using Ghostscript.NET.Processor;
using System.IO;
using System.Text;

class GhostscriptExample
{
    static void Main()
    {
        // Ghostscript cannot directly convert HTML to PDF
        // You need to first convert HTML to PS/EPS using another tool
        // then use Ghostscript to convert PS to PDF

        string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        string psFile = "temp.ps";
        string outputPdf = "output.pdf";

        // This is a workaround - Ghostscript primarily works with PostScript
        GhostscriptProcessor processor = new GhostscriptProcessor();

        List<string> switches = new List<string>
        {
            "-dNOPAUSE",
            "-dBATCH",
            "-dSAFER",
            "-sDEVICE=pdfwrite",
            $"-sOutputFile={outputPdf}",
            psFile
        };

        processor.Process(switches.ToArray());
    }
}
Imports Ghostscript.NET
Imports Ghostscript.NET.Processor
Imports System.IO
Imports System.Text

Class GhostscriptExample
    Shared Sub Main()
        ' Ghostscript cannot directly convert HTML to PDF
        ' You need to first convert HTML to PS/EPS using another tool
        ' then use Ghostscript to convert PS to PDF

        Dim htmlContent As String = "<html><body><h1>Hello World</h1></body></html>"
        Dim psFile As String = "temp.ps"
        Dim outputPdf As String = "output.pdf"

        ' This is a workaround - Ghostscript primarily works with PostScript
        Dim processor As New GhostscriptProcessor()

        Dim switches As New List(Of String) From {
            "-dNOPAUSE",
            "-dBATCH",
            "-dSAFER",
            "-sDEVICE=pdfwrite",
            $"-sOutputFile={outputPdf}",
            psFile
        }

        processor.Process(switches.ToArray())
    End Sub
End Class
$vbLabelText   $csharpLabel

Après (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

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

        string htmlContent = "<html><body><h1>Hello World</h1></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

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

        string htmlContent = "<html><body><h1>Hello World</h1></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf

Class IronPdfExample
    Shared Sub Main()
        Dim renderer As New ChromePdfRenderer()

        Dim htmlContent As String = "<html><body><h1>Hello World</h1></body></html>"

        Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

La différence est flagrante : Ghostscript GPLne peut pas du tout convertir directement HTML en PDF - il faut une conversion PostScript intermédiaire à l'aide d'outils externes.IronPDF(ChromePdfRenderer) offre une conversion directe HTML vers PDF avec une prise en charge complète des normes CSS3, JavaScript et Web modernes. Voir la documentation HTML vers PDF pour plus d'options de rendu.

Exemple 2 : PDF vers images

Avant (Ghostscript GPL):

// NuGet: Install-Package Ghostscript.NET
using Ghostscript.NET;
using Ghostscript.NET.Rasterizer;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

class GhostscriptExample
{
    static void Main()
    {
        string inputPdf = "input.pdf";
        string outputPath = "output";

        GhostscriptVersionInfo gvi = new GhostscriptVersionInfo("gsdll64.dll");

        using (GhostscriptRasterizer rasterizer = new GhostscriptRasterizer())
        {
            rasterizer.Open(inputPdf, gvi, false);

            for (int pageNumber = 1; pageNumber <= rasterizer.PageCount; pageNumber++)
            {
                Image img = rasterizer.GetPage(300, pageNumber);
                img.Save($"{outputPath}_page{pageNumber}.png", ImageFormat.Png);
                img.Dispose();
            }
        }
    }
}
// NuGet: Install-Package Ghostscript.NET
using Ghostscript.NET;
using Ghostscript.NET.Rasterizer;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

class GhostscriptExample
{
    static void Main()
    {
        string inputPdf = "input.pdf";
        string outputPath = "output";

        GhostscriptVersionInfo gvi = new GhostscriptVersionInfo("gsdll64.dll");

        using (GhostscriptRasterizer rasterizer = new GhostscriptRasterizer())
        {
            rasterizer.Open(inputPdf, gvi, false);

            for (int pageNumber = 1; pageNumber <= rasterizer.PageCount; pageNumber++)
            {
                Image img = rasterizer.GetPage(300, pageNumber);
                img.Save($"{outputPath}_page{pageNumber}.png", ImageFormat.Png);
                img.Dispose();
            }
        }
    }
}
Imports Ghostscript.NET
Imports Ghostscript.NET.Rasterizer
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.IO

Class GhostscriptExample
    Shared Sub Main()
        Dim inputPdf As String = "input.pdf"
        Dim outputPath As String = "output"

        Dim gvi As New GhostscriptVersionInfo("gsdll64.dll")

        Using rasterizer As New GhostscriptRasterizer()
            rasterizer.Open(inputPdf, gvi, False)

            For pageNumber As Integer = 1 To rasterizer.PageCount
                Dim img As Image = rasterizer.GetPage(300, pageNumber)
                img.Save($"{outputPath}_page{pageNumber}.png", ImageFormat.Png)
                img.Dispose()
            Next
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

Après (IronPDF):

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

class IronPdfExample
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("input.pdf");

        var images = pdf.ToBitmap();

        for (int i = 0; i < images.Length; i++)
        {
            images[i].Save($"output_page{i + 1}.png");
        }
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class IronPdfExample
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("input.pdf");

        var images = pdf.ToBitmap();

        for (int i = 0; i < images.Length; i++)
        {
            images[i].Save($"output_page{i + 1}.png");
        }
    }
}
Imports IronPdf
Imports System

Class IronPdfExample
    Shared Sub Main()
        Dim pdf = PdfDocument.FromFile("input.pdf")

        Dim images = pdf.ToBitmap()

        For i As Integer = 0 To images.Length - 1
            images(i).Save($"output_page{i + 1}.png")
        Next
    End Sub
End Class
$vbLabelText   $csharpLabel

L'approche Ghostscript GPLnécessite de localiser l'objet externe gsdll64.dll, de créer un objet GhostscriptVersionInfo et d'utiliser des numéros de page indexés à partir de 1. La méthode ToBitmap() d'IronPDF offre une approche simple et concise, sans dépendances externes. Notez la différence d'indexation des pages : Ghostscript GPLutilise des pages indexées à 1 alors qu'IronPDF utilise des pages indexées à 0 (convention .NET standard).

Exemple 3 : Fusionner des fichiers PDF

Avant (Ghostscript GPL):

// NuGet: Install-Package Ghostscript.NET
using Ghostscript.NET;
using Ghostscript.NET.Processor;
using System.Collections.Generic;

class GhostscriptExample
{
    static void Main()
    {
        string outputPdf = "merged.pdf";
        string[] inputFiles = { "file1.pdf", "file2.pdf", "file3.pdf" };

        GhostscriptProcessor processor = new GhostscriptProcessor();

        List<string> switches = new List<string>
        {
            "-dNOPAUSE",
            "-dBATCH",
            "-dSAFER",
            "-sDEVICE=pdfwrite",
            $"-sOutputFile={outputPdf}"
        };

        switches.AddRange(inputFiles);

        processor.Process(switches.ToArray());
    }
}
// NuGet: Install-Package Ghostscript.NET
using Ghostscript.NET;
using Ghostscript.NET.Processor;
using System.Collections.Generic;

class GhostscriptExample
{
    static void Main()
    {
        string outputPdf = "merged.pdf";
        string[] inputFiles = { "file1.pdf", "file2.pdf", "file3.pdf" };

        GhostscriptProcessor processor = new GhostscriptProcessor();

        List<string> switches = new List<string>
        {
            "-dNOPAUSE",
            "-dBATCH",
            "-dSAFER",
            "-sDEVICE=pdfwrite",
            $"-sOutputFile={outputPdf}"
        };

        switches.AddRange(inputFiles);

        processor.Process(switches.ToArray());
    }
}
Imports Ghostscript.NET
Imports Ghostscript.NET.Processor
Imports System.Collections.Generic

Class GhostscriptExample
    Shared Sub Main()
        Dim outputPdf As String = "merged.pdf"
        Dim inputFiles As String() = {"file1.pdf", "file2.pdf", "file3.pdf"}

        Dim processor As New GhostscriptProcessor()

        Dim switches As New List(Of String) From {
            "-dNOPAUSE",
            "-dBATCH",
            "-dSAFER",
            "-sDEVICE=pdfwrite",
            $"-sOutputFile={outputPdf}"
        }

        switches.AddRange(inputFiles)

        processor.Process(switches.ToArray())
    End Sub
End Class
$vbLabelText   $csharpLabel

Après (IronPDF):

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

class IronPdfExample
{
    static void Main()
    {
        var pdfs = new List<PdfDocument>
        {
            PdfDocument.FromFile("file1.pdf"),
            PdfDocument.FromFile("file2.pdf"),
            PdfDocument.FromFile("file3.pdf")
        };

        var merged = PdfDocument.Merge(pdfs);
        merged.SaveAs("merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;

class IronPdfExample
{
    static void Main()
    {
        var pdfs = new List<PdfDocument>
        {
            PdfDocument.FromFile("file1.pdf"),
            PdfDocument.FromFile("file2.pdf"),
            PdfDocument.FromFile("file3.pdf")
        };

        var merged = PdfDocument.Merge(pdfs);
        merged.SaveAs("merged.pdf");
    }
}
Imports IronPdf
Imports System.Collections.Generic

Class IronPdfExample
    Shared Sub Main()
        Dim pdfs As New List(Of PdfDocument) From {
            PdfDocument.FromFile("file1.pdf"),
            PdfDocument.FromFile("file2.pdf"),
            PdfDocument.FromFile("file3.pdf")
        }

        Dim merged = PdfDocument.Merge(pdfs)
        merged.SaveAs("merged.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

L'approche Ghostscript GPLnécessite de mémoriser la syntaxe de switch (-dNOPAUSE, -dBATCH, -sDEVICE=pdfwrite) et de concaténer les chemins de fichiers dans un tableau de chaînes. La méthode statique Merge d'IronPDF fournit une fusion sûre en termes de type et compatible avec IntelliSense avec les objets PdfDocument appropriés. En savoir plus sur la fusion et la division de PDF.


Notes de migration essentielles

Conversion de l'indexation des pages

L'un des changements les plus importants dans cette migration GPL de Ghostscript est la différence d'indexation des pages :

// Ghostscript GPL: 1-indexed pages
for (int pageNumber = 1; pageNumber <= rasterizer.PageCount; pageNumber++)
{
    Image img = rasterizer.GetPage(300, pageNumber);
}

// IronPDF: 0-indexed pages (standard .NET)
for (int i = 0; i < images.Length; i++)
{
    images[i].Save($"output_page{i + 1}.png");
}
// Ghostscript GPL: 1-indexed pages
for (int pageNumber = 1; pageNumber <= rasterizer.PageCount; pageNumber++)
{
    Image img = rasterizer.GetPage(300, pageNumber);
}

// IronPDF: 0-indexed pages (standard .NET)
for (int i = 0; i < images.Length; i++)
{
    images[i].Save($"output_page{i + 1}.png");
}
Option Strict On



' Ghostscript GPL: 1-indexed pages
For pageNumber As Integer = 1 To rasterizer.PageCount
    Dim img As Image = rasterizer.GetPage(300, pageNumber)
Next

' IronPDF: 0-indexed pages (standard .NET)
For i As Integer = 0 To images.Length - 1
    images(i).Save($"output_page{i + 1}.png")
Next
$vbLabelText   $csharpLabel

Les problèmes liés à la licence AGPL éliminés

La licence AGPL de Ghostscript GPLa des propriétés "virales" qui exigent la divulgation du code source lors de la distribution des applications. La licence commerciale d'IronPDF comporte des termes clairs sans aucune exigence de ce type.

Pas de binaires externes

IronPDF est entièrement autonome. Supprimez-les après la migration :

  • Fichiers gsdll32.dll et gsdll64.dll
  • Installation de Ghostscript GPLà partir de serveurs
  • Configurations de la variable d'environnement PATH
  • GhostscriptVersionInfo références dans le code

Fichiers PostScript

IronPDF ne gère pas directement les fichiers PostScript (.ps). Si votre flux de travail nécessite un traitement PostScript, soit :

  1. Convertir PostScript en PDF à l'aide d'un autre outil avant le traitement par IronPDF
  2. Convertissez le contenu source en HTML et utilisez le rendu HTML d'IronPDF

Considérations de Performance

Pas de création de processus

Les opérations de Ghostscript GPLgénèrent des processus externes avec les frais généraux associés.IronPDFfonctionne dans le cadre de votre processus .NET :

// Ghostscript GPL: Process spawning overhead
processor.Process(switches.ToArray());  // Creates new OS process

// IronPDF: In-process execution
var merged = PdfDocument.Merge(pdfs);  // Native .NET method call
// Ghostscript GPL: Process spawning overhead
processor.Process(switches.ToArray());  // Creates new OS process

// IronPDF: In-process execution
var merged = PdfDocument.Merge(pdfs);  // Native .NET method call
$vbLabelText   $csharpLabel

Sécurité des threads

IronPDF est de par sa conception à l'épreuve des threads. Plusieurs threads peuvent utiliser ChromePdfRenderer et PdfDocument simultanément sans problème de synchronisation.


Liste de contrôle de la migration

Pré-migration

  • Recenser toutes les utilisations de Ghostscript GPLdans le code source
  • Documenter les options de ligne de commande actuellement utilisées
  • Identifier tout traitement PostScript (nécessitant un traitement spécial)
  • Vérifier la conformité de la licence AGPL
  • 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 le package NuGet Ghostscript .NET : dotnet remove package Ghostscript.NET
  • Installez le package NuGet IronPDF : dotnet add package IronPdf
  • Supprimer les dépendances binaires externes Ghostscript GPL
  • Supprimer les références à GhostscriptVersionInfo et aux DLL
  • Convertir GhostscriptProcessor.Process() en méthodes IronPDF
  • Convertir GhostscriptRasterizer en pdf.ToBitmap()
  • Remplacer les options de ligne de commande par des appels d'API
  • Mise à jour de la gestion des erreurs : passage de l'analyse de stderr à la gestion des exceptions
  • Convertir les numéros de page indexés à 1 en numéros indexés à 0

Essai

  • Test de conversion PDF en image
  • Test de fusion de PDF
  • Extraction de la page de test
  • Tester la qualité de compression
  • Tester la protection par mot de passe
  • Vérifier que la qualité de la production correspond aux attentes
  • Chemins critiques de référence des performances

Déploiement

  • Supprimer Ghostscript GPLdes serveurs
  • Supprimer la configuration PATH
  • Supprimer les fichiers gsdll*.dll des déploiements
  • Vérifier que l'application fonctionne sans Ghostscript GPLinstallé

Après la migration

  • Supprimer la licence GPL de Ghostscript (si commercial)
  • Mise à jour de la documentation
  • Former l'équipe à l'API IronPDF
  • Surveiller la production pour détecter tout problème.

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