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

GdPicture.NET SDK'dan IronPDF'e C# ile Nasıl Geçilir

GdPicture.NET SDK'den IronPDF'ye geçiş, .NET geliştiricilerine odaklanmış, sadeleştirilmiş bir PDF üretimi yaklaşımı sunar. Bu kılavuz, karmaşık belge görüntüleme SDK kalıplarını, modern, PDF'e özgü API'lerle değiştiren kapsamlı, adım adım bir göç yolu sağlar.

GdPicture.NET SDK'den IronPDF'ye Neden Geçilmeli

GdPicture.NET SDKZorlukları

GdPicture.NET SDK (şimdi Nutrient olarak yeniden markalandı), yalnızca PDF odaklı geliştirme için birkaç zorlukla birlikte kapsamlı bir belge görüntüleme SDK'sıdır:

  1. PDF-Only Projeleri İçin Gereksizlik: GdPicture.NET SDK, OCR, barkod tanıma, tarama ve görüntü işleme içeren tam bir belge görüntüleme paketidir. Sadece PDF işlevselliğine ihtiyaçınız varsa, asla kullanmayacağınız özellikler için ödeme yapıyorsunuz.

  2. Karmaşık Lisanslama: Birden fazla ürün katmanı (GdPicture.NET 14, GdPicture.API, Ultimate, Professional) ile kafa karıştırıcı SKU kombinasyonları ve yıllık abonelik gereksinimleri.

  3. Kurumsal Fiyatlandırma: PDF eklentisi için lisans maliyetleri $2.999'dan başlar, Ultimate sürüm için $10.000+'ya kadar çıkar. Geliştirici başına lisanslama, büyüyen ekipler için önemli bir ek yük sağlar.

  4. Dik Öğrenme Eğrisi: API, belge görüntüleme kavramlarına göre tasarlanmıştır, modern .NET kalıplarına göre değil. Metotlar, LicenseManager.RegisterKEY(), GdPictureStatus enum kontrolü ve 1-indeksli sayfalar gibi günümüze göre tarihli hissettiriyor, çağdaş C# konvansiyonlarına kıyasla.

  5. Durum Kodu Deseni: Her işlem bir GdPictureStatus enum döndürüyor ve bu kontrol edilmeli—hatalarda istisna fırlatılmıyor, hata ayıklamayı uzun ve tekrarlı yapıyor.

  6. Manuel Kaynak Yönetimi: Açıkça Dispose() veya Release() çağrılarını gerektiriyor. SDK, standart .NET kaynak temizleme kalıplarını düzgün şekilde takip etmez.

  7. Sürüm Bağımlılığı: GdPicture14 isim alanı sürüm numarasını içerir, bu da ana sürüm yükseltmelerini tüm kod tabanınızda isim alanı değişiklikleri gerektirebilir.

  8. Yeniden Markalandırma Karışıklığı: Son markalandırma değişikliği "Nutrient"e yönelik olup gdpicture.com ve nutrient.io arasında belgeleme parçalanmasına neden olur, desteği ve öğrenmeyi zorlaştırır.

GdPicture.NET SDK vsIronPDFKarşılaştırması

Bağlam GdPicture.NET SDK IronPDF
Odak Belge görüntüleme paketi (PDF için aşırı) PDF'ye özel kütüphane
Fiyatlandırma $2,999-$10,000+ kurumsal katman Rekabetçi, işletmeyle birlikte ölçeklenir
API Stili Durum kodları, manuel yönetim İstisnalar, IDisposable, modern .NET
Öğrenme Eğrisi Dik (görüntü işleme SDK kavramları) Basit (HTML/CSS tanıdık)
HTML Render Temel, dahili motor CSS3/JS ile en son Chromium
Sayfa Dizineleme 1-indeksli 0-indeksli (standart .NET)
İş Parçacığı Güvenliği Manuel senkronizasyon gerekli Tasarımı itibarıyla iplik güvenli
Namespace Sürüm spesifik (GdPicture14) Kararlı (IronPdf)

.NET 10 ve C# 14'ü 2025 ve 2026'ya kadar benimsemeyi planlayan ekipler için IronPDF, modern .NET kalıpları ve konvansiyonlarıyla uyumlu bir geleceğe dayanıklı temel sağlar.


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

Özelliklere Göre Tahmini Çaba

Özellik Göç Karmaşıklığı
HTML'den PDF'ye Low
URL'den PDF'ye Low
PDF'leri birleştir Low
PDF'leri Böl Low
Filigranlar Low
Metin Çıkarma Low
Şifre Koruması Medium
Form Alanları Medium
Dijital İmzalar Orta-Yüksek
OCR High
Barkod Tanıma N/A

Geçiş Karar Matrisi

Durumunuz Tavsiye
Sadece PDF işlemleri Geçiş—önemli basitleştirme ve maliyet tasarrufu
YoğunOCRkullanımı Eş ürün olarak IronOCR'u düşünün
Barkod/tarama ihtiyaçları Bu özellikler için GdPicture.NET SDK'yı kullanmaya devam edin, PDF içinIronPDFkullanın
Tam belge görüntüleme Gerçekten tüm özellikleri kullanıp kullanmadığınızı değerlendirin

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ümGdPicture.NET SDKKullanımını Belirleyin

# Find allGdPicture.NET SDKreferences in your codebase
grep -r "GdPicture14\|GdPicturePDF\|GdPictureDocumentConverter\|GdPictureStatus\|LicenseManager\.RegisterKEY" --include="*.cs" .

# Find all GdPicture package references
grep -r "GdPicture" --include="*.csproj" .
# Find allGdPicture.NET SDKreferences in your codebase
grep -r "GdPicture14\|GdPicturePDF\|GdPictureDocumentConverter\|GdPictureStatus\|LicenseManager\.RegisterKEY" --include="*.cs" .

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

NuGet Paket Değişiklikleri

# RemoveGdPicture.NET SDKpackages
dotnet remove package GdPicture.NET.14
dotnet remove package GdPicture.NET.14.API
dotnet remove package GdPicture
dotnet remove package GdPicture.API

# Install IronPDF
dotnet add package IronPdf
# RemoveGdPicture.NET SDKpackages
dotnet remove package GdPicture.NET.14
dotnet remove package GdPicture.NET.14.API
dotnet remove package GdPicture
dotnet remove package GdPicture.API

# Install IronPDF
dotnet add package IronPdf
SHELL

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

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

Önce (GdPicture.NET SDK):

// Must be called before anyGdPicture.NET SDKoperations
LicenseManager.RegisterKEY("YOUR-GDPICTURE-LICENSE-KEY");
// Must be called before anyGdPicture.NET SDKoperations
LicenseManager.RegisterKEY("YOUR-GDPICTURE-LICENSE-KEY");
' Must be called before any GdPicture.NET SDK operations
LicenseManager.RegisterKEY("YOUR-GDPICTURE-LICENSE-KEY")
$vbLabelText   $csharpLabel

Sonra (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" }
$vbLabelText   $csharpLabel

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

// Before (GdPicture.NET SDK)
using GdPicture14;

// After (IronPDF)
using IronPdf;
using IronPdf.Editing;
// Before (GdPicture.NET SDK)
using GdPicture14;

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

Adım 3: Temel Dönüşüm Deseni

GdPicture.NET SDK geçişindeki en önemli değişiklik, ayrıntılı durum kontrolünün kaldırılmasıdır:

Önce (GdPicture.NET SDK):

using GdPicture14;

LicenseManager.RegisterKEY("LICENSE-KEY");

using (GdPictureDocumentConverter converter = new GdPictureDocumentConverter())
{
    GdPictureStatus status = converter.LoadFromHTMLString("<h1>Hello World</h1>");

    if (status == GdPictureStatus.OK)
    {
        status = converter.SaveAsPDF("output.pdf");

        if (status != GdPictureStatus.OK)
        {
            Console.WriteLine($"Error: {status}");
        }
    }
    else
    {
        Console.WriteLine($"Load error: {status}");
    }
}
using GdPicture14;

LicenseManager.RegisterKEY("LICENSE-KEY");

using (GdPictureDocumentConverter converter = new GdPictureDocumentConverter())
{
    GdPictureStatus status = converter.LoadFromHTMLString("<h1>Hello World</h1>");

    if (status == GdPictureStatus.OK)
    {
        status = converter.SaveAsPDF("output.pdf");

        if (status != GdPictureStatus.OK)
        {
            Console.WriteLine($"Error: {status}");
        }
    }
    else
    {
        Console.WriteLine($"Load error: {status}");
    }
}
Imports GdPicture14

LicenseManager.RegisterKEY("LICENSE-KEY")

Using converter As New GdPictureDocumentConverter()
    Dim status As GdPictureStatus = converter.LoadFromHTMLString("<h1>Hello World</h1>")

    If status = GdPictureStatus.OK Then
        status = converter.SaveAsPDF("output.pdf")

        If status <> GdPictureStatus.OK Then
            Console.WriteLine($"Error: {status}")
        End If
    Else
        Console.WriteLine($"Load error: {status}")
    End If
End Using
$vbLabelText   $csharpLabel

Sonra (IronPDF):

using IronPdf;

IronPdf.License.LicenseKey = "LICENSE-KEY";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
using IronPdf;

IronPdf.License.LicenseKey = "LICENSE-KEY";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
Imports IronPdf

IronPdf.License.LicenseKey = "LICENSE-KEY"

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Temel Farkliilar:

  • Durum kontrolü yok—hatalarda istisnalar
  • Yorumlayıcı için açıkça imha gereği yok
  • Modern akıcı API
  • Daha iyi HTML/CSS desteği için Chromium tabanlı render

API Referansının Tamamı

Namespace Eşleme

GdPicture.NET SDK IronPDF
GdPicture14 IronPdf
GdPicture14.PDF IronPdf
GdPicture14.Imaging Gereksiz olan (gerek yok)

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

GdPicture.NET SDK IronPDF Tanım
GdPicturePDF PdfDocument Ana PDF belge sınıfı
GdPictureDocumentConverter ChromePdfRenderer HTML/URL'den PDF'e dönüşüm
LicenseManager IronPdf.License Lisans yönetimi
GdPictureStatus İstisnalar Hata yönetimi

Belge Yükleme Yöntemleri

GdPicture.NET SDK IronPDF
pdf.LoadFromFile(path, loadInMemory) PdfDocument.FromFile(path)
pdf.LoadFromFile(path, password, loadInMemory) PdfDocument.FromFile(path, password)
converter.LoadFromHTMLString(html) renderer.RenderHtmlAsPdf(html)
converter.LoadFromURL(url) renderer.RenderUrlAsPdf(url)

Sayfa İşlemleri

GdPicture.NET SDK IronPDF
pdf.GetPageCount() pdf.PageCount
pdf.SelectPage(pageNo) pdf.Pages[index]
pdf.GetPageWidth() pdf.Pages[i].Width
pdf.GetPageHeight() pdf.Pages[i].Height

Birleştir ve Bölme İşlemleri

GdPicture.NET SDK IronPDF
pdf1.MergePages(pdf2) PdfDocument.Merge(pdf1, pdf2)
pdf.ExtractPages(start, end) pdf.CopyPages(indices)

Filigran İşlemleri

GdPicture.NET SDK IronPDF
pdf.DrawText(...) döngü pdf.ApplyWatermark(html)
pdf.SetTextColor(color) CSS stillendirme
pdf.SetTextSize(size) CSS stillendirme

Kod Geçiş Örnekleri

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

Önce (GdPicture.NET SDK):

// NuGet: Install-Package GdPicture.NET
using GdPicture14;
using System;

class Program
{
    static void Main()
    {
        using (GdPictureDocumentConverter converter = new GdPictureDocumentConverter())
        {
            string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
            GdPictureStatus status = converter.LoadFromHTMLString(htmlContent);

            if (status == GdPictureStatus.OK)
            {
                converter.SaveAsPDF("output.pdf");
            }
        }
    }
}
// NuGet: Install-Package GdPicture.NET
using GdPicture14;
using System;

class Program
{
    static void Main()
    {
        using (GdPictureDocumentConverter converter = new GdPictureDocumentConverter())
        {
            string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
            GdPictureStatus status = converter.LoadFromHTMLString(htmlContent);

            if (status == GdPictureStatus.OK)
            {
                converter.SaveAsPDF("output.pdf");
            }
        }
    }
}
Imports GdPicture14
Imports System

Class Program
    Shared Sub Main()
        Using converter As New GdPictureDocumentConverter()
            Dim htmlContent As String = "<html><body><h1>Hello World</h1></body></html>"
            Dim status As GdPictureStatus = converter.LoadFromHTMLString(htmlContent)

            If status = GdPictureStatus.OK Then
                converter.SaveAsPDF("output.pdf")
            End If
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

Sonra (IronPDF):

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

class Program
{
    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;
using System;

class Program
{
    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
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = 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

IronPDF'nin ChromePdfRenderer modern Chromium motorunu kullanır, HTML/CSS tarayıcıları için kesinlik sunarak durum kodu kontrolü ihtiyaçını ortadan kaldırır. Daha fazla HTML işleme seçeneği için, HTML'den PDF'e belgelerine bakın.

Örnek 2: Birden Çok PDF'yi Birleştirin

Önce (GdPicture.NET SDK):

// NuGet: Install-Package GdPicture.NET
using GdPicture14;
using System;

class Program
{
    static void Main()
    {
        using (GdPicturePDF pdf1 = new GdPicturePDF())
        using (GdPicturePDF pdf2 = new GdPicturePDF())
        {
            pdf1.LoadFromFile("document1.pdf", false);
            pdf2.LoadFromFile("document2.pdf", false);

            pdf1.MergePages(pdf2);
            pdf1.SaveToFile("merged.pdf");
        }
    }
}
// NuGet: Install-Package GdPicture.NET
using GdPicture14;
using System;

class Program
{
    static void Main()
    {
        using (GdPicturePDF pdf1 = new GdPicturePDF())
        using (GdPicturePDF pdf2 = new GdPicturePDF())
        {
            pdf1.LoadFromFile("document1.pdf", false);
            pdf2.LoadFromFile("document2.pdf", false);

            pdf1.MergePages(pdf2);
            pdf1.SaveToFile("merged.pdf");
        }
    }
}
Imports GdPicture14
Imports System

Class Program
    Shared Sub Main()
        Using pdf1 As New GdPicturePDF(), pdf2 As New GdPicturePDF()
            pdf1.LoadFromFile("document1.pdf", False)
            pdf2.LoadFromFile("document2.pdf", False)

            pdf1.MergePages(pdf2)
            pdf1.SaveToFile("merged.pdf")
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

Sonra (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
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(new List<PdfDocument> { pdf1, pdf2 });
        merged.SaveAs("merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
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(new List<PdfDocument> { pdf1, pdf2 });
        merged.SaveAs("merged.pdf");
    }
}
Imports IronPdf
Imports System.Collections.Generic

Class Program
    Shared Sub Main()
        Dim pdf1 = PdfDocument.FromFile("document1.pdf")
        Dim pdf2 = PdfDocument.FromFile("document2.pdf")

        Dim merged = PdfDocument.Merge(New List(Of PdfDocument) From {pdf1, pdf2})
        merged.SaveAs("merged.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF'nin statik Merge metodu, bir belge listesini kabul eder, birden fazla PDF'yi tek bir işlemde birleştirmeyi kolaylaştırır. PDF'leri birleştirme ve bölme hakkında daha fazla bilgi edinin.

Örnek 3: Tüm Sayfalara Filigran Ekleme

Önce (GdPicture.NET SDK):

// NuGet: Install-Package GdPicture.NET
using GdPicture14;
using System;
using System.Drawing;

class Program
{
    static void Main()
    {
        using (GdPicturePDF pdf = new GdPicturePDF())
        {
            pdf.LoadFromFile("input.pdf", false);

            for (int i = 1; i <= pdf.GetPageCount(); i++)
            {
                pdf.SelectPage(i);
                pdf.SetTextColor(Color.Red);
                pdf.SetTextSize(48);
                pdf.DrawText("CONFIDENTIAL", 200, 400);
            }

            pdf.SaveToFile("watermarked.pdf");
        }
    }
}
// NuGet: Install-Package GdPicture.NET
using GdPicture14;
using System;
using System.Drawing;

class Program
{
    static void Main()
    {
        using (GdPicturePDF pdf = new GdPicturePDF())
        {
            pdf.LoadFromFile("input.pdf", false);

            for (int i = 1; i <= pdf.GetPageCount(); i++)
            {
                pdf.SelectPage(i);
                pdf.SetTextColor(Color.Red);
                pdf.SetTextSize(48);
                pdf.DrawText("CONFIDENTIAL", 200, 400);
            }

            pdf.SaveToFile("watermarked.pdf");
        }
    }
}
Imports GdPicture14
Imports System
Imports System.Drawing

Module Program
    Sub Main()
        Using pdf As New GdPicturePDF()
            pdf.LoadFromFile("input.pdf", False)

            For i As Integer = 1 To pdf.GetPageCount()
                pdf.SelectPage(i)
                pdf.SetTextColor(Color.Red)
                pdf.SetTextSize(48)
                pdf.DrawText("CONFIDENTIAL", 200, 400)
            Next

            pdf.SaveToFile("watermarked.pdf")
        End Using
    End Sub
End Module
$vbLabelText   $csharpLabel

Sonra (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;

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

        pdf.ApplyWatermark("<h1 style='color:red;'>CONFIDENTIAL</h1>", 50, VerticalAlignment.Middle, HorizontalAlignment.Center);

        pdf.SaveAs("watermarked.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;

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

        pdf.ApplyWatermark("<h1 style='color:red;'>CONFIDENTIAL</h1>", 50, VerticalAlignment.Middle, HorizontalAlignment.Center);

        pdf.SaveAs("watermarked.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Editing

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

        pdf.ApplyWatermark("<h1 style='color:red;'>CONFIDENTIAL</h1>", 50, VerticalAlignment.Middle, HorizontalAlignment.Center)

        pdf.SaveAs("watermarked.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

GdPicture.NET SDK'nın koordinat tabanlı metin çiziminden HTML tabanlı damgalamaya geçişi kodu önemli ölçüde basitleştirir. IronPDF'nin ApplyWatermark metodu HTML/CSS stilini kullanarak manuel sayfa iterasyonu ve koordinat hesaplamasını ortadan kaldırır. Ek seçenekler için tam filigran dokümantasyonuna bakın.

Örnek 4: Parola Koruma ve Güvenlik

Önce (GdPicture.NET SDK):

using GdPicture14;

class Program
{
    static void Main()
    {
        LicenseManager.RegisterKEY("LICENSE-KEY");

        using (GdPicturePDF pdf = new GdPicturePDF())
        {
            GdPictureStatus status = pdf.LoadFromFile("document.pdf", false);

            if (status != GdPictureStatus.OK) return;

            // Save with encryption - many boolean parameters
            status = pdf.SaveToFile(
                "protected.pdf",
                PdfEncryption.PdfEncryption256BitAES,
                "user123",      // User password
                "owner456",     // Owner password
                true,           // Can print
                false,          // Cannot copy
                false,          // Cannot modify
                false,          // Cannot add notes
                true,           // Can fill forms
                false,          // Cannot extract
                false,          // Cannot assemble
                true            // Can print high quality
            );
        }
    }
}
using GdPicture14;

class Program
{
    static void Main()
    {
        LicenseManager.RegisterKEY("LICENSE-KEY");

        using (GdPicturePDF pdf = new GdPicturePDF())
        {
            GdPictureStatus status = pdf.LoadFromFile("document.pdf", false);

            if (status != GdPictureStatus.OK) return;

            // Save with encryption - many boolean parameters
            status = pdf.SaveToFile(
                "protected.pdf",
                PdfEncryption.PdfEncryption256BitAES,
                "user123",      // User password
                "owner456",     // Owner password
                true,           // Can print
                false,          // Cannot copy
                false,          // Cannot modify
                false,          // Cannot add notes
                true,           // Can fill forms
                false,          // Cannot extract
                false,          // Cannot assemble
                true            // Can print high quality
            );
        }
    }
}
Imports GdPicture14

Class Program
    Shared Sub Main()
        LicenseManager.RegisterKEY("LICENSE-KEY")

        Using pdf As New GdPicturePDF()
            Dim status As GdPictureStatus = pdf.LoadFromFile("document.pdf", False)

            If status <> GdPictureStatus.OK Then Return

            ' Save with encryption - many boolean parameters
            status = pdf.SaveToFile(
                "protected.pdf",
                PdfEncryption.PdfEncryption256BitAES,
                "user123",      ' User password
                "owner456",     ' Owner password
                True,           ' Can print
                False,          ' Cannot copy
                False,          ' Cannot modify
                False,          ' Cannot add notes
                True,           ' Can fill forms
                False,          ' Cannot extract
                False,          ' Cannot assemble
                True            ' Can print high quality
            )
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

Sonra (IronPDF):

using IronPdf;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");

        // Configure security settings with clear property names
        pdf.SecuritySettings.OwnerPassword = "owner456";
        pdf.SecuritySettings.UserPassword = "user123";

        // Set permissions
        pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
        pdf.SecuritySettings.AllowUserCopyPasteContent = false;
        pdf.SecuritySettings.AllowUserEdits = PdfEditSecurity.NoEdit;
        pdf.SecuritySettings.AllowUserAnnotations = false;
        pdf.SecuritySettings.AllowUserFormData = true;

        pdf.SaveAs("protected.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");

        // Configure security settings with clear property names
        pdf.SecuritySettings.OwnerPassword = "owner456";
        pdf.SecuritySettings.UserPassword = "user123";

        // Set permissions
        pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
        pdf.SecuritySettings.AllowUserCopyPasteContent = false;
        pdf.SecuritySettings.AllowUserEdits = PdfEditSecurity.NoEdit;
        pdf.SecuritySettings.AllowUserAnnotations = false;
        pdf.SecuritySettings.AllowUserFormData = true;

        pdf.SaveAs("protected.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        Dim pdf = PdfDocument.FromFile("document.pdf")

        ' Configure security settings with clear property names
        pdf.SecuritySettings.OwnerPassword = "owner456"
        pdf.SecuritySettings.UserPassword = "user123"

        ' Set permissions
        pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights
        pdf.SecuritySettings.AllowUserCopyPasteContent = False
        pdf.SecuritySettings.AllowUserEdits = PdfEditSecurity.NoEdit
        pdf.SecuritySettings.AllowUserAnnotations = False
        pdf.SecuritySettings.AllowUserFormData = True

        pdf.SaveAs("protected.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF'nin SecuritySettings özelliği, konumsal boolean parametreler yerine isimlendirilmiş, kendi kendini belgeleyen özellikler sağlar.


Kritik Geçiş Notları

Sayfa İndeksleme Dönüşümü

BuGdPicture.NET SDKgeçişindeki en önemli değişikliklerden biri sayfa indeksleme farkıdır:

// GdPicture.NET SDK:1-indekslipages
for (int i = 1; i <= pdf.GetPageCount(); i++)
{
    pdf.SelectPage(i);
    // process page
}

// IronPDF: 0-indexed pages (standard .NET)
for (int i = 0; i < pdf.PageCount; i++)
{
    var page = pdf.Pages[i];
    // process page
}
// GdPicture.NET SDK:1-indekslipages
for (int i = 1; i <= pdf.GetPageCount(); i++)
{
    pdf.SelectPage(i);
    // process page
}

// IronPDF: 0-indexed pages (standard .NET)
for (int i = 0; i < pdf.PageCount; i++)
{
    var page = pdf.Pages[i];
    // process page
}
Imports GdPicture
Imports IronPdf

' GdPicture.NET SDK:1-indekslipages
For i As Integer = 1 To pdf.GetPageCount()
    pdf.SelectPage(i)
    ' process page
Next

' IronPDF: 0-indexed pages (standard .NET)
For i As Integer = 0 To pdf.PageCount - 1
    Dim page = pdf.Pages(i)
    ' process page
Next
$vbLabelText   $csharpLabel

Durum Kodlarından İstisnalara

Ayrıntılı durum kontrolünü standart bir try-catch ile değiştirin:

// GdPicture.NET SDK
GdPictureStatus status = converter.LoadFromHTMLString(html);
if (status != GdPictureStatus.OK)
{
    Console.WriteLine($"Error: {status}");
    return;
}

// IronPDF
try
{
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("output.pdf");
}
catch (Exception ex)
{
    Console.WriteLine($"Error: {ex.Message}");
}
// GdPicture.NET SDK
GdPictureStatus status = converter.LoadFromHTMLString(html);
if (status != GdPictureStatus.OK)
{
    Console.WriteLine($"Error: {status}");
    return;
}

// IronPDF
try
{
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("output.pdf");
}
catch (Exception ex)
{
    Console.WriteLine($"Error: {ex.Message}");
}
' GdPicture.NET SDK
Dim status As GdPictureStatus = converter.LoadFromHTMLString(html)
If status <> GdPictureStatus.OK Then
    Console.WriteLine($"Error: {status}")
    Return
End If

' IronPDF
Try
    Dim pdf = renderer.RenderHtmlAsPdf(html)
    pdf.SaveAs("output.pdf")
Catch ex As Exception
    Console.WriteLine($"Error: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

Birim Dönüşümü

GdPicture.NET SDK kenar boşlukları için inç kullanır;IronPDFmilimetre kullanır:

// GdPicture.NET SDK: 0.5 inches margin
converter.HtmlSetMargins(0.5f, 0.5f, 0.5f, 0.5f);

// IronPDF: 0.5 inches = 12.7 mm
renderer.RenderingOptions.MarginTop = 12.7;
renderer.RenderingOptions.MarginBottom = 12.7;
renderer.RenderingOptions.MarginLeft = 12.7;
renderer.RenderingOptions.MarginRight = 12.7;
// GdPicture.NET SDK: 0.5 inches margin
converter.HtmlSetMargins(0.5f, 0.5f, 0.5f, 0.5f);

// IronPDF: 0.5 inches = 12.7 mm
renderer.RenderingOptions.MarginTop = 12.7;
renderer.RenderingOptions.MarginBottom = 12.7;
renderer.RenderingOptions.MarginLeft = 12.7;
renderer.RenderingOptions.MarginRight = 12.7;
' GdPicture.NET SDK: 0.5 inches margin
converter.HtmlSetMargins(0.5F, 0.5F, 0.5F, 0.5F)

' IronPDF: 0.5 inches = 12.7 mm
renderer.RenderingOptions.MarginTop = 12.7
renderer.RenderingOptions.MarginBottom = 12.7
renderer.RenderingOptions.MarginLeft = 12.7
renderer.RenderingOptions.MarginRight = 12.7
$vbLabelText   $csharpLabel

Dönüşüm formülü: millimeters = inches × 25.4

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

GdPicture.NET SDK eşzamanlı işlemler için manuel senkronizasyon gerektirir. IronPDF'nin ChromePdfRenderer tasarım gereği thread-safe'dir, çok iş parçacıklı PDF oluşturmayı basitleştirir.


Performans Dikkat Edilecek Noktalar

ChromePdfRenderer'ı Yeniden Kullanma

Optimum performans için yorumlayıcı örneğini tekrar kullanın:

// GOOD - Reuse renderer (thread-safe)
public class PdfService
{
    private static readonly ChromePdfRenderer _renderer = new ChromePdfRenderer();

    public byte[] Generate(string html) => _renderer.RenderHtmlAsPdf(html).BinaryData;
}

// BAD - Creates new instance each time
public byte[] GenerateBad(string html)
{
    var renderer = new ChromePdfRenderer();  // Wasteful
    return renderer.RenderHtmlAsPdf(html).BinaryData;
}
// GOOD - Reuse renderer (thread-safe)
public class PdfService
{
    private static readonly ChromePdfRenderer _renderer = new ChromePdfRenderer();

    public byte[] Generate(string html) => _renderer.RenderHtmlAsPdf(html).BinaryData;
}

// BAD - Creates new instance each time
public byte[] GenerateBad(string html)
{
    var renderer = new ChromePdfRenderer();  // Wasteful
    return renderer.RenderHtmlAsPdf(html).BinaryData;
}
Imports System

Public Class PdfService
    Private Shared ReadOnly _renderer As New ChromePdfRenderer()

    Public Function Generate(html As String) As Byte()
        Return _renderer.RenderHtmlAsPdf(html).BinaryData
    End Function

    ' BAD - Creates new instance each time
    Public Function GenerateBad(html As String) As Byte()
        Dim renderer As New ChromePdfRenderer() ' Wasteful
        Return renderer.RenderHtmlAsPdf(html).BinaryData
    End Function
End Class
$vbLabelText   $csharpLabel

Doğru Kaynak İmhası

// Use using statements for automatic cleanup
using (var pdf = PdfDocument.FromFile("large.pdf"))
{
    string text = pdf.ExtractAllText();
}  // pdf is disposed automatically
// Use using statements for automatic cleanup
using (var pdf = PdfDocument.FromFile("large.pdf"))
{
    string text = pdf.ExtractAllText();
}  // pdf is disposed automatically
Imports PdfDocument

' Use Using blocks for automatic cleanup
Using pdf = PdfDocument.FromFile("large.pdf")
    Dim text As String = pdf.ExtractAllText()
End Using ' pdf is disposed automatically
$vbLabelText   $csharpLabel

Goc Kontrol Listesi

Geçiş Öncesi

  • Kod tabanında tümGdPicture.NET SDKkullanımını envanterleyin
  • Hangi özelliklerin gerçekten kullanıldığını belirleyin (PDF vsOCRvs barkod)
  • OCR/barkod özelliklerine ihtiyaçınız olup olmadığını belirleyin (IronOCR/IronBarcode'u düşünün)
  • Mevcut lisanslamayı gözden geçirin veIronPDFfiyatlarıyla karşılaştırın -IronPDFlisans anahtarını edinin
  • Sürüm kontrolünde bir geçiş dalı oluşturun

Kod Göçü

-GdPicture.NET SDKNuGet paketlerini kaldırın: dotnet remove package GdPicture.NET

  • IronPdf NuGet paketini yükleyin: dotnet add package IronPdf
  • İsim alanı ithalatlarını güncelleyin (GdPicture14IronPdf)
  • LicenseManager.RegisterKEY()'yi IronPdf.License.LicenseKey ile değiştirin
  • Durum kodu kontrollerini try-catch bloklarına dönüştürün
  • Sayfa indekslemesini güncelleyin (1-indeksli → 0-indeksli)
  • GdPicturePDF'yi PdfDocument ile değiştirin
  • GdPictureDocumentConverter'yi ChromePdfRenderer ile değiştirin
  • Koordinat tabanlı metni HTML damgalamasına dönüştürün
  • Birim dönüşümlerini güncelleyin (inç → milimetre)

Test Etme

  • Tüm PDF üretim yollarını birim test edin
  • HTML render kalite seviyesinin eşdeğer veya üstü olduğunu doğrulayın
  • Tüm güvenlik/şifreleme senaryolarını test edin
  • Form doldurma işlevselliğini doğrulayın
  • Birleştirme/bölme işlemlerini test edin
  • Filigran görünümünü doğrulayın
  • Kritik yolları performans kıyaslayarak değerlendirin

Geçişten Sonra

-GdPicture.NET SDKlisans dosyalarını/anahtarlarını kaldırın

  • Belgeleri güncelleyin
  • TakımaIronPDFAPI desenlerini öğretin
  • Ü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