IRONSOFTWAREHOME
VIDEOLAR

C# ile HTML ZIP Dosyasını PDF'ye Nasıl Dönüştürürüz | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 Temmuz 2026

VectSharp (tarafından oluşturulmuştur: Giorgio Bianchini, arklumpus/VectSharp), .NET Standard 2.0 için hafif bir çapraz platform vektör grafik kitaplığıdır, genellikle bilimsel görselleştirme ve teknik illüstrasyonlar için kullanılır. Geliştirme takımları iş belgeleri, raporlar, faturalar veya HTML tabanlı içerik oluşturması gerektiğinde, VectSharp'ın grafik-öncelikli paradigması sürtünme yaratır. Şekil ve grafikler için tasarlanmıştır, belgeler üretmek için değil.

Bu kılavuz, bu geçişi değerlendiren profesyonel .NET geliştiriciler için adım adım talimatlar, kod karşılaştırmaları ve pratik örneklerle VectSharp'tan IronPDF'e tam bir geçiş yolu sağlar.

VectSharp'tan Neden Geçiş Yapmalıyız

VectSharp, diyagramlar, grafikler ve teknik çizimler oluşturmak için tasarlanmış bir vektör grafik kütüphanesidir ve VectSharp.PDF, VectSharp.SVG ve VectSharp.Raster dahil olmak üzere eklentili çıktı katmanları bulunur. Belge oluşturma için tasarlanmış değildir—VectSharp.PDF paketinin SaveAsPDF genişletme metodu eklediği bir çizim kütüphanesidir. Geliştirme ekiplerinin geçiş düşünmesinin ana nedenleri şunlardır:

Sadece Bilimsel Odak: VectSharp, veri görselleştirme ve grafikleri için tasarlanmıştır, faturalar, raporlar veya sertifikalar gibi iş belgeleri için değil.

HTML Desteği Yok: VectSharp, HTML veya CSS'yi PDF'e dönüştüremez. Her eleman, vektör grafik komutları kullanılarak elle çizilmelidir.

Koordinat Tabanlı API: Her eleman, tam X,Y koordinatları ile konumlandırılmalıdır. Otomatik düzen, akış veya metin sarma yok.

CSS Stilleme Yok: Tüm stilleme, metot çağrıları aracılığıyla programatik olarak yapılır. Web geliştiricileri, mevcut CSS bilgilerini kullanamaz.

JavaScript Yok: VectSharp, dinamik web içeriği, interaktif grafikler veya JavaScript tabanlı görselleştirmeleri render edemez.

Metin Düzeni Yok: Otomatik metin sarma, sayfalandırma ve akış düzeni mevcut değil. Geliştiriciler, metin konumlarını ve sayfa kırılmalarını elle hesaplamak zorundadır.

Grafik Odaklı Paradigma: Kütüphane, diyagramlar için tasarlanmıştır, raporlar veya faturalar için değil. Belge üretimi, ciddi el işçiliği gerektirir.

Temel Problem: Grafik Kütüphanesi vs Belge Üreticisi

VectSharp, her eleman için manuel vektör çizim gerektirir:

// VectSharp:Yönergevector drawing for every element
Page page = new Page(595, 842);
Graphics graphics = page.Graphics;
graphics.FillRectangle(50, 50, 200, 100, Colour.FromRgb(0, 0, 255));
graphics.FillText(60, 70, "Invoice",
    new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 20),
    Colours.White);
// ... continue drawing every single element manually
C#

IronPDF, evrensel belge formatı olan HTML kullanır:

// IronPDF: Declarative HTML for document creation
var html = "<h1>Invoice</h1><p>Customer: Acme Corp</p>";
var pdf = renderer.RenderHtmlAsPdf(html);

IronPDF vs VectSharp: Özellik Karşılaştırması

Mimari farklılıkları anlamak, teknik karar vericilerin geçiş yatırımını değerlendirmesine yardımcı olur:

ÖzellikVectSharpIronPDF
Birincil KullanımVektör GrafikleriBelge Oluşturma
PDF ÇıktıEvetEvet
HTML DesteğiHayırEvet
LisanslamaLGPL-3.0-yalnızcaTicari
Açık KaynakEvetKısmen (ticari özellikler)
En İyi UygulamaBilimsel GörselleştirmelerGenel PDF Belgeleri
ÖzelleştirmeGrafiklerle sınırlıKapsamlı, Belge İlgili
HTML'den PDF'yeHayırTam Chromium
URL'den PDF'yeHayırEvet
CSS DesteğiHayırTam CSS3
JavaScriptHayırTam ES2024
Otomatik DüzenHayırEvet
Otomatik Sayfa KesmeHayırEvet
Metin KaydırmaYönergeOtomatik
PDF'leri BirleştirmeHayırEvet
PDF'leri BölmeHayırEvet
Şifre KorumasıHayırEvet
Dijital İmzalarHayırEvet
Öğrenme EğrisiYüksek (koordinatlar)Düşük (HTML/CSS)
Kod KapsamıOldukça YüksekDüşük

Hızlı Başlat: VectSharp'tan IronPDF'e Geçiş

Geçiş bu öncü adımlarla hemen başlayabilir.

Adım 1: NuGet Paketlerini Değiştirin

TümVectSharppaketlerini çıkarın:

# RemoveVectSharppackages (PDF first, then core)
dotnet remove package VectSharp.PDF
dotnet remove package VectSharp
SHELL

IronPDF'i yükleyin:

# Install IronPDF
dotnet add package IronPdf
SHELL

Adım 2: Ad Alanlarını Güncelleyin

VectSharp ad alanlarınıIronPDF ad alanı ile değiştirin:

// Before (VectSharp)
using VectSharp;
using VectSharp.PDF;

// After (IronPDF)
using IronPdf;

Adım 3: Lisansa İzin Verin

Uygulama başlangıcında lisans başlatmayı ekleyin:

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

Kod Göç Örnekleri

HTML'yi PDF'ye Dönüştürme

VectSharp, HTML'den PDF'e dönüştürmeyi desteklemez. Bu temel yetenek farkı birçok geçiş kararını yönlendirir.

VectSharp Yaklaşımı:

// NuGet: Install-Package VectSharp.PDF
using VectSharp;
using VectSharp.PDF;
using VectSharp.SVG;
using System.IO;

class Program
{
    static void Main()
    {
        //VectSharpdoesn't directly support HTML to PDF
        // It requires manual creation of graphics objects
        Document doc = new Document();
        Page page = new Page(595, 842); // A4 size
        Graphics graphics = page.Graphics;
        
        graphics.FillText(100, 100, "Hello from VectSharp",
            new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 24),
            Colours.Black);
        
        doc.Pages.Add(page);
        doc.SaveAsPDF("output.pdf");
    }
}
C#

IronPDF Yaklaşımı:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF</h1><p>This is HTML content.</p>");
        pdf.SaveAs("output.pdf");
    }
}

VectSharp, bir Document, Page ve Graphics nesnesi oluşturmayı, ardından metinleri kesin koordinatlar ve font nesneleri ile manuel olarak konumlandırmayı gerektirir. IronPDF, tam CSS stil desteği ile HTML'i doğrudan render eder.

İleri düzey HTML-to-PDF senaryoları için HTML'den PDF'ye dönüşüm rehberine bakın.

Çok Sayfalı Belgeler Oluşturma

Çok sayfalı belgeler, bu .NET PDF kütüphaneleri arasındaki mimari farklılıkları ortaya çıkarır.

VectSharp Yaklaşımı:

// NuGet: Install-Package VectSharp.PDF
using VectSharp;
using VectSharp.PDF;
using System;

class Program
{
    static void Main()
    {
        Document doc = new Document();
        
        FontFamily helvetica =
            FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica);
        Font titleFont = new Font(helvetica, 24);
        Font bodyFont = new Font(helvetica, 14);

        // Page 1
        Page page1 = new Page(595, 842);
        Graphics g1 = page1.Graphics;
        g1.FillText(50, 50, "Page 1", titleFont, Colours.Black);
        g1.FillText(50, 100, "First page content", bodyFont, Colours.Black);
        doc.Pages.Add(page1);
        
        // Page 2
        Page page2 = new Page(595, 842);
        Graphics g2 = page2.Graphics;
        g2.FillText(50, 50, "Page 2", titleFont, Colours.Black);
        g2.FillText(50, 100, "Second page content", bodyFont, Colours.Black);
        doc.Pages.Add(page2);
        
        doc.SaveAsPDF("multipage.pdf");
    }
}
C#

IronPDF Yaklaşımı:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        string html = @"
            <h1>Page 1</h1>
            <p>First page content</p>
            <div style='page-break-after: always;'></div>
            <h1>Page 2</h1>
            <p>Second page content</p>
        ";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("multipage.pdf");
    }
}

VectSharp, ayrı Page nesneleri, ayrı Graphics bağlamları oluşturmaya ve her sayfa için her metin öğesini koordinatlar ve font nesneleri ile manuel olarak konumlandırmayı gerektirir. IronPDF, çok sayfalı belgeleri otomatik olarak oluşturmak için CSS page-break-after: always ile tek bir HTML stringi kullanır.

Şekil ve Metin Çizimi

Grafik yetenekleri, VectSharp'ın nerede mükemmel olduğunu gösterir, fakat aynı zamanda web standartlarının daha az kod ile eşdeğer fonksiyonellik sağladığını da gösterir.

VectSharp Yaklaşımı:

// NuGet: Install-Package VectSharp.PDF
using VectSharp;
using VectSharp.PDF;
using System;

class Program
{
    static void Main()
    {
        Document doc = new Document();
        Page page = new Page(595, 842);
        Graphics graphics = page.Graphics;
        
        // Draw rectangle
        graphics.FillRectangle(50, 50, 200, 100, Colour.FromRgb(0, 0, 255));
        
        // Draw circle
        GraphicsPath circle = new GraphicsPath();
        circle.Arc(400, 100, 50, 0, 2 * Math.PI);
        graphics.FillPath(circle, Colour.FromRgb(255, 0, 0));
        
        // Add text - FillText requires a colour parameter
        graphics.FillText(50, 200, "VectSharp Graphics",
            new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 20),
            Colours.Black);
        
        doc.Pages.Add(page);
        doc.SaveAsPDF("shapes.pdf");
    }
}
C#

IronPDF Yaklaşımı:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        string html = @"
            <div style='width: 200px; height: 100px; background-color: blue; margin: 50px;'></div>
            <div style='width: 100px; height: 100px; background-color: red; 
                        border-radius: 50%; margin-left: 350px; margin-top: -50px;'></div>
            <h2 style='margin-left: 50px;'>IronPDF Graphics</h2>
        ";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("shapes.pdf");
    }
}

VectSharp, GraphicsPath nesneleri oluşturmayı, hassas matematiksel parametrelerle Arc() çağrıları yapmayı ve renkleri Colour.FromRgb() aracılığıyla yönetmeyi gerektirir. IronPDF, tanıdık CSS özelliklerini kullanır: çemberler için background-color, border-radius: 50% ve standart kenar boşlukları.

VectSharp API'den IronPDF Haritalama Referansı

Bu eşleştirme, doğrudan API eşdeğerlerini göstererek geçişi hızlandırır:

VectSharpIronPDF
DocumentChromePdfRenderer
PageOtomatik
GraphicsHTML/CSS
graphics.FillRectangle()CSS background-color üzerinde <div>
graphics.StrokeRectangle()CSS border üzerinde <div>
graphics.FillText()HTML metin öğeleri
graphics.StrokePath()SVG veya CSS kenarlıkları
GraphicsPathSVG <path> ögesi
Colour.FromRgb()CSS renk değerleri
Font / FontFamilyCSS font-family
doc.SaveAsPDF()pdf.SaveAs()
Elle sayfa boyutlandırmaRenderingOptions.PaperSize

Geçiş Stratejileri

Strateji 1: Çizim Kodunu HTML/CSS'e Dönüştürün

Koordinat bazlı çizimi HTML elementleri ile değiştirin:

// VectSharp
graphics.FillRectangle(100, 50, 300, 80, Colour.FromRgb(0, 102, 204));
graphics.FillText(110, 80, "Header", font, Colours.White);

//IronPDF HTML equivalent
<div style="
    position: absolute;
    left: 100px;
    top: 50px;
    width: 300px;
    height: 80px;
    background: rgb(0, 102, 204);
    color: white;
    padding: 10px;
">Header</div>

Strateji 2: Vektör Grafikler İçin SVG Kullanın

Karmaşık şekiller için, HTML'nizde gömülü SVG kullanın:

//VectSharppath
GraphicsPath path = new GraphicsPath();
path.MoveTo(100, 100);
path.LineTo(200, 50);
path.LineTo(300, 100);
path.Close();
graphics.FillPath(path, Colours.Blue);

//IronPDF SVG equivalent
<svg><polygon points="100,100 200,50 300,100" fill="blue"/></svg>
C#

Strateji 3: JavaScript Grafik Kütüphanelerini Kullanın

Bilimsel görselleştirmeler için—VectSharp'ın uzmanlık alanı—IronPDF, Chart.js, D3.js veya Plotly gibi güçlü JavaScript kütüphanelerini kullanabilir:

var html = @"
<script src='https://cdn.plot.ly/plotly-latest.min.js'></script>
<div id='chart'></div>
<script>
    Plotly.newPlot('chart', [{
        x: [1, 2, 3, 4],
        y: [10, 15, 13, 17],
        type: 'scatter'
    }]);
</script>";

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
var pdf = renderer.RenderHtmlAsPdf(html);

Yaygın Göç Sorunları ve Çözümleri

Sorun 1: Koordinat Sistemi Farklılıkları

VectSharp, sol üst orijinden elle konumlandırma ile noktaları kullanır.

Çözüm: CSS konumlandırmasını kullanın:

.element {
    position: absolute;
    top: 50px;
    left: 100px;
}
Text

Sorun 2: Yazı Tipi Nesneleri

VectSharp programatik olarak Font ve FontFamily nesneleri oluşturur.

Çözüm: CSS yazı ailesini kullanın:

<style>
    body { font-family: Arial, sans-serif; font-size: 12pt; }
</style>
HTML

Sorun 3: Renk İşleme

VectSharp Colour.FromRgb() metot çağrılarını kullanır.

Çözüm: CSS renklerini kullanın:

.header { color: rgb(0, 102, 204); background-color: #f0f0f0; }
Text

Sorun 4: Grafik Yolları

VectSharp, MoveTo, LineTo, Arc metotları ile karmaşık GraphicsPath API'yi kullanır.

Çözüm: Vektör grafikler için SVG kullanın:

<svg>
    <path d="M 100 100 L 200 50 L 300 100 Z" fill="blue"/>
</svg>
HTML

VectSharp Geçiş Kontrol Listesi

Geçiş Öncesi Görevler

VectSharp kullanımını tanımlamak için kod tabanınızı denetleyin:

grep -r "using VectSharp" --include="*.cs" .
grep -r "Graphics\|FillRectangle\|FillText" --include="*.cs" .
SHELL

Belge sayfa boyutları (new Page(595, 842) kalıpları). Colour.FromRgb() kullanılarak renk şemalarını not edin. Yazı tipi yapılandırmalarını tanımlayın. SVG dönüşümü için GraphicsPath kullanarak karmaşık vektör grafikleri eşleyin.

Kod Güncelleme Görevleri

1.VectSharpNuGet paketlerini çıkarın 2.IronPDF NuGet paketini yükleyin 3. VectSharp 'dan IronPdf 'a using deyimlerini güncelleyin 4. FillRectangle çağrılarını background-color ile CSS kutularına dönüştürün 5. FillText çağrılarını CSS biçimlendirmesi ile HTML metin öğelerine dönüştürün 6. GraphicsPath işlemlerini SVG <path> öğelerine dönüştürün 7. Manuel sayfa yönetimini RenderingOptions.PaperSize ile değiştirin 8. Başlangıçta lisans başlatma ekleyin

Geçiş Sonrası Testler

Geçiş sonrasında bu yönleri doğrulayın:

-VectSharpve IronPDF sürümleri arasındaki görsel çıktıyı karşılaştırın

  • Colour.FromRgb() değerlerinin CSS eşdeğerlerini kullanarak renklerin uyduğunu doğrulayın
  • Koordinat bazlı yerleştirme ile dönüştürülmüş elemanlar için konum doğruluğunu kontrol edin
  • Çok sayfalı belgeler için sayfa kırılmalarını test edin
  • Vektör grafiklerin SVG aracılığıyla doğru şekilde render edilip edilmediğini doğrulayın

IronPDF'e Geçmenin Temel Faydaları

VectSharp'tan IronPDF'e geçiş, belge üretimi için birkaç avantaj sağlar:

HTML Tabanlı İçerik: Web geliştiricileri mevcut HTML ve CSS bilgilerinden yararlanabilir. Koordinat tabanlı çizim API'lerini öğrenmeye gerek yok.

Otomatik Düzen: Metin sarma, sayfalandırma ve akış düzeni otomatik olarak gerçekleşir. Eleman pozisyonlarının elle hesaplanmasına gerek yok.

Modern CSS Desteği: Tam CSS3, Flexbox ve Grid düzenleri dahil. Duyarlı tasarımlar doğrudan PDF'e çevrilir.

JavaScript Yürütme: Chart.js, D3.js veya Plotly ile interaktif grafikler doğru şekilde render edilir. Dinamik içerik beklenildiği gibi çalışır.

URL'den PDF'e: Herhangi bir web sayfasını PDF olarak yakalayın—VectSharp ile mümkün olmayan bir işlev.

PDF İşlemleri: Birleştirme, bölme, filigran ekleme, şifre koruması ve dijital imzalar yerleşik özelliklerdir.

**Düşük Kod Yoğunluğu:**HTML/CSSdeklaratif ve okunabilir. Aynı belge, VectSharp'ın imperatif çizim yaklaşımına göre önemli ölçüde daha az kod gerektirir.

Aktif Geliştirme: IronPDF'nin düzenli güncellemeleri, mevcut ve gelecekteki .NET sürümleriyle uyumluluğu sağlar.

Lütfen dikkate alın: VectSharp, ilgili sahibinin tescilli bir ticari markasıdır. Bu site,VectSharpile bağlantılı, onaylanmış veyaVectSharptarafından sponsorlu değildir. Tüm ürün isimleri, logolar ve markalar ilgili sahiplerinin mülkiyetindedir. 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