Altbilgi içeriğine atla
GEçIş KıLAVUZLARı

Ghostscript GPL'den IronPDF'e C# ile Nasıl Geçilir

Ghostscript GPL'den IronPDF'ye geçmek, .NET PDF iş akışınızı komut satırı işlem oluşturma ve dize tabanlı anahtar manipülasyonundan, tür güvenli, IntelliSense-uyumlu yerel bir .NET API'ye dönüştürür. Bu kılavuz, profesyonel .NET geliştiriciler için AGPL lisanslama endişelerini ve harici ikili bağımlılıkları ortadan kaldıran kapsamlı bir adım adım geçiş yolu sağlar.

Neden Ghostscript GPL'den IronPDF'ye Geçilmeli

Ghostscript GPLZorlukları

Ghostscript GPL on yıllarca bir geçmişe sahip köklü bir PostScript/PDF yorumlayıcıdır, ancak modern .NET uygulamalarında kullanımı önemli zorluklar yaratır:

  1. AGPL Lisans Kısıtlamaları: Ghostscript GPL'nin AGPL lisansı, kullandığınız yazılımı dağıtırsanız kaynak kodunuzu yayımlamanızı gerektirir - aksi takdirde Artifex'ten pahalı bir ticari lisans satın almanız gerekir. Bu "viral" lisans modeli, mülkiyete dayalı uygulamalar için önemli yasal risk oluşturur.

  2. Komut Satırı Arayüzü:Ghostscript GPLtemelde bir komut satırı aracıdır. Bunu C#'dan kullanmak, süreçler oluşturmayı, dize argümanları geçmeyi ve çıktıyı analiz etmeyi gerektirir—kırılgan ve hata-prone bir yaklaşımdır.

  3. Harici İkili Bağımlılığı: Ghostscript GPL'yi ayrı şekilde yüklemeli, PATH değişkenlerini yönetmeli ve dağıtım ortamları arasında sürüm uyumluluğunu sağlamalısınız. 32-bit vs 64-bit için farklı DLL'ler gereklidir (gsdll32.dll vs gsdll64.dll).

  4. Yerel HTML'den PDF'e Yok:Ghostscript GPLdoğrudan HTML'i PDF'e dönüştüremez. Önce başka bir aracı kullanarak HTML'i PostScript'e dönüştürmek, ardından Ghostscript GPL'yi kullanarak PostScript'i PDF'e dönüştürmek gerekir - dış bağımlılıklarla çok aşamalı bir boru hattı.

  5. Karmaşık Anahtar Sözdizimi: İşlemler, -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=... gibi anlaşılması zor komut satırı anahtarları aracılığıyla kontrol edilir. IntelliSense yok, tür güvenliği yok ve yanlış yazılması kolay.

  6. Hata Yönetimi: Hatalar, yapılandırılmış istisna yönetimi yerine metin dizeleri olarak stderr aracılığıyla gelir ve ayrıştırma gerektirir.

  7. İşlem Yönetimi Aşırı Yükü: Her işlem ayrı bir işlem oluşturur, bu da hata yönetimi, zaman aşımı ve kaynak temizliği için aşırı yük ve karmaşıklık ekler.

Ghostscript GPL veIronPDFKarşılaştırması

Bağlam Ghostscript GPL IronPDF
Lisans AGPL (viral) veya pahalı ticari Açık koşullu ticari
Entegrasyon Komut satırı işlemi oluşturma Yerel .NET kütüphanesi
API Tasarımı Dizi tabanlı anahtarlar Türlenmiş, IntelliSense destekli API
Hata Yönetimi stderr metnini analiz et .NET istisnaları
HTML'den PDF'e Desteklenmez (harici araçlar gerekli) Yerleşik Chromium motoru
Bağımlılıklar Harici ikili kurulum Bağımsız NuGet paketi
Dağıtım PATH'i yapılandırın, DLL'leri kopyalayın Yalnızca NuGet referansı ekleyin
İş Parçacığı Güvenliği Yalnızca işlem yalıtımı Tasarımı itibarıyla iplik güvenli
Modern .NET Sınırlı destek Tam .NET 6/7/8/9/10 desteği
Async Destegi İşlem bazlı Yerel async/await

.NET 10 ve C# 14 benimsemesini 2025 ve 2026 boyunca planlayan ekipler için IronPDF, modern .NET alışkanlıklarıyla yerlileşmiş gelecek hazır bir temel sağlar.


Göç Karmaşıklık Değerlendirmesi

Özelliklere Göre Tahmini Çaba

Özellik Göç Karmaşıklığı
PDF'den Görüntülere Low
PDF'leri birleştir Low
PDF'yi sıkıştır Low
PDF Optimizasyonu Low
Şifreleme Medium
Sayfa Çıkarma Low
PostScript'ten PDF'ye Orta-Yüksek
Özel Anahtarlar Orta-Yüksek

Paradigma Değişikliği

BuGhostscript GPLgeçişindeki temel değişiklik, komut satırı işlem yürütmeden türlenmiş .NET API çağrılarına geçiştir:

Ghostscript GPL:  "Dış işlem için bu dize anahtarlarını gönder"
IronPDF:          ".NET nesneleri üzerinde bu metotları çağır"

Başlamadan Önce

Önkoşullar

  1. .NET Sürümü: IronPDF, .NET Framework 4.6.2+ ve .NET Core 2.0+ / .NET 5/6/7/8/9+ destekler
  2. Lisans Anahtarı:IronPDFlisans anahtarınızı ironpdf.com'dan alın
  3. Yedekleme: Geçiş çalışması için bir dal oluşturun

TümGhostscript GPLKullanımını Belirleyin

# 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

NuGet Paket Değişiklikleri

# 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

Ghostscript GPLBağımlılıklarını Kaldırın

Geçişten sonra:

  • Sunuculardan Ghostscript GPL'yi kaldırın
  • Dağıtımlardan gsdll32.dll / gsdll64.dll kaldırın -Ghostscript GPLiçin PATH yapılandırmasını kaldırın
  • Herhangi bir GhostscriptVersionInfo referansını kaldırın

Hızlı Başlangıç Göçü

Adım 1: Lisans Yapılandırmasını Güncelleyin

Önce (Ghostscript GPL):

AGPL altında Ghostscript GPL, ya kaynak kodu açıklaması ya da Artifex'ten pahalı bir ticari lisans gerektirir.

Sonra (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

Adım 2: Ad Alanı Dışarı Aktarımlarını Güncelleyin

// 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

API Referansının Tamamı

Çekirdek Sınıf Eşleştirmesi

Ghostscript.NET IronPDF Tanım
GhostscriptProcessor Çeşitli PdfDocument yöntemleri PDF işleme
GhostscriptRasterizer PdfDocument.ToBitmap() / RasterizeToImageFiles() PDF'yi görüntülere çevir
GhostscriptVersionInfo Gereksiz olan (gerek yok) DLL konumu
GhostscriptStdIO N/A (istisnalar kullanın) G/Ç işleme
İşlem + komut-satırı ChromePdfRenderer HTML'den PDF'e

Komut Satırı Anahtar Haritalaması

Ghostscript GPLAnahtarı IronPDF Eşdeğeri Tanım
-dNOPAUSE Gereksiz olan (gerek yok) Sayfalar arasında duraklamayın
-dBATCH Gereksiz olan (gerek yok) İşleme bittikten sonra çık
-dSAFER N/A (varsayılan) Güvenli dosya erişimi
-sDEVICE=pdfwrite Çeşitli PDF yöntemleri Çıktı PDF
-sDEVICE=png16m ToBitmap() veya RasterizeToImageFiles() PNG çıkışı
-sOutputFile=X SaveAs("X") Çıktı dosya adı
-r300 Yöntemlerde DPI parametresi Çözünürlük
-dPDFSETTINGS=/ebook CompressImages(quality: 75) Orta kalite
-sOwnerPassword=X SecuritySettings.OwnerPassword Sahip parolası
-sUserPassword=X SecuritySettings.UserPassword Kullanıcı parolası

Kod Geçiş Örnekleri

Örnek 1: HTML'den PDF'e Dönüştürme

Önce (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

Sonra (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

Fark oldukça belirgin: Ghostscript GPL, HTML'yi doğrudan PDF'e dönüştüremez—dış araçlar kullanarak bir ara PostScript dönüştürmesi gerektirir. IronPDF'in ChromePdfRenderer özelliği, tam CSS3, JavaScript ve modern web standartları desteğiyle doğrudan HTML'den PDF'ye dönüştürme sağlar. Daha fazla işleme seçeneği için HTML'yi PDF'e dönüştürme belgelerine bakın.

Örnek 2: PDF'den Görüntülere

Önce (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

Sonra (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

Ghostscript GPL yaklaşımı, harici gsdll64.dll bulmayı, bir GhostscriptVersionInfo nesnesi oluşturmayı ve 1 ile başlayan sayfa numaralarını kullanmayı gerektirir. IronPDF'in ToBitmap() yöntemi, dış bağımlılık olmaksızın temiz ve tek satırlık bir yaklaşımla hizmet verir. Sayfa indeksleme farkına dikkat edin:Ghostscript GPL1-indeksli sayfaları kullanırken,IronPDFstandart .NET konvansiyonunu kullanarak 0-indeksli sayfaları kullanır.

Örnek 3: PDF Dosyalarını Birleştirme

Önce (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

Sonra (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

Ghostscript GPL yaklaşımı, anahtar sözdizimini (-dNOPAUSE, -dBATCH, -sDEVICE=pdfwrite) ezberlemeyi ve dosya yollarını bir dizi içine eklemeyi gerektirir. IronPDF'in statik Merge yöntemi, uygun PdfDocument nesneleriyle tür güvenli, IntelliSense destekli birleştirme sağlar. PDF'leri birleştirme ve bölme hakkında daha fazla bilgi edinin.


Kritik Geçiş Notları

Sayfa İndeksleme Dönüşümü

BuGhostscript GPLgeçişindeki en önemli değişikliklerden biri sayfa indeksleme farkıdır:

// 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

AGPL Lisans Endişeleri Ortadan Kaldırıldı

Ghostscript GPL'nin AGPL lisansı, uygulamaların dağıtımı sırasında kaynak kodu açıklamasını gerektiren 'viral' özelliklere sahiptir. IronPDF'nin ticari lisansı, bu tür gerekliliklerin olmadığı net şartlar içerir.

Dış İkili Dosyalar Yok

IronPDF tamamen kendi içinde yeterlidir. Taşınmadan sonra bunları kaldırın:

  • gsdll32.dll ve gsdll64.dll dosyaları
  • SunuculardanGhostscript GPLyüklemesi
  • PATH ortam değişkeni yapılandırmaları
  • Koddaki GhostscriptVersionInfo referansları

PostScript Dosyaları

IronPDF, PostScript (.ps) dosyalarını doğrudan işlememektedir. Eğer iş akışınız PostScript işlemi gerektiriyorsa, ya: 1.IronPDFişleminden önce başka bir araç kullanarak PostScript'i PDF'e dönüştürün

  1. Kaynak içeriği HTML'ye dönüştürün ve IronPDF'nin HTML işleme özelliğini kullanın

Performans Dikkat Edilecek Noktalar

İşlem Başlatma Yok

Ghostscript GPL işlemleri, ek yük ile ilişkili olarak dış süreçler başlatır. IronPDF, sizin .NET süreciniz içinde çalışır:

// 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

İş Parçacığı Güvenliği

IronPDF tasarımı itibarıyla thread-safe'dir. Birden fazla thread, eşzamanlama ile ilgili endişeler olmadan ChromePdfRenderer ve PdfDocument'i eşzamanlı olarak kullanabilir.


Goc Kontrol Listesi

Geçiş Öncesi

  • Kod tabanında tümGhostscript GPLkullanımını envanterleyin
  • Kullanılan mevcut komut satırı anahtarlarını belgelendirin
  • Herhangi bir PostScript işlemini belirleyin (özel işlem gerekebilir)
  • AGPL lisans uyumu durumunu inceleyin -IronPDFlisans anahtarını edinin
  • Sürüm kontrolünde bir geçiş dalı oluşturun

Kod Göçü

  • Ghostscript.NET NuGet paketini kaldırın: dotnet remove package Ghostscript.NET
  • IronPdf NuGet paketini yükleyin: dotnet add package IronPdf
  • DışGhostscript GPLikili bağımlılıklarını kaldırın
  • GhostscriptVersionInfo ve DLL referanslarını kaldırın
  • GhostscriptProcessor.Process()'ıIronPDFyöntemlerine dönüştürün
  • GhostscriptRasterizerpdf.ToBitmap()'a dönüştürün
  • Komut satırı anahtarlarını API çağrılarıyla değiştirin
  • Hata işlemlerini stderr çözümlemesinden istisnalara güncelleyin
  • 1-indeksli sayfa numaralarını 0-indeksli sayfa numaralarına çevirin

Test Etme

  • PDF'den görüntüye dönüştürmeyi test edin
  • PDF birleştirmeyi test edin
  • Sayfa çıkarmayı test edin
  • Sıkıştırma kalitesini test edin
  • Parola korumasını test edin
  • Çıktı kalitesinin beklentilere uygun olduğunu doğrulayın
  • Kritik yolları performans kıyaslayarak değerlendirin

Dağıtım

  • Ghostscript GPL'yi sunuculardan kaldırın
  • PATH yapılandırmasını kaldırın
  • Dağıtımlardan gsdll*.dll dosyalarını kaldırın
  • UygulamanınGhostscript GPLyüklü olmadan çalıştığını doğrulayın

Geçişten Sonra

-Ghostscript GPLlisansını kaldırın (eğer ticari ise)

  • Belgeleri güncelleyin
  • TakımıIronPDFAPI üzerinde eğitin
  • Üretimde olası sorunlar için izleyin

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara