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

C#'ta VectSharp'tan IronPDF'ye Nasıl Geçilir

VectSharp, .NET ekosisteminde özellikle bilimsel görselleştirme ve teknik illüstrasyonlar için değerli bir vektör grafik kütüphanesi olarak kendisini kanıtlamıştır. Ancak, geliştirme ekipleri iş belgeleri, raporlar, faturalar veya herhangi bir HTML tabanlı içerik oluşturmak zorunda kaldığında, VectSharp'ın grafik öncelikli paradigması önemli sürtünme yaratır. Kütüphane, şekil ve grafik oluşturmak için bilim insanları için tasarlanmıştır, geliştiricilerin belgeler oluşturması için değildir.

Bu rehber, VectSharp'tan IronPDF'ye geçiş yolunu, adım adım talimatlar, kod karşılaştırmaları ve bu geçişi değerlendiren profesyonel .NET geliştiricileri için pratik örneklerle sağlar.

Neden VectSharp'tan Geçiş Yapmalı

VectSharp, diyagramlar, grafikler ve teknik illüstrasyonlar oluşturmak için tasarlanmış bilimsel bir görselleştirme ve vektör grafik kütüphanesidir. Belge oluşturma için tasarlanmamıştır—PDF çıktısı veren bir çizim kütüphanesidir. Geliştirme ekiplerinin geçişi değerlendirme nedenleri şunları içerir:

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

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

Koordinat Tabanlı API: Her öğe, tam X,Y koordinatları ile konumlandırılmalıdır. Otomatik yerleşim, akış veya metin sarma yoktur.

CSS Stil Desteği Yok: Tüm stil, metod çağrılarıyla programatik olarak yapılır. Web geliştiricileri mevcut CSS bilgilerini kullanamazlar.

JavaScript Yok:VectSharpdinamik web içeriği, interaktif grafikler veya JavaScript tabanlı görselleştirmeler oluşturamaz.

Metin Düzeni Yok: Otomatik metin sarma, sayfa düzenleme ve akış düzeni mevcut değil. Geliştiriciler, metin pozisyonlarını ve sayfa sonlarını manuel olarak hesaplamalıdır.

Grafik Öncelikli Paradigma: Kütüphane diyagramlar için tasarlanmıştır, raporlar veya faturalar için değil. Belge oluşturma, kapsamlı manuel çalışma gerektirir.

Temel Problem: Grafik Kütüphanesi ile Belge Üretici

VectSharp, her öğe için manuel vektör çizimi gerektirir:

// VectSharp: El ile vector 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(new FontFamily("Arial"), 20), Colours.White);
// ... continue drawing every single element manually
// VectSharp: El ile vector 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(new FontFamily("Arial"), 20), Colours.White);
// ... continue drawing every single element manually
' VectSharp: El ile vector drawing for every element
Dim page As New Page(595, 842)
Dim graphics As Graphics = page.Graphics
graphics.FillRectangle(50, 50, 200, 100, Colour.FromRgb(0, 0, 255))
graphics.FillText(60, 70, "Invoice", New Font(New FontFamily("Arial"), 20), Colours.White)
' ... continue drawing every single element manually
$vbLabelText   $csharpLabel

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: Declarative HTML for document creation
var html = "<h1>Invoice</h1><p>Customer: Acme Corp</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
' IronPDF: Declarative HTML for document creation
Dim html As String = "<h1>Invoice</h1><p>Customer: Acme Corp</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
$vbLabelText   $csharpLabel

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:

Özellik VectSharp IronPDF
Temel Kullanım Vektör Grafikler Belge Oluşturma
PDF Çıktı Evet Evet
HTML Desteği Hayır Evet
Lisanslama LGPL Ticari
Açık Kaynak Evet Kısmen (ticari özellikler)
En İyi Olduğu Noktalar Bilimsel Görselleştirmeler Genel PDF Belgeleri
Özelleştirme Grafiklerle Sınırlı Geniş kapsamlı, Belge-İlişkili
HTML to PDF Hayır Tam Chromium
URL'den PDF'ye Hayır Evet
CSS Desteği Hayır Tam CSS3
JavaScript Hayır Tam ES2024
Otomatik Düzen Hayır Evet
Otomatik Sayfa Kırılımları Hayır Evet
Metin Sarma El ile Otomatik
PDF'leri Birleştir Hayır Evet
PDF'leri Böl Hayır Evet
Şifre Koruması Hayır Evet
Dijital İmzalar Hayır Evet
Öğrenme Eğrisi Yuksek (koordinatlar) Düşük (HTML/CSS)
Kod Ayrıntısı Çok Yüksek Low

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

Geçiş hemen bu temel adımlar ile başlatılabilir.

1. Adım: NuGet Paketlerini Değiştir

TümVectSharppaketlerini kaldırın:

# RemoveVectSharppackages
dotnet remove package VectSharp
dotnet remove package VectSharp.PDF
# RemoveVectSharppackages
dotnet remove package VectSharp
dotnet remove package VectSharp.PDF
SHELL

IronPDF'i yükleyin:

# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
SHELL

Adım 2: Alan Adlarını Güncelle

VectSharp namespaces'i IronPdf namespace ile değiştirin:

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

// After (IronPDF)
using IronPdf;
// Before (VectSharp)
using VectSharp;
using VectSharp.PDF;

// After (IronPDF)
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Adım 3: Lisansı Başlat

Uygulama başlangıcında lisans başlatmasını ekleyin:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Kod Geçiş Örnekleri

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

VectSharp, HTML'den PDF'e dönüşümü 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));

        doc.Pages.Add(page);
        doc.SaveAsPDF("output.pdf");
    }
}
// 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));

        doc.Pages.Add(page);
        doc.SaveAsPDF("output.pdf");
    }
}
Imports VectSharp
Imports VectSharp.PDF
Imports VectSharp.SVG
Imports System.IO

Module Program
    Sub Main()
        ' VectSharp doesn't directly support HTML to PDF
        ' It requires manual creation of graphics objects
        Dim doc As New Document()
        Dim page As New Page(595, 842) ' A4 size
        Dim graphics As Graphics = page.Graphics

        graphics.FillText(100, 100, "Hello from VectSharp", 
            New Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 24))

        doc.Pages.Add(page)
        doc.SaveAsPDF("output.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

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");
    }
}
// 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");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF</h1><p>This is HTML content.</p>")
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

VectSharp, bir Document, Page ve Graphics nesnesi oluşturmayı ve ardından metni tam koordinatlar ve yazı tipi nesneleri ile elle konumlandırmayı gerektirir. IronPDF, HTML'yi doğrudan tam CSS stillendirmesi desteği ile işler.

Gelişmiş HTML-PDF senaryoları için HTML'den PDF'e dönüştürme kılavuzuna bakın.

Çok Sayfalı Belgeler Oluşturma

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

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 1
        Page page1 = new Page(595, 842);
        Graphics g1 = page1.Graphics;
        g1.FillText(50, 50, "Page 1", 
            new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 24));
        g1.FillText(50, 100, "First page content", 
            new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 14));
        doc.Pages.Add(page1);

        // Page 2
        Page page2 = new Page(595, 842);
        Graphics g2 = page2.Graphics;
        g2.FillText(50, 50, "Page 2", 
            new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 24));
        g2.FillText(50, 100, "Second page content", 
            new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 14));
        doc.Pages.Add(page2);

        doc.SaveAsPDF("multipage.pdf");
    }
}
// NuGet: Install-Package VectSharp.PDF
using VectSharp;
using VectSharp.PDF;
using System;

class Program
{
    static void Main()
    {
        Document doc = new Document();

        // Page 1
        Page page1 = new Page(595, 842);
        Graphics g1 = page1.Graphics;
        g1.FillText(50, 50, "Page 1", 
            new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 24));
        g1.FillText(50, 100, "First page content", 
            new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 14));
        doc.Pages.Add(page1);

        // Page 2
        Page page2 = new Page(595, 842);
        Graphics g2 = page2.Graphics;
        g2.FillText(50, 50, "Page 2", 
            new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 24));
        g2.FillText(50, 100, "Second page content", 
            new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 14));
        doc.Pages.Add(page2);

        doc.SaveAsPDF("multipage.pdf");
    }
}
Imports VectSharp
Imports VectSharp.PDF
Imports System

Class Program
    Shared Sub Main()
        Dim doc As New Document()

        ' Page 1
        Dim page1 As New Page(595, 842)
        Dim g1 As Graphics = page1.Graphics
        g1.FillText(50, 50, "Page 1", New Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 24))
        g1.FillText(50, 100, "First page content", New Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 14))
        doc.Pages.Add(page1)

        ' Page 2
        Dim page2 As New Page(595, 842)
        Dim g2 As Graphics = page2.Graphics
        g2.FillText(50, 50, "Page 2", New Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 24))
        g2.FillText(50, 100, "Second page content", New Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 14))
        doc.Pages.Add(page2)

        doc.SaveAsPDF("multipage.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

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");
    }
}
// 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");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()

        Dim html As String = "
            <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>
        "

        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("multipage.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

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

Şekil ve Metin Çizimi

Grafik yetenekleri, VectSharp'ın üstün olduğu ama aynı zamanda web standartlarının daha az kodla eşdeğer işlevsellik sunduğu yeri 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
        graphics.FillText(50, 200, "VectSharp Graphics", 
            new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 20));

        doc.Pages.Add(page);
        doc.SaveAsPDF("shapes.pdf");
    }
}
// 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
        graphics.FillText(50, 200, "VectSharp Graphics", 
            new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 20));

        doc.Pages.Add(page);
        doc.SaveAsPDF("shapes.pdf");
    }
}
Imports VectSharp
Imports VectSharp.PDF
Imports System

Module Program
    Sub Main()
        Dim doc As New Document()
        Dim page As New Page(595, 842)
        Dim graphics As Graphics = page.Graphics

        ' Draw rectangle
        graphics.FillRectangle(50, 50, 200, 100, Colour.FromRgb(0, 0, 255))

        ' Draw circle
        Dim circle As New GraphicsPath()
        circle.Arc(400, 100, 50, 0, 2 * Math.PI)
        graphics.FillPath(circle, Colour.FromRgb(255, 0, 0))

        ' Add text
        graphics.FillText(50, 200, "VectSharp Graphics", 
            New Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 20))

        doc.Pages.Add(page)
        doc.SaveAsPDF("shapes.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

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");
    }
}
// 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");
    }
}
Imports IronPdf
Imports IronPdf.Rendering

Class Program
    Shared Sub Main()
        Dim renderer As New ChromePdfRenderer()

        Dim html As String = "
            <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>
        "

        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("shapes.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

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

VectSharp API'den IronPDF'e Haritalama Referansı

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

VectSharp IronPDF
Document ChromePdfRenderer
Page Otomatik
Graphics HTML/CSS
graphics.FillRectangle() CSS background-color üzerinde <div>
graphics.StrokeRectangle() CSS border üzerinde <div>
graphics.FillText() HTML metin elemanları
graphics.StrokePath() SVG veya CSS kenarları
GraphicsPath SVG <path> elementi
Colour.FromRgb() CSS renk değerleri
Font / FontFamily CSS font-family
doc.SaveAsPDF() pdf.SaveAs()
El ile sayfa boyutlandırma RenderingOptions.PaperSize

Geçiş Stratejileri

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

Koordinata dayalı çizimi HTML öğeleriyle değiştirin:

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

//IronPDFHTML equivalent
<div style="
    position: absolute;
    left: 100px;
    top: 50px;
    width: 300px;
    height: 80px;
    background: rgb(0, 102, 204);
    color: white;
    padding: 10px;
">Header</div>
// VectSharp
graphics.FillRectangle(100, 50, 300, 80, Colour.FromRgb(0, 102, 204));
graphics.FillText(110, 80, "Header", font, Colours.White);

//IronPDFHTML equivalent
<div style="
    position: absolute;
    left: 100px;
    top: 50px;
    width: 300px;
    height: 80px;
    background: rgb(0, 102, 204);
    color: white;
    padding: 10px;
">Header</div>
' VectSharp
graphics.FillRectangle(100, 50, 300, 80, Colour.FromRgb(0, 102, 204))
graphics.FillText(110, 80, "Header", font, Colours.White)

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

Strateji 2: Vektör Grafikleri için SVG Kullanın

Karmaşık şekiller için HTML'nizde satır içi 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);

//IronPDFSVG equivalent
<svg><polygon points="100,100 200,50 300,100" fill="blue"/></svg>
//VectSharppath
GraphicsPath path = new GraphicsPath();
path.MoveTo(100, 100);
path.LineTo(200, 50);
path.LineTo(300, 100);
path.Close();
graphics.FillPath(path, Colours.Blue);

//IronPDFSVG equivalent
<svg><polygon points="100,100 200,50 300,100" fill="blue"/></svg>
Imports System.Drawing.Drawing2D

'VectSharppath
Dim path As New GraphicsPath()
path.StartFigure()
path.AddLine(100, 100, 200, 50)
path.AddLine(200, 50, 300, 100)
path.CloseFigure()
graphics.FillPath(Brushes.Blue, path)

'IronPDFSVG equivalent
'<svg><polygon points="100,100 200,50 300,100" fill="blue"/></svg>
$vbLabelText   $csharpLabel

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

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

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);
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);
Dim html As String = "
<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>"

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
Dim pdf = renderer.RenderHtmlAsPdf(html)
$vbLabelText   $csharpLabel

Yaygın Taşınma Sorunları ve Çözümleri

Sorun 1: Koordinat Sistemi Farklılıkları

VectSharp, manuel konumlama ile üst sol orijinden noktalar kullanır.

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

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

Sorun 2: Yazı Tipi Nesneleri

VectSharp programlı olarak Font ve FontFamily nesneleri oluşturur.

Çözüm: CSS font-family kullanın:

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

Sorun 3: Renk Yönetimi

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; }

Sorun 4: Grafik Yolları

VectSharp MoveTo, LineTo, Arc metotlarıyla karmaşık bir GraphicsPath API'sı kullanır.

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

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

VectSharp Geçiş Kontrol Listesi

Ön Taşınma Görevleri

TümVectSharpkullanımını belirlemek için kod tabanınızı denetleyin:

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

Belge sayfa boyutları (new Page(595, 842) desenleri). Colour.FromRgb() kullanarak renk şemalarını not edin. Yazı tipi yapılandırmalarını belirleyin. SVG dönüşümü için GraphicsPath kullanarak karmaşık vektör grafiklerini haritalayın.

Kod Güncelleme Görevleri

1.VectSharpNuGet paketlerini kaldırın

  1. IronPdf NuGet paketini kurun
  2. VectSharp ile IronPdf arasında kullanma ifadelerini güncelleyin.
  3. FillRectangle çağrılarını background-color ile CSS kutularına dönüştürün.
  4. FillText çağrılarını CSS stili ile HTML metin öğelerine dönüştürün.
  5. GraphicsPath işlemlerini SVG <path> öğelerine dönüştürün.
  6. Elle sayfa yönetimini RenderingOptions.PaperSize ile değiştirin.
  7. Başlangıçta lisans başlatma ekleyin

Taşınım Sonrası Test

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

-VectSharpveIronPDFsü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.
  • Koordinata dayalı yerleştirmeden dönüştürülen öğeler için konumlandırma doğruluğunu kontrol edin
  • Çok sayfalı belgeler için sayfa kesmelerini test edin
  • SVG üzerinden vektör grafiklerin doğru şekilde oluşturulup oluşturulmadığını doğrulayın

IronPDF'e Geçişin Temel Avantajları

VectSharp'tan IronPDF'e geçiş yapmak, belge üretimi için çeşitli avantajlar sunar:

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

Otomatik Düzen: Metin sarma, sayfalandırma ve akış düzeni otomatik olarak gerçekleşir. El ile öğe konumları hesaplamaya gerek yok.

Modern CSS Desteği: Flexbox ve Grid düzenleri dahil tam CSS3 desteği. Duyarlı tasarımlar doğrudan PDF'e dönüştürülür.

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

URL'den PDF'e: Herhangi bir web sayfasını PDF olarak yakalayın—bu işlevsellikVectSharpile mümkün değildir.

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

Daha Az Kod Yoğunluğu:HTML/CSSbeyan edici ve okunabilirdir. Aynı belge, VectSharp'ın emirsel çizim yaklaşımından önemli ölçüde daha az kod gerektirir.

Aktif Geliştirme: 2026 boyunca .NET 10 ve C# 14 benimsenmesi arttıkça, IronPDF'in düzenli güncellemeleri mevcut ve gelecekteki .NET sürümleriyle uyumluluğu sağlar.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku

Iron Destek Ekibi

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