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:
-
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.
-
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.
-
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.
-
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(),GdPictureStatusenum kontrolü ve 1-indeksli sayfalar gibi günümüze göre tarihli hissettiriyor, çağdaş C# konvansiyonlarına kıyasla. -
Durum Kodu Deseni: Her işlem bir
GdPictureStatusenum döndürüyor ve bu kontrol edilmeli—hatalarda istisna fırlatılmıyor, hata ayıklamayı uzun ve tekrarlı yapıyor. -
Manuel Kaynak Yönetimi: Açıkça
Dispose()veyaRelease()çağrılarını gerektiriyor. SDK, standart .NET kaynak temizleme kalıplarını düzgün şekilde takip etmez. -
Sürüm Bağımlılığı:
GdPicture14isim 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. - 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
- .NET Sürümü: IronPDF, .NET Framework 4.6.2+ ve .NET Core 2.0+ / .NET 5/6/7/8/9+ destekler
- Lisans Anahtarı:IronPDFlisans anahtarınızı ironpdf.com'dan alın
- 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" .
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
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")
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" }
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
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
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")
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
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
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
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
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
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
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
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
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
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
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
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
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
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 (
GdPicture14→IronPdf) LicenseManager.RegisterKEY()'yiIronPdf.License.LicenseKeyile değiştirin- Durum kodu kontrollerini try-catch bloklarına dönüştürün
- Sayfa indekslemesini güncelleyin (1-indeksli → 0-indeksli)
GdPicturePDF'yiPdfDocumentile değiştirinGdPictureDocumentConverter'yiChromePdfRendererile 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

