IRONSOFTWAREHOME
FILMY

Jak przekonwertować plik ZIP HTML do formatu PDF w języku C# | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 lipca 2026

VectSharp (autorstwa Giorgio Bianchini, arklumpus/VectSharp) to lekka wieloplatformowa biblioteka grafiki wektorowej dla .NET Standard 2.0, często używana do wizualizacji naukowej i ilustracji technicznych. Kiedy zespoły deweloperskie potrzebują generować dokumenty biznesowe, raporty, faktury lub treści oparte na HTML, paradygmat bazujący na graficeVectSharptworzy tarcia. Jest zaprojektowany do tworzenia figur i wykresów, a nie do generowania dokumentów.

Niniejszy przewodnik zawiera kompletną ścieżkę migracji zVectSharpdo IronPDF wraz z instrukcjami krok po kroku, porównaniami kodu i praktycznymi przykładami dla profesjonalnych programistów .NET rozważających tę zmianę.

Dlaczego warto przejść z VectSharp

VectSharp to biblioteka grafiki wektorowej zaprojektowana do tworzenia diagramów, wykresów i ilustracji technicznych z modułowymi warstwami wyjściowymi, w tym VectSharp.PDF, VectSharp.SVG i VectSharp.Raster. Nie jest przeznaczony do generowania dokumentów—jest to biblioteka rysowania, której pakiet VectSharp.PDF dodaje metodę rozszerzeń SaveAsPDF na Document. Główne powody, dla których zespoły programistów rozważają migrację, to:

**Tylko w kontekście naukowym:**VectSharpjest przeznaczony do wizualizacji danych i tworzenia wykresów, a nie do dokumentów biznesowych, takich jak faktury, raporty czy certyfikaty.

**Brak obsługi HTML:**VectSharpnie może konwertować HTML ani CSS do formatu PDF. Każdy element musi być rysowany ręcznie przy użyciu poleceń grafiki wektorowej.

API oparte na współrzędnych: Każdy element musi być umieszczony przy użyciu dokładnych współrzędnych X,Y. Nie ma automatycznego układu, przepływu ani zawijania tekstu.

Brak stylów CSS: cała stylizacja odbywa się programowo poprzez wywołania metod. Programiści stron internetowych nie mogą wykorzystać swojej dotychczasowej wiedzy na temat CSS.

**Brak obsługi JavaScript:**VectSharpnie może renderować dynamicznych treści internetowych, interaktywnych wykresów ani wizualizacji opartych na JavaScript.

Brak układu tekstu: Automatyczne zawijanie tekstu, paginacja i układ przepływu nie są dostępne. Programiści muszą ręcznie obliczyć pozycje tekstu i podziały stron.

Paradygmat "Graphics-First": Biblioteka jest przeznaczona do tworzenia diagramów, a nie raportów czy faktur. Tworzenie dokumentów wymaga znacznej ilości pracy ręcznej.

Główny problem: biblioteka graficzna a generator dokumentów

VectSharp wymaga ręcznego rysowania wektorowego każdego elementu:

// VectSharp: Podręcznik 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(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 20),
    Colours.White);
// ... continue drawing every single element manually
C#

IronPDF wykorzystuje HTML — uniwersalny format dokumentów:

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

##IronPDF vs VectSharp: Porównanie funkcji

Zrozumienie różnic architektonicznych pomaga decydentom technicznym w ocenie inwestycji w migrację:

FunkcjaVectSharpIronPDF
Główne zastosowanieGrafika wektorowaTworzenie dokumentów
Wynik w formacie PDFTakTak
Obsługa HTMLNieTak
LicencjonowanieTylko LGPL-3.0Komercjalne
Otwarte ŹródłoTakCzęściowo (funkcje komercyjne)
Najlepsze dlaWizualizacje naukoweOgólne dokumenty PDF
DostosowanieOgraniczone do grafikiObszerne, związane z dokumentacją
HTML do PDFNiePełny Chromium
URL do pliku PDFNieTak
Obsługa CSSNiePełny CSS3
JavaScriptNiePełna wersja ES2024
Automatyczny układNieTak
Automatyczne podziały stronNieTak
Zawijanie tekstuPodręcznikAutomatyczne
Łączenie plików PDFNieTak
Podział plików PDFNieTak
Ochrona hasłemNieTak
Podpisy cyfroweNieTak
Krzywa uczenia sięWysokie (współrzędne)Niski (HTML/CSS)
Rozbudowanie koduBardzo wysokaNiski

Szybki start: Migracja zVectSharpdo IronPDF

Migrację można rozpocząć natychmiast, wykonując te podstawowe kroki.

Krok 1: Zastąp pakiety NuGet

Usuń wszystkie pakiety VectSharp:

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

Zainstaluj IronPDF:

# Install IronPDF
dotnet add package IronPdf
SHELL

Krok 2: Aktualizacja przestrzeni nazw

Zastąp przestrzenie nazwVectSharpprzestrzenią nazw IronPDF:

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

// After (IronPDF)
using IronPdf;

Krok 3: Inicjalizacja licencji

Dodaj inicjalizację licencji podczas uruchamiania aplikacji:

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

Przykłady migracji kodu

Konwersja HTML do PDF

VectSharp nie obsługuje konwersji HTML do PDF. Ta fundamentalna różnica w możliwościach determinuje wiele decyzji dotyczących migracji.

Podejście VectSharp:

// 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#

Podejście IronPDF:

// 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 wymaga stworzenia obiektu Document, Page i Graphics, następnie ręcznego rozmieszczenia tekstu z dokładnymi współrzędnymi i obiektami czcionek.IronPDF renderuje HTML bezpośrednio z pełną obsługą stylów CSS.

W przypadku zaawansowanych scenariuszy konwersji HTML do PDF zapoznaj się z przewodnikiem po konwersji HTML do PDF.

Tworzenie dokumentów wielostronicowych

Dokumenty wielostronicowe ujawniają różnice architektoniczne między tymi bibliotekami .NET do obsługi plików PDF.

Podejście VectSharp:

// 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#

Podejście IronPDF:

// 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 wymaga stworzenia oddzielnych obiektów Page, oddzielnych kontekstów Graphics i ręcznego rozmieszczenia każdego elementu tekstowego za pomocą współrzędnych i obiektów czcionek dla każdej strony.IronPDF używa pojedynczego ciągu HTML z CSS page-break-after: always do automatycznego tworzenia dokumentów wielostronicowych.

Rysowanie kształtów i tekstu

Możliwości graficzne pokazują, w czymVectSharpprzoduje — ale także gdzie standardy internetowe zapewniają równoważną funkcjonalność przy mniejszym nakładzie kodu.

Podejście VectSharp:

// 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#

Podejście IronPDF:

// 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 wymaga stworzenia obiektów GraphicsPath, wywołania Arc() z dokładnymi parametrami matematycznymi oraz zarządzania kolorami przez Colour.FromRgb().IronPDF korzysta ze znanych właściwości CSS: background-color, border-radius: 50% dla kół oraz standardowych marginesów.

Dokumentacja APIVectSharpdo IronPDF

To mapowanie przyspiesza migrację, pokazując bezpośrednie odpowiedniki API:

VectSharpIronPDF
DocumentChromePdfRenderer
PageAutomatyczne
GraphicsHTML/CSS
graphics.FillRectangle()CSS background-color na <div>
graphics.StrokeRectangle()CSS border na <div>
graphics.FillText()Elementy tekstowe HTML
graphics.StrokePath()Obramowania SVG lub CSS
GraphicsPathSVG element <path>
Colour.FromRgb()Wartości kolorów CSS
Font / FontFamilyCSS font-family
doc.SaveAsPDF()pdf.SaveAs()
Ręczne dostosowywanie rozmiaru stronyRenderingOptions.PaperSize

Strategie migracji

Strategia 1: Konwersja kodu rysunkowego na HTML/CSS

Zastąp rysowanie oparte na współrzędnych elementami HTML:

// 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>

Strategia 2: Użyj formatu SVG do grafiki wektorowej

W przypadku złożonych kształtów należy używać wbudowanego kodu SVG w HTML:

//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#

Strategia 3: Korzystaj z bibliotek wykresów JavaScript

W przypadku wizualizacji naukowych — specjalnościVectSharp—IronPDF może wykorzystywać potężne biblioteki JavaScript, takie jak Chart.js, D3.js lub Plotly:

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

Typowe problemy związane z migracją i ich rozwiązania

Problem 1: Różnice w układach współrzędnych

VectSharp wykorzystuje punkty od początku lewego górnego rogu z ręcznym pozycjonowaniem.

Rozwiązanie: Użyj pozycjonowania CSS:

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

Problem 2: Obiekty czcionek

VectSharp programowo tworzy obiekty Font i FontFamily.

Rozwiązanie: Użyj CSS font-family:

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

Problem 3: Obsługa kolorów

VectSharp używa wywołań metod Colour.FromRgb().

Rozwiązanie: Użyj kolorów CSS:

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

Problem 4: Ścieżki graficzne

VectSharp korzysta z złożonego API GraphicsPath z metodami MoveTo, LineTo, Arc.

Rozwiązanie: Użyj formatu SVG dla grafiki wektorowej:

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

Lista kontrolna migracji VectSharp

Zadania przed migracją

Przeprowadź audyt kodu źródłowego, aby zidentyfikować wszystkie przypadki użycia VectSharp:

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

Rozmiary stron dokumentu (wzorce new Page(595, 842)). Zwróć uwagę na schematy kolorów używając Colour.FromRgb(). Określ konfiguracje czcionek. Mapuj złożoną grafikę wektorową używając GraphicsPath do konwersji SVG.

Zadania związane z aktualizacją kodu

  1. Usuń pakietyVectSharpNuGet
  2. Zainstaluj pakiet NuGet IronPDF
  3. Zaktualizuj instrukcje using z VectSharp na IronPdf
  4. Konwertuj wywołania FillRectangle na boksy CSS za pomocą background-color
  5. Konwertuj wywołania FillText na elementy tekstowe HTML z stylizacją CSS
  6. Konwertuj operacje GraphicsPath na elementy <path> SVG
  7. Zastąp ręczne zarządzanie stronami za pomocą RenderingOptions.PaperSize
  8. Dodaj inicjalizację licencji podczas uruchamiania

Testy po migracji

Po migracji należy zweryfikować następujące aspekty:

  • Porównaj wygląd wyjściowy wersjiVectSharpi IronPDF
  • Zweryfikuj zgodność kolorów używając CSS odpowiedników wartości Colour.FromRgb()
  • Sprawdź dokładność pozycjonowania elementów przekształconych z rozmieszczenia opartego na współrzędnych
  • Sprawdź podziały stron w dokumentach wielostronicowych
  • Sprawdź, czy grafika wektorowa wyświetla się poprawnie w formacie SVG

Kluczowe korzyści z migracji do IronPDF

Przejście zVectSharpna IronPDF zapewnia kilka korzyści w zakresie generowania dokumentów:

Treści oparte na HTML: Programiści stron internetowych mogą wykorzystać swoje dotychczasowe umiejętności w zakresie HTML i CSS. Nie ma potrzeby uczenia się interfejsów API rysowania opartych na współrzędnych.

Automatyczny układ: zawijanie tekstu, paginacja i układ przepływu odbywają się automatycznie. Nie należy ręcznie obliczać pozycji elementów.

Obsługa nowoczesnego CSS: Pełna obsługa CSS3, w tym układy Flexbox i Grid. Responsywne projekty są bezpośrednio konwertowane do formatu PDF.

Wykonanie JavaScript: Interaktywne wykresy z Chart.js, D3.js lub Plotly wyświetlają się poprawnie. Treści dynamiczne działają zgodnie z oczekiwaniami.

URL-to-PDF: Przechwytuj dowolną stronę internetową jako plik PDF — funkcja niedostępna w VectSharp.

Operacje na plikach PDF: scałanie, dzielenie, dodawanie znaków wodnych, ochrona hasłem i podpisy cyfrowe to wbudowane funkcje.

**Mniejsza rozbudowa kodu:**HTML/CSSjest deklaratywny i czytelny. Ten sam dokument wymaga znacznie mniej kodu niż imperatywne podejście do rysowania stosowane w VectSharp.

Aktywna Praca Rozwojowa: Regularne aktualizacje IronPDF zapewniają zgodność z bieżącymi i przyszłymi wersjami .NET.

Zwróć uwagę: VectSharp jest zarejestrowanym znakiem towarowym jego odpowiedniego właściciela. Ta strona nie jest powiązana, zatwierdzona ani sponsorowana przez VectSharp. Wszystkie nazwy produktów, loga i marki są własnością ich odpowiednich właścicieli. Porównania mają charakter wyłącznie informacyjny i odzwierciedlają informacje dostępne publicznie w momencie pisania.
Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta