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

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

GdPicture.NET SDK'dan IronPDF'ye geçiş, .NET geliştiricileri için PDF üretimine odaklanmış, akıcı bir yaklaşım sunar. Bu rehber, karmaşık belge görüntüleme SDK kalıplarını modern, PDF özel API'lere sahip güncel .NET geliştirmesi için tasarlanmış bir yol sunar ve kapsamlı, adım adım bir geçiş yolu sağlar.

GdPicture.NET SDK'dan IronPDF'e Neden Geçmeli

GdPicture.NET SDK Zorlukları

GdPicture.NET SDK (şimdi Nutrient olarak yeniden markalandı) PDF odaklı geliştirme için birkaç zorluğu olan kapsamlı bir belge görüntüleme SDK'sıdır:

  1. Sadece PDF İçerikli Projeler için Aşırı: GdPicture.NET SDK, OCR, barkod tanıma, tarama ve görüntü işleme dahil olmak üzere tam bir belge görüntüleme paketidir. Sadece PDF işlevselliğine ihtiyacınız varsa, asla kullanmayacağınız özellikler için ödeme yapıyorsunuz.

  2. Karmaşık Lisanslama: Çeşitli ürün kademeleri (GdPicture.NET 14, GdPicture.API, Ultimate, Professional) ve kafa karıştırıcı SKU kombinasyonları ile yıllık abonelik gereklilikleri.

  3. Kurumsal Fiyatlandırma: Tek başına PDF plugin için lisans maliyetleri $2.999'dan başlar ve Ultimate sürümü için $10.000+ 'ya kadar çıkar. Her geliştirici için lisanslama, büyüyen ekipler için önemli bir genel gider ekler.

  4. Dik Öğrenme Eğrisi: API, modern .NET kalıplarına göre değil, belge görüntüleme kavramları etrafında tasarlanmıştır. Güncel C# konvansiyonlarına kıyasla, LicenseManager.RegisterKEY() gibi yöntemler, GdPictureStatus enum kontrolü ve 1-indeksli sayfalar eski görünüyor.

  5. Durum Kodu Deseni: Her işlem, kontrol edilmesi gereken bir GdPictureStatus enum döndürür—hatalarda hiçbir istisna atılmaz, bu da hata yönetimini ayrıntılı ve tekrarlı hale getirir.

  6. Manuel Kaynak Yönetimi: Açık bir Dispose() veya Release() çağrısı gerektirir. SDK, standart .NET imha kalıplarını temiz bir şekilde takip etmez.

  7. Sürüm Bağlılığı: GdPicture14 isim alanı, sürüm numarasını içerir, bu nedenle büyük sürüm yükseltmeleri tüm kod tabanınızda isim alanı değişiklikleri gerektirir.

  8. Rebranding Karışıklığı: 'Nutrient' olarak yakın zamanda yeniden markalandırma, gdpicture.com ve nutrient.io arasında belgelerin bölünmesine neden olur, bu da destek ve öğrenmeyi karmaşık hale getirir.

GdPicture.NET SDK ve IronPDF Karşılaştırması

Aspekt GdPicture.NET SDK IronPDF
Odak Belge görüntüleme paketi (PDF için gereksiz) PDF'ye özgü kütüphane
Fiyatlandırma $2,999-$10,000+ kurumsal kademe Rekabetçi, iş ile ölçeklenir
API Tarzı Durum kodları, manuel yönetim İstisnalar, IDisposable, modern .NET
Öğrenme Eğrisi Zor (görüntüleme SDK kavramları) Basit (HTML/CSS tanıdık)
HTML İşleme Temel, dahili motor En son Chromium, CSS3/JS ile
Sayfa İçin Dizimleme 1-indexli 0-indexli (standart .NET)
İş Parçacığı Güvenliği Manuel senkronizasyon gereklidir Tasarımı gereği iş parçacığı güvenli
Namespace Sürüme özgü (GdPicture14) Stabil (IronPdf)

IronPDF, modern .NET kalıpları ve gelenekleri ile uyumludur ve mevcut .NET sürümleri için doğrudan bir uyum sağlar.


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

Özelliklere Göre Tahmini Çaba

Özellik Göç Karmaşıklığı
HTML'den PDF'ye Düşük
URL'yi PDF'ye çevir Düşük
PDF'leri birleştir Düşük
PDF Ayırma Düşük
Filigranlar Düşük
Metin Çıkarma Düşük
Şifre Koruması Orta
Form Alanları Orta
Dijital İmzalar Orta-Yüksek
OCR Yüksek
Barkod Tanıma Yok

Geçiş Karar Matrisi

Durumunuz Öneri
Sadece PDF işlemleri Geçiş yapın - önemli basitleştirme ve maliyet tasarrufu
YoğunOCRkullanımı IronOCR'yu yardımcı ürün olarak düşünün
Barkod/tarama ihtiyaçları Bu özellikler içinGdPicture.NET SDKkullanın, PDF için IronPDF kullanın
Tam belge görüntüleme Tüm özellikleri gerçekten kullanıp kullanmadığınızı değerlendirin

Başlamadan Önce

Ön Koşullar

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

TümGdPicture.NET SDKKullanımını Tanımla

# 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

Sonrası (IronPDF):

// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

// Or in appsettings.json:
// { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }
// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

// Or in appsettings.json:
// { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }
Imports IronPdf

' Set once at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"

' Or in appsettings.json:
' { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }
$vbLabelText   $csharpLabel

Adım 2: Ad Alanı İthalatları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üştürme Kalıbı

GdPicture.NET SDK geçişindeki en önemli değişiklik, ayrıntılı durum-kontrol kalıbını ortadan kaldırmaktır:

Önce (GdPicture.NET SDK):

using GdPicture14;

LicenseManager.RegisterKEY("YOUR-GDPICTURE-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("YOUR-GDPICTURE-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("YOUR-GDPICTURE-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

Sonrası (IronPDF):

using IronPdf;

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

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

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

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

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

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

Ana Farklılıklar:

  • Durum kontrolü yok - hatalarda istisnalar
  • İşleyici için açık imha gerekmez
  • Modern akıcı API
  • Daha iyi HTML/CSS desteği için Chromium tabanlı işleme

Tam API Referansı

Namespace Haritalama

GdPicture.NET SDK IronPDF
GdPicture14 IronPdf
GdPicture14.PDF IronPdf
GdPicture14.Imaging Yok(gerekli değil)

Temel Sınıf Eşlemeleri

GdPicture.NET SDK IronPDF Açıklama
GdPicturePDF PdfDocument Ana PDF döküman sınıfı
GdPictureDocumentConverter ChromePdfRenderer HTML/URL'den PDF'e dönüşüm
LicenseManager IronPdf.License Lisans yönetimi
GdPictureStatus Istisnalar Hata işleme

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ştirme 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 Göç Örnekleri

Örnek 1: HTML'den PDF'ye 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

Sonrası (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, durum kodu kontrolü ihtiyacını ortadan kaldıran doğru HTML/CSS işleme için modern bir Chromium motoru kullanır. Daha fazla HTML renderleme seçeneği için, HTML'den PDF'ye dokümantasyona bakın.

Örnek 2: Birden Fazla PDF Birleştir

Ö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

Sonrası (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 yöntemi, bir belge listesini kabul eder, bu da birden fazla PDF'yi tek bir işlemde birleştirmeyi kolaylaştırır. Daha fazla bilgi edinin PDF birleştirme ve bölme.

Örnek 3: Tüm Sayfalara Filigran Ekle

Ö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

Sonrası (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'da koordinat tabanlı metin çiziminden HTML tabanlı filigranlamaya geçiş, kodu önemli ölçüde basitleştirir. IronPDF'nin ApplyWatermark yöntemi, manuel sayfa yinelemesi ve koordinat hesaplamalarını ortadan kaldırarak HTML/CSS stilini kullanır. Ek seçenekler için filigran dokümantasyonunu görün.

Örnek 4: Şifre Koruması ve Güvenlik

Önce (GdPicture.NET SDK):

using GdPicture14;

class Program
{
    static void Main()
    {
        LicenseManager.RegisterKEY("YOUR-GDPICTURE-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("YOUR-GDPICTURE-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("YOUR-GDPICTURE-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

Sonrası (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 adlandırılmış, kendini dökümante eden özellikler sağlar.


Kritik Taşıma 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-indexlipages
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-indexlipages
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-indexed pages
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ı ve İstisnalar

Daha ayrıntılı durum kontrolünü standart 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;IronPDF milimetre 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 iş parçacığı güvenliğindedir, bu da çoklu iş parçacıklı PDF üretimini basitleştirir.


Performans Dikkat Edilecek Hususlar

ChromePdfRenderer'ı Yeniden Kullanın

Optimal performans için, işlendiı tasarımı yineleyin:

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

Kaynakların Doğru Şekilde Atılması

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

Geçiş Kontrol Listesi

Öncesi-Geçiş

  • Kod tabanındaki tümGdPicture.NET SDKkullanımını envanterleyin
  • Hangi özelliklerin gerçekten kullanıldığını belirleyin (PDF vsOCRvs barkod)
  • OCR/barkod özelliklerine ihtiyaç olup olmadığını belirleyin (IronOCR/IronBarcode dikkate alın)
  • Mevcut lisanslamayı inceleyin ve IronPDF fiyatlarıyla karşılaştırın -IronPDF lisans anahtarını edinin
  • Sürüm kontrolünde geçiş dalı oluşturun

Kod Geçişi

-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() ile IronPdf.License.LicenseKey değiştirin
  • Durum kodu kontrollerini try-catch bloklarına dönüştürün
  • Sayfa indekslemeyi güncelleyin (1-indeksli → 0-indeksli)
  • GdPicturePDF ile PdfDocument değiştirin
  • GdPictureDocumentConverter ile ChromePdfRenderer 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 oluşturma yollarını birim testi yapın
  • HTML render kalitesinin eşleştiğinden veya aştığından emin olun
  • 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 benchmark yapın

Geçiş Sonrası

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

  • Belgeleri güncelleyin
  • TakımıIronPDF API modelleri hakkında eğitin
  • Herhangi bir sorunu izlemek için üretimi takip edin

Lütfen dikkate alınGdPicture.NET ve Nutrient kendi sahiplerinin tescilli markalarıdır. Bu site, Nutrient, ORPALIS veya PSPDFKit ile bağlantılı, onaylanmış ya da sponsor edilmiş değildir. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

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