Gnostice PDFOne'dan IronPDF'e C# ile Nasıl Geçilir
Gnostice PDFOne'dan IronPDF'e geçiş, .NET PDF iş akışınızı koordinat tabanlı, platforma çözümlenmiş bir yaklaşımdan, modern web standartlarının tam desteğiyle birleşik, HTML/CSS destekli bir çözüme dönüştürür. Bu kılavuz, profesyonel .NET geliştiricileri için CSS, JavaScript ve bellek kararlılığı etrafındaki belgelenmiş sınırlamaları ortadan kaldıran kapsamlı, adım adım bir geçiş yolu sağlar.
Neden Gnostice PDFOne'dan IronPDF'e Geçiş Yapılmalı
Gnostice PDFOneZorlukları
Gnostice PDFOne ve Document Studio .NET, üretim uygulamalarını etkileyen iyi belgelenmiş sınırlamalara sahip. Eski PDFOne.NET NuGet paketi de şimdi kullanımdan kaldırıldı (son sürüm 24.1.60, 1 Temmuz 2024), satıcı yeni çalışmaları Gnostice.DocumentStudio.* paketlerine yönlendiriyor:
-
Dışarıdan CSS Desteği Yok: Gnostice PDFOne'ın belgeleri, modern web'den PDF dönüşümü için temel bir gereklilik olan dış CSS stil sayfalarını desteklemediğini açıkça belirtir.
-
JavaScript Yürütme Yok: JavaScript gerektiren dinamik içerik oluşturulamaz, bu da modern web uygulamalarının doğru şekilde dönüştürülmesini imkansız hale getirir.
-
Doğrudan HTML'den PDF'ye Dönüştürme Yok:Gnostice PDFOnedoğrudan HTML'den PDF'ye dönüştürme yapamaz. HTML dönüştürmesi için Document Studio kullanmanız veya HTML öğelerini manuel olarak ayrıştırıp işlemeniz gerekir, bu da önemli bir geliştirme yükü yaratır.
-
Platform Parçalanması: WinForms, WPF, ASP.NET, Xamarin için ayrı ürünler - her biri farklı özellik setleri ve API'lerle. Birden fazla lisans ve kod tabanı gerekebilir.
-
Bellek Sızıntıları ve Kararlılık: Kullanıcı forumları ve Stack Overflow, kalıcı bellek sızıntıları, JPEG Hatası #53 ve resim işleme sırasında oluşan StackOverflow hatalarını bildirmektedir.
-
Sağdan Sola Unicode Desteği Yok: Arapça, İbranice ve diğer RTL dilleri açıkça desteklenmez - uluslararası uygulamalar için bir engel.
-
Sınırlı Dijital İmza Desteği: Dijital imzalar tarihsel olarak Gnostice PDFOne'da eksik veya güvenilmez olmuştur.
- Koordinat Tabanlı API: Birçok işlem, modern düzen yaklaşımları yerine manuel X/Y konumlandırma gerektirir ve her öğenin yerleştirilmesi için hassas hesaplamalar gerekir.
Gnostice PDFOneve IronPDF Karşılaştırması
| Aspekt | Gnostice PDFOne | IronPDF |
|---|---|---|
| Dış CSS | Desteklenmiyor | Desteklenen |
| JavaScript Yürütme | Desteklenmiyor | Tam Chrome motoru |
| RTL Dilleri | Desteklenmiyor | Tam Unicode desteği |
| Dijital İmzalar | Sınırlı/Kayıp | Tam X509 desteği |
| Platform | Parçalı ürünler | Tek birleşik kütüphane |
| Bellek İstikrarı | Raporlanan sorunlar | Kararlı, iyi yönetilen |
| HTML'den PDF'ye | Temel, geçici çözümler gerektirir | Chrome kalitesinde renderleme |
| Öğrenme Eğrisi | Karmaşık API | Basit, sezgisel API |
| Modern CSS (Flexbox, Grid) | Desteklenmiyor | Tam CSS3 desteği |
| Görüntü İşleme | Bilinen sorunlar | Güvenilir |
.NET 10 ve C# 14 benimsemesini planlayan ekipler için,IronPDF tüm .NET platformları genelinde tutarlı bir şekilde çalışan tek bir kütüphane sağlar.
Göç Karmaşıklığı Değerlendirmesi
Özelliklere Göre Tahmini Çaba
| Özellik | Göç Karmaşıklığı |
|---|---|
| PDF'leri Yükle/Kaydet | Çok Düşük |
| PDF'leri birleştir | Çok Düşük |
| PDF Ayırma | Düşük |
| Metin Çıkarma | Düşük |
| Filigranlar | Düşük |
| Başlıklar/Altbilgiler | Düşük |
| HTML'den PDF'ye | Düşük |
| Şifreleme | Orta |
| Form Alanları | Orta |
| Dijital İmzalar | Düşük |
Kazandığınız Özellikler
Gnostice PDFOne'dan IronPDF'e geçildiğinde, önceden imkansız olan bu özellikler kullanılabilir hale gelir:
- Dış CSS stil sayfaları
- JavaScript çalıştırması
- RTL dil desteği (Arapça, İbranice)
- CSS Grid ve Flexbox
- Güvenilir dijital imzalar
- Daha iyi bellek yönetimi
- Tek bir kod tabanı ile çapraz platform desteği
Başlamadan Önce
Ön Koş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ı:IronPDF lisans anahtarınızı ironpdf.com'dan edinin
- Yedekleme: Geçiş çalışmaları için bir dal oluşturun
TümGnostice PDFOneKullanımını Belirleyin
# Find all Gnostice references
grep -r "Gnostice\|PDFOne\|PDFDocument\|PDFPage\|DocExporter" --include="*.cs" .
# Find package references
grep -r "Gnostice\|PDFOne" --include="*.csproj" .
# Find all Gnostice references
grep -r "Gnostice\|PDFOne\|PDFDocument\|PDFPage\|DocExporter" --include="*.cs" .
# Find package references
grep -r "Gnostice\|PDFOne" --include="*.csproj" .
NuGet Paket Değişiklikleri
# Remove Gnostice packages (PDFOne.NET is the legacy, deprecated package)
dotnet remove package PDFOne.NET
dotnet remove package Gnostice.DocumentStudio.WinForms
dotnet remove package Gnostice.DocumentStudio.WPF
dotnet remove package Gnostice.DocumentStudio.ASP
dotnet remove package Gnostice.DocumentStudio.ASP.Core
dotnet remove package Gnostice.DocumentStudio.Xamarin
# Install IronPDF
dotnet add package IronPdf
# Remove Gnostice packages (PDFOne.NET is the legacy, deprecated package)
dotnet remove package PDFOne.NET
dotnet remove package Gnostice.DocumentStudio.WinForms
dotnet remove package Gnostice.DocumentStudio.WPF
dotnet remove package Gnostice.DocumentStudio.ASP
dotnet remove package Gnostice.DocumentStudio.ASP.Core
dotnet remove package Gnostice.DocumentStudio.Xamarin
# Install IronPDF
dotnet add package IronPdf
Hızlı Başlangıç Göçü
Adım 1: Lisans Yapılandırmasını Güncelleyin
Önce (Gnostice PDFOne):
//Gnostice PDFOnelicense is set via the static PDFOne class
Gnostice.PDFOne.PDFOne.LicenseKey = "YOUR-GNOSTICE-LICENSE";
//Gnostice PDFOnelicense is set via the static PDFOne class
Gnostice.PDFOne.PDFOne.LicenseKey = "YOUR-GNOSTICE-LICENSE";
Imports Gnostice.PDFOne
' Gnostice PDFOnelicense is set via the static PDFOne class
PDFOne.LicenseKey = "YOUR-GNOSTICE-LICENSE"
Sonrası (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ı İthalatlarını Güncelleyin
// Before (Gnostice PDFOne)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Document;
using Gnostice.PDFOne.Graphics;
// After (IronPDF)
using IronPdf;
using IronPdf.Editing;
// Before (Gnostice PDFOne)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Document;
using Gnostice.PDFOne.Graphics;
// After (IronPDF)
using IronPdf;
using IronPdf.Editing;
Imports IronPdf
Imports IronPdf.Editing
Tam API Referansı
Temel Sınıf Eşlemeleri
| Gnostice PDFOne | IronPDF | Açıklama |
|---|---|---|
PDFDocument |
PdfDocument |
Ana PDF döküman sınıfı |
PDFPage |
PdfDocument.Pages[i] |
Sayfa temsili |
PDFFont |
CSS stillendirme | Yazı tipi belirtimi |
PDFTextElement |
HTML içeriği | Metin içeriği |
PDFImageElement |
HTML <img> etiketleri |
Görüntü içeriği |
DocExporter |
ChromePdfRenderer |
HTML/URL'den PDF'e dönüşüm |
Belge İşlemleri
| Gnostice PDFOne | IronPDF |
|---|---|
new PDFDocument() |
new PdfDocument() |
doc.Load(path) |
PdfDocument.FromFile(path) |
doc.Open() |
N/A (otomatik) |
doc.Save(path) |
pdf.SaveAs(path) |
doc.Close() |
pdf.Dispose() |
doc.Pages.Count |
pdf.PageCount |
doc.Pages.Add() |
HTML render yap veya birleştir |
Birleştirme İşlemleri
| Gnostice PDFOne | IronPDF |
|---|---|
doc.Append(otherDoc) |
PdfDocument.Merge(pdf1, pdf2) |
Birden çok Append() çağrısı |
PdfDocument.Merge(list) |
Kod Göç Örnekleri
Örnek 1: HTML'den PDF'ye Dönüştürme
Önce (Gnostice PDFOne):
// NuGet: Install-Package PDFOne.NET (deprecated; vendor recommends Gnostice.DocumentStudio.WinForms)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Graphics;
using System;
class Program
{
static void Main()
{
PDFDocument doc = new PDFDocument();
doc.Open();
PDFPage page = doc.Pages.Add();
// PDFOne doesn't have direct HTML'den PDF'ye conversion
// You need to use Document Studio for HTML conversion
// Or manually parse and render HTML elements
PDFTextElement textElement = new PDFTextElement();
textElement.Text = "Simple text conversion instead of HTML";
textElement.Draw(page, 10, 10);
doc.Save("output.pdf");
doc.Close();
}
}
// NuGet: Install-Package PDFOne.NET (deprecated; vendor recommends Gnostice.DocumentStudio.WinForms)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Graphics;
using System;
class Program
{
static void Main()
{
PDFDocument doc = new PDFDocument();
doc.Open();
PDFPage page = doc.Pages.Add();
// PDFOne doesn't have direct HTML'den PDF'ye conversion
// You need to use Document Studio for HTML conversion
// Or manually parse and render HTML elements
PDFTextElement textElement = new PDFTextElement();
textElement.Text = "Simple text conversion instead of HTML";
textElement.Draw(page, 10, 10);
doc.Save("output.pdf");
doc.Close();
}
}
Imports Gnostice.PDFOne
Imports Gnostice.PDFOne.Graphics
Imports System
Module Program
Sub Main()
Dim doc As New PDFDocument()
doc.Open()
Dim page As PDFPage = doc.Pages.Add()
' PDFOne doesn't have direct HTML to PDF conversion
' You need to use Document Studio for HTML conversion
' Or manually parse and render HTML elements
Dim textElement As New PDFTextElement()
textElement.Text = "Simple text conversion instead of HTML"
textElement.Draw(page, 10, 10)
doc.Save("output.pdf")
doc.Close()
End Sub
End Module
Sonrası (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<h1>Hello World</h1><p>This is HTML content.</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<h1>Hello World</h1><p>This is HTML content.</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim html As String = "<h1>Hello World</h1><p>This is HTML content.</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
Fark önemli:Gnostice PDFOneHTML'yi doğrudan PDF'ye dönüştüremez - metin öğelerini manuel olarak oluşturmanız ve koordinatlar ile yerleştirmeniz gerekir. IronPDF'nin ChromePdfRenderer tam CSS3 ve JavaScript desteği ile doğrudan HTML oluşturma sağlar. Daha fazla renderleme seçenekleri için HTML'den PDF'ye dökümantasyon'a bakın.
Örnek 2: PDF Dosyalarını Birleştirin
Önce (Gnostice PDFOne):
// NuGet: Install-Package PDFOne.NET (deprecated; vendor recommends Gnostice.DocumentStudio.WinForms)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Document;
using System;
class Program
{
static void Main()
{
PDFDocument doc1 = new PDFDocument();
doc1.Load("document1.pdf");
PDFDocument doc2 = new PDFDocument();
doc2.Load("document2.pdf");
PDFDocument mergedDoc = new PDFDocument();
mergedDoc.Open();
mergedDoc.Append(doc1);
mergedDoc.Append(doc2);
mergedDoc.Save("merged.pdf");
doc1.Close();
doc2.Close();
mergedDoc.Close();
}
}
// NuGet: Install-Package PDFOne.NET (deprecated; vendor recommends Gnostice.DocumentStudio.WinForms)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Document;
using System;
class Program
{
static void Main()
{
PDFDocument doc1 = new PDFDocument();
doc1.Load("document1.pdf");
PDFDocument doc2 = new PDFDocument();
doc2.Load("document2.pdf");
PDFDocument mergedDoc = new PDFDocument();
mergedDoc.Open();
mergedDoc.Append(doc1);
mergedDoc.Append(doc2);
mergedDoc.Save("merged.pdf");
doc1.Close();
doc2.Close();
mergedDoc.Close();
}
}
Imports Gnostice.PDFOne
Imports Gnostice.PDFOne.Document
Imports System
Module Program
Sub Main()
Dim doc1 As New PDFDocument()
doc1.Load("document1.pdf")
Dim doc2 As New PDFDocument()
doc2.Load("document2.pdf")
Dim mergedDoc As New PDFDocument()
mergedDoc.Open()
mergedDoc.Append(doc1)
mergedDoc.Append(doc2)
mergedDoc.Save("merged.pdf")
doc1.Close()
doc2.Close()
mergedDoc.Close()
End Sub
End Module
Sonrası (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
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(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
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(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}
Imports IronPdf
Imports System
Imports System.Collections.Generic
Module Program
Sub Main()
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
End Sub
End Module
Gnostice PDFOne yaklaşımı, yeni bir belge oluşturmayı, açmayı, kaynak belgeleri ayrı ayrı yüklemeyi, her birini eklemeyi ve tüm üç belgeyi manuel olarak kapatmayı gerektirir. IronPDF'nin statik Merge metodu, uygun kaynak yönetimi ile üç satırda bunu halleder. Daha fazla bilgi edinin PDF birleştirme ve bölme.
Örnek 3: PDF'ye Filigran Ekleme
Önce (Gnostice PDFOne):
// NuGet: Install-Package PDFOne.NET (deprecated; vendor recommends Gnostice.DocumentStudio.WinForms)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Graphics;
using System;
using System.Drawing;
class Program
{
static void Main()
{
PDFDocument doc = new PDFDocument();
doc.Load("input.pdf");
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 48);
foreach (PDFPage page in doc.Pages)
{
PDFTextElement watermark = new PDFTextElement();
watermark.Text = "CONFIDENTIAL";
watermark.Font = font;
watermark.Color = Color.FromArgb(128, 255, 0, 0);
watermark.RotationAngle = 45;
watermark.Draw(page, 200, 400);
}
doc.Save("watermarked.pdf");
doc.Close();
}
}
// NuGet: Install-Package PDFOne.NET (deprecated; vendor recommends Gnostice.DocumentStudio.WinForms)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Graphics;
using System;
using System.Drawing;
class Program
{
static void Main()
{
PDFDocument doc = new PDFDocument();
doc.Load("input.pdf");
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 48);
foreach (PDFPage page in doc.Pages)
{
PDFTextElement watermark = new PDFTextElement();
watermark.Text = "CONFIDENTIAL";
watermark.Font = font;
watermark.Color = Color.FromArgb(128, 255, 0, 0);
watermark.RotationAngle = 45;
watermark.Draw(page, 200, 400);
}
doc.Save("watermarked.pdf");
doc.Close();
}
}
Imports Gnostice.PDFOne
Imports Gnostice.PDFOne.Graphics
Imports System
Imports System.Drawing
Module Program
Sub Main()
Dim doc As New PDFDocument()
doc.Load("input.pdf")
Dim font As New PDFFont(PDFStandardFont.Helvetica, 48)
For Each page As PDFPage In doc.Pages
Dim watermark As New PDFTextElement()
watermark.Text = "CONFIDENTIAL"
watermark.Font = font
watermark.Color = Color.FromArgb(128, 255, 0, 0)
watermark.RotationAngle = 45
watermark.Draw(page, 200, 400)
Next
doc.Save("watermarked.pdf")
doc.Close()
End Sub
End Module
Sonrası (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
var watermark = new TextStamper()
{
Text = "CONFIDENTIAL",
FontSize = 48,
Opacity = 50,
Rotation = 45,
VerticalAlignment = VerticalAlignment.Middle,
HorizontalAlignment = HorizontalAlignment.Center
};
pdf.ApplyStamp(watermark);
pdf.SaveAs("watermarked.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
var watermark = new TextStamper()
{
Text = "CONFIDENTIAL",
FontSize = 48,
Opacity = 50,
Rotation = 45,
VerticalAlignment = VerticalAlignment.Middle,
HorizontalAlignment = HorizontalAlignment.Center
};
pdf.ApplyStamp(watermark);
pdf.SaveAs("watermarked.pdf");
}
}
Imports IronPdf
Imports IronPdf.Editing
Imports System
Module Program
Sub Main()
Dim pdf = PdfDocument.FromFile("input.pdf")
Dim watermark = New TextStamper() With {
.Text = "CONFIDENTIAL",
.FontSize = 48,
.Opacity = 50,
.Rotation = 45,
.VerticalAlignment = VerticalAlignment.Middle,
.HorizontalAlignment = HorizontalAlignment.Center
}
pdf.ApplyStamp(watermark)
pdf.SaveAs("watermarked.pdf")
End Sub
End Module
Gnostice PDFOne yaklaşımı, PDFFont nesnelerinin oluşturulmasını, sayfalar arasında manuel geçiş yapılmasını, koordinatların (200, 400) hesaplanmasını ve PDFTextElement nesneleri üzerinde özelliklerin ayarlanmasını gerektirir. IronPDF'nin TextStamper otomatik merkezleme ve sayfa uygulamaları ile bildirimci konfigürasyon sağlar—koordinat hesaplamaları gerekmez. Filigran belgelerini ek seçenekler için inceleyin.
Kritik Taşıma Notları
Koordinat Tabanlıdan HTML/CSS Düzenine
BuGnostice PDFOnegeçişindeki en önemli paradigm değişikliği, koordinat tabanlı yerleştirmeden HTML/CSS düzenine geçiştir:
// Gnostice PDFOne: Manual coordinate positioning
watermark.Draw(page, 200, 400); // X=200, Y=400
// IronPDF: Declarative alignment
watermark.VerticalAlignment = VerticalAlignment.Middle;
watermark.HorizontalAlignment = HorizontalAlignment.Center;
// Gnostice PDFOne: Manual coordinate positioning
watermark.Draw(page, 200, 400); // X=200, Y=400
// IronPDF: Declarative alignment
watermark.VerticalAlignment = VerticalAlignment.Middle;
watermark.HorizontalAlignment = HorizontalAlignment.Center;
' Gnostice PDFOne: Manual coordinate positioning
watermark.Draw(page, 200, 400) ' X=200, Y=400
' IronPDF: Declarative alignment
watermark.VerticalAlignment = VerticalAlignment.Middle
watermark.HorizontalAlignment = HorizontalAlignment.Center
Yazı Tipi Nesnelerinden CSS Stilame
// Gnostice PDFOne
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 48);
watermark.Font = font;
//IronPDF- use CSS in HTML content
var html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 48pt;'>Text</span>";
// Gnostice PDFOne
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 48);
watermark.Font = font;
//IronPDF- use CSS in HTML content
var html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 48pt;'>Text</span>";
Imports Gnostice.PDFOne
' Gnostice PDFOne
Dim font As New PDFFont(PDFStandardFont.Helvetica, 48)
watermark.Font = font
' IronPDF- use CSS in HTML content
Dim html As String = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 48pt;'>Text</span>"
Sayfa İndeksleme
Gnostice PDFOne sık sık 1'e dayalı sayfalar kullanırken,IronPDF 0'a dayalı (standart .NET geleneği) kullanır:
// Gnostice PDFOne: May use 1-indexed
var page = doc.Pages[1]; // First page
// IronPDF: 0-indexed
var page = pdf.Pages[0]; // First page
// Gnostice PDFOne: May use 1-indexed
var page = doc.Pages[1]; // First page
// IronPDF: 0-indexed
var page = pdf.Pages[0]; // First page
' Gnostice PDFOne: May use 1-indexed
Dim page = doc.Pages(1) ' First page
' IronPDF: 0-indexed
Dim page = pdf.Pages(0) ' First page
Artık Çalışan Özellikler
Gnostice PDFOne'dan IronPDF'e geçiş yaptıktan sonra daha önce problemli veya imkansız olan bu özellikler kullanılabilir hale gelir:
- Dış CSS: Gnostice PDFOne'da çalışmayan stil sayfaları artık doğru bir şekilde işleniyor
- JavaScript İçeriği: Eksik olan dinamik içerikler artık görüntüleniyor
- RTL Dilleri: Arapça, İbranice ve diğer sağdan sola diller düzgün çalışıyor
- CSS Grid ve Flexbox: Modern yerleşim teknikleri tam olarak destekleniyor
- Dijital İmzalar: Güvenilir X509 sertifika imzalaması
Hata Ayıklama
Sorun 1: PDFTextElement Bulunamadı
Problem: IronPDF'de PDFTextElement yok.
Çözüm: HTML içeriği veya TextStamper kullanın:
// For new documents - render HTML
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<p>Your text here</p>");
// For existing documents - use stampers
var stamper = new TextStamper() { Text = "Added Text" };
pdf.ApplyStamp(stamper);
// For new documents - render HTML
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<p>Your text here</p>");
// For existing documents - use stampers
var stamper = new TextStamper() { Text = "Added Text" };
pdf.ApplyStamp(stamper);
Imports IronPdf
' For new documents - render HTML
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<p>Your text here</p>")
' For existing documents - use stampers
Dim stamper As New TextStamper() With {.Text = "Added Text"}
pdf.ApplyStamp(stamper)
Sorun 2: PDFFont Nesneleri
Problem:Gnostice PDFOnePDFFont nesnelerini kullanır;IronPDF CSS kullanır.
Çözüm:
// Gnostice PDFOne
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 12);
//IronPDF- use CSS
var html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 12pt;'>Text</span>";
// Gnostice PDFOne
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 12);
//IronPDF- use CSS
var html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 12pt;'>Text</span>";
' Gnostice PDFOne
Dim font As New PDFFont(PDFStandardFont.Helvetica, 12)
' IronPDF- use CSS
Dim html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 12pt;'>Text</span>"
Sorun 3: DocExporter Bulunamadı
Problem: IronPDF'de DocExporter sınıfı yok.
Çözüm: ChromePdfRenderer kullanın:
// Gnostice PDFOne
DocExporter exporter = new DocExporter();
exporter.Export(doc, "output.pdf", DocumentFormat.PDF);
// IronPDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
pdf.SaveAs("output.pdf");
// Gnostice PDFOne
DocExporter exporter = new DocExporter();
exporter.Export(doc, "output.pdf", DocumentFormat.PDF);
// IronPDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
pdf.SaveAs("output.pdf");
' Gnostice PDFOne
Dim exporter As New DocExporter()
exporter.Export(doc, "output.pdf", DocumentFormat.PDF)
' IronPDF
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlFileAsPdf("input.html")
pdf.SaveAs("output.pdf")
Sorun 4: Bellek İyileştirmeleri
Problem: Gnostice PDFOne'da bildirilen bellek sızıntıları vardı.
Çözüm: IronPDF, kararlı bellek yönetimi sağlar. Doğru atılma desenlerini kullanın:
using (var pdf = PdfDocument.FromFile("large.pdf"))
{
// Process PDF
pdf.SaveAs("output.pdf");
} // Automatically disposed
using (var pdf = PdfDocument.FromFile("large.pdf"))
{
// Process PDF
pdf.SaveAs("output.pdf");
} // Automatically disposed
Imports PdfDocument
Using pdf = PdfDocument.FromFile("large.pdf")
' Process PDF
pdf.SaveAs("output.pdf")
End Using
Geçiş Kontrol Listesi
Öncesi-Geçiş
- Kod tabanında tümGnostice PDFOnekullanımını envanterleyin
- Çalışmayan özellikleri not alın (CSS, JS, RTL) - Artık çalışacaklar!
- Karşılaştırma testi için bellek sorunlarını belgeleyin -IronPDF lisans anahtarını edinin
- Sürüm kontrolünde geçiş dalı oluşturun
Kod Geçişi
-Gnostice PDFOneNuGet paketlerini kaldırın
-IronPDF NuGet paketini kurun: dotnet add package IronPdf
- Ad alanı ithalatlarını güncelleyin
- Lisans anahtarı kurulumunu değiştirin
PDFDocument'iPdfDocument'e dönüştürünDocExporter'iChromePdfRenderer'e dönüştürün- Koordinat tabanlı çizimi HTML damgalama ile değiştirin
PDFFont'i CSS stiline güncelleyindoc.Append()'iPdfDocument.Merge()'e dönüştürün
Test Etme
- HTML'den PDF'e dönüştürmeyi test edin
- Dış CSS artık çalıştığını doğrulayın
- JavaScript bağımlı içeriği test edin
- RTL dillerini test edin (gerekirse)
- Dijital imzaları test edin (artık mevcut!)
- PDF birleştirmesini test edin
- Filigranı test edin
- Bellek kullanımını karşılaştırın
Geçiş Sonrası
-Gnostice PDFOnelisansını kaldırın
- Belgeleri güncelleyin -Gnostice PDFOnesınırlamaları için geçici çözümleri kaldırın
- Ekibe IronPDF API eğitimi verin

