IRONSOFTWAREHOME
VIDEOLAR

C# Kullanarak SVG'yi PDF'ye Nasıl Dönüştürürüz

Curtis Chau
Curtis Chau
Updated: 19 Temmuz 2026

PDFreactor'den IronPDF'e geçmek, Java bağımlılıklarını ve sunucu altyapısını ortadan kaldırırken, yerel .NET kütüphanesi aracılığıyla eşdeğer HTML-PDF dönüşüm yetenekleri sağlar. Bu kılavuz, Java tabanlı sunucu mimarinizi, .NET uygulamalarına sorunsuz bir şekilde entegre edilen işlem içi bir kütüphaneyle değiştiren eksiksiz, adım adım bir geçiş yolu sunar.

Neden PDFreactor'den IronPDF'e Geçmek Gerekiyor

PDFreactor'ü Anlamak

PDFreactor, çeşitli platformlarda entegre olan güçlü bir HTML-PDF dönüştürme sunucusudur. Ticari bir çözüm olarak, PDFreactor, HTML ve CSS içeriğini yüksek kaliteli PDF belgelerine dönüştürmek için kendi teknolojisinden faydalanır. Dikkate değer nitelikleri arasında, PDFreactor, karmaşık düzenleri işlemek için güçlü bir aday yaparak geniş bir CSS özellikleri yelpazesini destekler.

Ancak, PDFreactor'un Java'ya bağımlılığı, yerel olmayan doğasının dağıtım sürecini ve entegrasyonunu zorlaştırabileceği .NET ortamlarında belli zorluklar sunar. Java bağımlılığı, genellikle ek entegrasyon çalışması gerektiren .NET uygulamalarında ek yük oluşturur.

Java Bağımlılığı Sorunu

PDFreactor'un mimarisi, .NET ortamlarda bazı zorluklar oluşturur:

  1. Java Çalışma Zamanı Gerekliliği: Tüm sunucularda JRE/JDK kurulumu gerektirir.

  2. Sunucu Mimarisi: Ekstra altyapı gerektiren ayrı bir hizmet olarak çalışır. Sunucu tabanlı bir çözüm olarak,PDFreactorher dönüşüm için REST API çağrıları gerektirir.

  3. Karmaşık Dağıtım: Ağırlıklı olarak .NET ekosisteminde Java bağımlılıklarını yönetmek kurulumu zorlaştırabilir ve bakım maliyetlerini artırabilir. CI/CD boru hatlarında iki çalışma zamanı (Java + .NET) yönetilmelidir.

  4. İşlem Arası İletişim: REST API veya socket iletişimi gecikmeyi artırır. Her PDF dönüşümü sunucuya HTTP gidiş-dönüş yolculuğu gerektirir.

  5. Ayrı Lisans Yönetimi: Lisans uygulama yerine sunucu örneğine bağlıdır. Java hizmet örneğine bağlı sunucu başına lisanslama.

  6. Kaynak İzolasyonu: Ayrı işlem belleği ve CPU yönetimi. Ek sunucu izleme, ölçeklendirme ve bakım gerektirir.

PDFreactor vs IronPDF Karşılaştırması

Özellik/AspektPDFreactorIronPDF
Yerel .NET KütüphanesiHayır (Java tabanlı)Evet
Çalışma OrtamıJava (harici sunucu)Yerel .NET (iç işlem)
MimariREST API hizmetiNuGet kütüphanesi
DağıtımJava + sunucu yapılandırmasıTek bir NuGet paketi
BağımlılıklarJRE + HTTP istemcisiKendi içinde tamamlanmış
GecikmeAğ turuDoğrudan yöntem çağrıları
Çapraz Platform YeteneğiEvet (Java-bağımlı)Evet (Paketlenmiş Chromium)
CSS DesteğiCSS3,CSS Paged Mediaiçin gelişmiş destekKapsamlı HTML5/CSS3 desteği
Dağıtım KarmaşıklığıJava nedeniyle daha karmaşıkBasit, .NET ile doğrudan entegrasyon
PDF Manipülasyon ÖzellikleriTemel (Sadece Üretim)Geniş, birleştirme, bölme, düzenleme ve açıklama dahil

PDFreactor'e kıyasla IronPDF, .NET projelerine harici bağımlılıklar olmadan sorunsuz bir şekilde entegre edilmek üzere özel olarak tasarlanmış yerel bir .NET kütüphanesi olarak kendini sunar. IronPDF, HTML'yi PDF'ye dönüştürmek için sadece birkaç satır kodla yerleşik Chromium işleme motorunu kullanır.

Modern .NET sürümlerini benimseyen ekipler için,IronPDF kapsamlı PDF yaşam döngüsü yönetimi sunarken Java sunucu karmaşıklığını ortadan kaldıran yerel .NET çözümü sağlar.


Başlamadan Önce

Ön Koşullar

  1. .NET Ortamı: .NET Framework 4.6.2+ veya .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet Erişimi: NuGet paketlerini yükleyebilme
  3. IronPDF Lisansı: Lisans anahtarınızı ironpdf.com adresinden edinin

NuGet Paket Değişiklikleri

# PDFreactor is NOT distributed via NuGet. The .NET wrapper ships as
# PDFreactor.dll inside <PDFreactor-install>/clients/netstandard2/bin/
# (or netframework40/bin for older .NET Framework projects).
# Remove the assembly reference from your .csproj.

# Stop PDFreactor Web Service (Java/Jetty, default port 9423)
# Windows: net stop PDFreactor
# Linux:   sudo systemctl stop pdfreactor

# Install IronPDF
dotnet add package IronPdf
SHELL

Lisans Yapılandırması

PDFreactor (sunucu tabanlı):

// License configured on thePDFreactorWeb Service via config file or command line.
// The .NET client (RealObjects.PDFreactor.Webservice.Client) connects to that licensed service.
var pdfReactor = new PDFreactor("http://pdfreactor-server:9423/service/rest");
C#

IronPDF (uygulama düzeyi):

// One-time setup at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";

PDFreactor Kullanımını Belirleme

# Find PDFreactor usage
grep -r "PDFreactor\|RealObjects\|Configuration.*Document" --include="*.cs" .

# Find CSS Paged Media rules to convert
grep -r "@page\|counter(page)\|counter(pages)" --include="*.cs" --include="*.css" .
SHELL

Tam API Referansı

Ad Alanı Değişiklikleri

// Before:PDFreactor(Web Service client)
using RealObjects.PDFreactor.Webservice.Client;
using System.IO;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
C#

Çekirdek Sınıf Eşlemeleri

PDFreactorIronPDF
PDFreactorChromePdfRenderer
ConfigurationChromePdfRenderOptions
ResultPdfDocument
config.Document = htmlrenderer.RenderHtmlAsPdf(html)
result.Document (byte[])pdf.BinaryData

Konfigürasyon Özellikleri Eşlemeleri

PDFreactorKonfigürasyonuIronPDF RenderingOptions
config.Document = htmlrenderer.RenderHtmlAsPdf(html)
config.Document = urlrenderer.RenderUrlAsPdf(url)
config.PageFormat = PageFormat.A4RenderingOptions.PaperSize = PdfPaperSize.A4
config.PageOrientationRenderingOptions.PaperOrientation
config.PageMarginsRenderingOptions.MarginTop/Bottom/Left/Right
config.EnableJavaScript = trueRenderingOptions.EnableJavaScript = true
config.UserStyleSheets = new List<Resource>{...}CSS'i HTML'e göm
config.Titlepdf.MetaData.Title
config.Encryptionpdf.SecuritySettings

PDFreactor'de Mevcut Olmayan Yeni Özellikler

IronPDF ÖzelliğiAçıklama
PdfDocument.Merge()Birden fazla PDF'yi birleştirme
pdf.ApplyWatermark()Filigran ekleme
pdf.ExtractAllText()Metin çıkarma
pdf.FormForm doldurma
pdf.Sign()Dijital imzalar

Kod Göç Örnekleri

Örnek 1: HTML Metin Dizesi'ni PDF'e Dönüşüm

Öncesi (PDFreactor):

//PDFreactor.NET wrapper is a Web Service client (no NuGet package).
// Reference PDFreactor.dll from <PDFreactor-install>/clients/netstandard2/bin/
// and run thePDFreactorWeb Service (Java/Jetty) locally or remotely.
using RealObjects.PDFreactor.Webservice.Client;
using System.IO;

class Program
{
    static void Main()
    {
        PDFreactor pdfReactor = new PDFreactor();
        
        string html = "<html><body><h1>Hello World</h1></body></html>";
        
        Configuration config = new Configuration();
        config.Document = html;
        
        Result result = pdfReactor.Convert(config);
        
        File.WriteAllBytes("output.pdf", result.Document);
    }
}
C#

Sonrası (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        string html = "<html><body><h1>Hello World</h1></body></html>";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        
        pdf.SaveAs("output.pdf");
    }
}

Temel fark, mimari desendir. PDFreactor, (Java sunucusuna bağlanan) bir PDFreactor örneği oluşturmayı, ayarları ve HTML içeriğini tutmak için ayrı bir Configuration nesnesini oluşturmayı, bir Result nesnesi döndüren Convert() çağrısını ve son olarak result.Document baytlarını dosyaya yazmak için File.WriteAllBytes() kullanmayı gerektirir.

IronPDF, bir ChromePdfRenderer oluşturmayı, HTML dizgisiyle doğrudan RenderHtmlAsPdf() çağrısını ve döndürülen PdfDocument üzerinde yerleşik SaveAs() yöntemini kullanmayı basitleştirir. Sunucu bağlantısı, yapılandırma nesnesi ve manuel bayt işleme gerektirmez. Kapsamlı örnekler için HTML'den PDF'e dönüşüm belgelerine bakın.

Örnek 2: URL'den PDF'ye Dönüştürme

Öncesi (PDFreactor):

//PDFreactor.NET wrapper is a Web Service client (no NuGet package).
// Reference PDFreactor.dll from <PDFreactor-install>/clients/netstandard2/bin/
// and run thePDFreactorWeb Service (Java/Jetty) locally or remotely.
using RealObjects.PDFreactor.Webservice.Client;
using System.IO;

class Program
{
    static void Main()
    {
        PDFreactor pdfReactor = new PDFreactor();
        
        Configuration config = new Configuration();
        config.Document = "https://www.example.com";
        
        Result result = pdfReactor.Convert(config);
        
        File.WriteAllBytes("webpage.pdf", result.Document);
    }
}
C#

Sonrası (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        
        pdf.SaveAs("webpage.pdf");
    }
}

PDFreactor, türü otomatik olarak belirterek hem HTML dizgileri hem de URL'ler için aynı config.Document özelliğini kullanır. IronPDF, HTML dizgileri için RenderHtmlAsPdf() ve URL'ler için RenderUrlAsPdf() gibi açık yöntemler sağlar. Bu açık yaklaşım, kod netliğini ve IntelliSense desteğini geliştirir. Daha fazla bilgiyi kılavuzlarımızda öğrenin.

Örnek 3: Sayfa Numaraları ile Başlıklar ve Alt Bilgiler

Öncesi (PDFreactor):

//PDFreactor.NET wrapper is a Web Service client (no NuGet package).
// Reference PDFreactor.dll from <PDFreactor-install>/clients/netstandard2/bin/
// and run thePDFreactorWeb Service (Java/Jetty) locally or remotely.
using RealObjects.PDFreactor.Webservice.Client;
using System.IO;

class Program
{
    static void Main()
    {
        PDFreactor pdfReactor = new PDFreactor();
        
        string html = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>";
        
        Configuration config = new Configuration();
        config.Document = html;
        config.UserStyleSheets = new System.Collections.Generic.List<Resource>
        {
            new Resource { Content = "@page { @top-center { content: 'Header Text'; } @bottom-center { content: 'Page ' counter(page); } }" }
        };
        
        Result result = pdfReactor.Convert(config);
        
        File.WriteAllBytes("document.pdf", result.Document);
    }
}
C#

Sonrası (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Header Text"
        };
        
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page}"
        };
        
        string html = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        
        pdf.SaveAs("document.pdf");
    }
}

Bu örnek, en önemli sözdizimi farkını gösterir. PDFreactor, @page kuralları, @bottom-center bölgeleri ve counter(page) ile UserStyleSheets listesindeki Resource öğeleri aracılığıyla enjekte edilen sayfa numaraları içinCSS Paged Mediasöz dizimini kullanır.

IronPDF, TextHeaderFooter nesnelerinin RenderingOptions.TextHeader ve RenderingOptions.TextFooter atanarak kullanıldığı yerel .NET API'sini kullanır. Sayfa numaraları CSS counter(page) yerine {page} yer tutucusunu kullanır.


Kritik Taşıma Notları

Sunucu Gerekli Değil

IronPDF, işlem içi çalışır—yapılandırılacak Java sunucusu yok:

// PDFreactor: Requires the Web Service running on a reachable host
var pdfReactor = new PDFreactor("http://localhost:9423/service/rest");

// IronPDF: No server URL needed
var renderer = new ChromePdfRenderer();

CSS Paged Media'dan IronPDF API'sine

CSS @page kurallarını RenderingOptions ile değiştirin:

//PDFreactorCSS: @page { @bottom-center { content: 'Page ' counter(page); } }
//IronPDF equivalent:
renderer.RenderingOptions.TextFooter = new TextHeaderFooter 
{ 
    CenterText = "Page {page}" 
};
C#

Sayfa Numarası Yer Tutucu Sözdizimi

//PDFreactorCSS: counter(page)
// IronPDF: {page}

//PDFreactorCSS: counter(pages)  
// IronPDF: {total-pages}

Sonuç Yönetimi Değişikliği

Yapılandırma + Sonuç deseni doğrudan PdfDocument'e dönüşür:

// PDFreactor: Configuration → Convert → Result → bytes
Result result = pdfReactor.Convert(config);
byte[] bytes = result.Document;
File.WriteAllBytes("output.pdf", bytes);

// IronPDF: Direct PdfDocument with built-in methods
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or: byte[] bytes = pdf.BinaryData;

Kenar Boşluk Birimleri Değişikliği

PDFreactor dizeler kullanır;IronPDF milimetre kullanır:

// PDFreactor: config.PageMargins.Top = "1in"
// IronPDF: renderer.RenderingOptions.MarginTop = 25.4  // 1 inch in mm

Geçiş Sonrası Yeni Özellikler

IronPDF'e geçiş yaptıktan sonra, PDFreactor'un sağlayamadığı yetenekleri elde edersiniz:

PDF Birleştirme

var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");

Filigranlar

pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");

Metin Çıkarma

string text = pdf.ExtractAllText();

Şifre Koruma

pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";

Özellik Karşılaştırması Özeti

ÖzellikPDFreactorIronPDF
HTML'den PDF'ye
URL'yi PDF'ye çevir
Başlıklar/AltbilgilerCSS Paged MediaYerel API
Sayfa Ayarları
JavaScript Desteği
Yerel .NET
İşlem İçi
PDF'leri birleştir
PDF Ayırma
Filigranlar
Metin Çıkarma
Form Doldurma
Dijital İmzalar

Geçiş Kontrol Listesi

Öncesi-Geçiş

  • Kod tabanındaki tümPDFreactorkullanımlarını dökün
  • Kullanılan tümCSS Paged Mediakurallarını belgeler
  • Tüm yapılandırma ayarlarını (kenar boşlukları, sayfa boyutu, JavaScript) not edin -IronPDF lisans anahtarı saklama planı yapın (ortam değişkenleri önerilir)
  • İlk önce IronPDF deneme lisansı ile test edin

Paket Değişiklikleri

  • Doğrudan PDFreactor.dll derleme referansını .csproj dosyanızdan kaldırın -PDFreactorWeb Hizmetini (Java/Jetty) devre dışı bırakın
  • IronPdf NuGet paketini yükleyin: dotnet add package IronPdf

Kod Değişiklikleri

  • İsim alanı ithalatlarını güncelleyin (using RealObjects.PDFreactor.Webservice.Client;using IronPdf;)
  • Başlık/altbilgi sınıfları için using IronPdf.Rendering; ekleyin
  • PDFreactor sınıfını ChromePdfRenderer ile değiştirin
  • Configuration nesnelerini RenderingOptions özelliklerine dönüştürün
  • config.Document = html öğesini renderer.RenderHtmlAsPdf(html) ile değiştirin
  • config.Document = url öğesini renderer.RenderUrlAsPdf(url) ile değiştirin
  • File.WriteAllBytes(path, result.Document) öğesini pdf.SaveAs(path) ile değiştirin
  • CSS @page kurallarını TextFooter nesnelerine dönüştürün
  • Sayfa numarası yer tutucularını güncelleyin (counter(page){page})
  • Kenar boşluk birimlerini dizelerden milimetrelere dönüştürün

Altyapı Geçişi

  • Java çalışma zamanı gerekliliğini kaldırın -PDFreactorsunucusunu devre dışı bırakın
  • Docker/dağıtım yapılandırmalarını güncelleyin
  • CI/CD yapılarını güncelleyin

Geçiş Sonrası

  • PDF çıktısının kalitesinin beklentilere uyduğunu test edin
  • Başlık/altbilgi render'ını doğrulayın.
  • JavaScript çalışmasını doğrulayın, eğer kullanılmışsa
  • Yeni yetenekler ekleyin (birleştirme, filigranlar, güvenlik) gerektiğinde

Lütfen dikkate alın: PDFReactor, ilgili sahibinin tescilli ticari markasıdır. Bu site, RealObjects ile ilişkili değildir, onaylanmamış veya sponsorlu 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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez