Przejdź do treści stopki
PRZEWODNIKI MIGRACJI

Jak przeprowadzić migrację z PDFView4NET do IronPDF w języku C#

Przejście zPDFView4NETnaIronPDFzmienia proces pracy z plikami PDF z komponentu do przeglądania skupionego na interfejsie użytkownika w kompleksową bibliotekę do generowania i edycji plików PDF. Niniejszy przewodnik zawiera kompletną, krok po kroku ścieżkę migracji, która umożliwia przetwarzanie po stronie serwera, obsługę aplikacji internetowych oraz pełne możliwości zarządzania cyklem życia plików PDF, których nie zapewnia PDFView4NET.

Dlaczego warto przejść zPDFView4NETna IronPDF

Zrozumienie PDFView4NET

PDFView4NET to popularny wybór wśród programistów skupiających się głównie na funkcjach przeglądania plików PDF w języku C#.PDFView4NETzapewnia solidne kontrolki do przeglądania plików PDF dostosowane do aplikacji Windows Forms (WinForms) i Windows Presentation Foundation (WPF). Nacisk, jaki biblioteka kładzie na zapewnienie płynnego przeglądania plików PDF, sprawia, że jest to idealny wybór do tworzenia aplikacji desktopowych.

Pomimo swoich zalet,PDFView4NETma ograniczenia, które mogą skłonić programistów do poszukiwania bardziej wszechstronnych bibliotek, takich jak IronPDF, która oferuje kompleksowe rozwiązanie do obsługi plików PDF, obejmujące funkcje tworzenia, przeglądania i edycji, bez ograniczeń do konkretnych komponentów interfejsu użytkownika.

Ograniczenie do trybu tylko do odczytu

PDFView4NET to przede wszystkim komponent do wyświetlania interfejsu użytkownika dla aplikacji WinForms i WPF. Skupia się na wyświetlaniu plików PDF, a nie na ich tworzeniu lub modyfikowaniu. Główne powody migracji:

  1. Ograniczenia dotyczące wyłącznie przeglądania:PDFView4NETjest przeznaczony do przeglądania, a nie do tworzenia plików PDF.

  2. Zależność od frameworka UI: Wymaga środowiska WinForms lub WPF. Wymóg środowiska WinForms lub WPF może ograniczać użycie w innych kontekstach, takich jak aplikacje konsolowe lub usługi internetowe, które nie są obsługiwane przez PDFView4NET.

  3. Brak konwersji HTML do PDF: Nie można konwertować HTML ani adresów URL do formatu PDF. Biblioteka koncentruje się wyłącznie na przeglądaniu i nie posiada wbudowanych funkcji tworzenia ani edycji plików PDF.

  4. Ograniczone możliwości edycji: Podstawowe funkcje edycji w porównaniu z pełnym zestawem funkcji IronPDF.

  5. Brak obsługi po stronie serwera: Nie można uruchamiać w usługach internetowych ani w Azure Functions.

  6. Technologia starszego pokolenia: mniej aktywny rozwój i brak aktualizacji o nowoczesne funkcje.

PorównaniePDFView4NETi IronPDF

Funkcja PDFView4NET IronPDF
Główny cel Przeglądanie plików PDF Kompletne rozwiązanie do obsługi plików PDF (tworzenie, przeglądanie, edycja)
Wymagane frameworki UI WinForms, WPF None
Tworzenie plików PDF Nie Tak
Manipulacja plikami PDF Ograniczone (adnotacje) Tak
Po stronie serwera Nieobsługiwane Pełne wsparcie
Aplikacje internetowe Nie Tak
Aplikacje konsolowe Ograniczone Pełne wsparcie
Azure/Docker Nie Tak
HTML do PDF Nie Tak
Kontekst wieloplatformowy Nie Tak
Łatwość integracji Medium High

IronPDF wyróżnia się wszechstronnością i bogatym zestawem funkcji, co czyni go szczególnie atrakcyjnym dla programistów potrzebujących kompleksowego podejścia do obsługi plików PDF w języku C#. Biblioteka obsługuje tworzenie, przeglądanie i edycję plików PDF oraz wiele innych funkcji, odpowiadając na potrzeby wykraczające daleko poza możliwości przeglądania oferowane przez PDFView4NET.

Dla zespołów planujących wdrożenie .NET 10 i C# 14 w latach 2025 i 2026,IronPDFzapewnia niezależność kontekstową — może być używany w różnych kontekstach, w tym w aplikacjach internetowych, usługach i aplikacjach konsolowych. Ta elastyczność ma kluczowe znaczenie dla projektów wymagających obsługi wielu platform i różnorodnych scenariuszy wdrożeniowych.


Zanim zaczniesz

Wymagania wstępne

  1. Środowisko .NET: .NET Framework 4.6.2+ lub .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Dostęp do NuGet: Możliwość instalowania pakietów NuGet
  3. Licencja IronPDF: Uzyskaj klucz licencyjny na stronie ironpdf.com

Zmiany w pakiecie NuGet


<PackageReference Include="O2S.Components.PDFView4NET" Version="*" Remove />

<PackageReference Include="IronPdf" Version="2024.*" />

<PackageReference Include="O2S.Components.PDFView4NET" Version="*" Remove />

<PackageReference Include="IronPdf" Version="2024.*" />
XML

Lub za pomocą CLI:

dotnet remove package O2S.Components.PDFView4NET
dotnet add package IronPdf
dotnet remove package O2S.Components.PDFView4NET
dotnet add package IronPdf
SHELL

Konfiguracja licencji

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Kompletna dokumentacija API

Zmiany w przestrzeni nazw

// Before: PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using O2S.Components.PDFView4NET.Printing;

// After: IronPDF
using IronPdf;
// Before: PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using O2S.Components.PDFView4NET.Printing;

// After: IronPDF
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Mapowania podstawowych interfejsów API

PDFView4NET IronPDF
PDFFile.Open(path) PdfDocument.FromFile(path)
PDFFile.Open(stream) PdfDocument.FromStream(stream)
pdfFile.GetPage(index) pdf.Pages[index]
pdfFile.PageCount pdf.PageCount
PDFPrintDocument pdf.Print()
pdfFile.Close() pdf.Dispose()
HtmlToPdfConverter ChromePdfRenderer
Nie dotyczy PdfDocument.Merge()
Nie dotyczy pdf.ApplyWatermark()
Nie dotyczy pdf.SecuritySettings

Przykłady migracji kodu

Przykład 1: Konwersja adresu URL do formatu PDF

Przed (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdfConverter converter = new HtmlToPdfConverter();
        converter.NavigateUri = new Uri("https://example.com");
        converter.ConvertHtmlToPdf();
        converter.SavePdf("output.pdf");
    }
}
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdfConverter converter = new HtmlToPdfConverter();
        converter.NavigateUri = new Uri("https://example.com");
        converter.ConvertHtmlToPdf();
        converter.SavePdf("output.pdf");
    }
}
Imports O2S.Components.PDFView4NET
Imports O2S.Components.PDFView4NET.HtmlToPdf
Imports System

Class Program
    Shared Sub Main()
        Dim converter As New HtmlToPdfConverter()
        converter.NavigateUri = New Uri("https://example.com")
        converter.ConvertHtmlToPdf()
        converter.SavePdf("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Po (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

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

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

PDFView4NET używa HtmlToPdfConverter z właściwością NavigateUri ustawioną na obiekt Uri, po czym wywołuje ConvertHtmlToPdf(), a następnie SavePdf().IronPDFupraszcza to do pojedynczego ChromePdfRenderer z RenderUrlAsPdf(), który akceptuje bezpośrednio ciąg znaków URL, zwracając PdfDocument, który zapisujesz za pomocą SaveAs(). PodejścieIronPDFoferuje bardziej przejrzystą składnię i lepszą integrację z nowoczesnymi aplikacjami .NET. Kompleksowe przykłady można znaleźć w dokumentacji dotyczącej konwersji HTML do PDF.

Przykład 2: Konwersja ciągu znaków HTML do formatu PDF

Przed (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        HtmlToPdfConverter converter = new HtmlToPdfConverter();
        converter.HtmlContent = htmlContent;
        converter.ConvertHtmlToPdf();
        converter.SavePdf("document.pdf");
    }
}
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        HtmlToPdfConverter converter = new HtmlToPdfConverter();
        converter.HtmlContent = htmlContent;
        converter.ConvertHtmlToPdf();
        converter.SavePdf("document.pdf");
    }
}
Imports O2S.Components.PDFView4NET
Imports O2S.Components.PDFView4NET.HtmlToPdf
Imports System

Class Program
    Shared Sub Main()
        Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
        Dim converter As New HtmlToPdfConverter()
        converter.HtmlContent = htmlContent
        converter.ConvertHtmlToPdf()
        converter.SavePdf("document.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Po (IronPDF):

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

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
        pdf.SaveAs("document.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

PDFView4NET używa właściwości HtmlContent do ustawienia ciągu HTML, a następnie wymaga wywołania ConvertHtmlToPdf(), po którym następuje SavePdf().IronPDFzapewnia bardziej płynny interfejs API, w którym RenderHtmlAsPdf() akceptuje bezpośrednio ciąg HTML i zwraca PdfDocument. Nazwy metod są bardziej intuicyjne: RenderHtmlAsPdf vs ConvertHtmlToPdf. Dowiedz się więcej z naszych samouczków.

Przykład 3: Wyodrębnianie tekstu z pliku PDF

Przed (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        using (FileStream fs = File.OpenRead("document.pdf"))
        {
            PDFDocument document = new PDFDocument(fs);
            string text = "";
            for (int i = 0; i < document.Pages.Count; i++)
            {
                text += document.Pages[i].ExtractText();
            }
            Console.WriteLine(text);
        }
    }
}
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        using (FileStream fs = File.OpenRead("document.pdf"))
        {
            PDFDocument document = new PDFDocument(fs);
            string text = "";
            for (int i = 0; i < document.Pages.Count; i++)
            {
                text += document.Pages[i].ExtractText();
            }
            Console.WriteLine(text);
        }
    }
}
Imports O2S.Components.PDFView4NET
Imports System
Imports System.IO

Class Program
    Shared Sub Main()
        Using fs As FileStream = File.OpenRead("document.pdf")
            Dim document As New PDFDocument(fs)
            Dim text As String = ""
            For i As Integer = 0 To document.Pages.Count - 1
                text &= document.Pages(i).ExtractText()
            Next
            Console.WriteLine(text)
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

Po (IronPDF):

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

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        string text = pdf.ExtractAllText();
        Console.WriteLine(text);
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        string text = pdf.ExtractAllText();
        Console.WriteLine(text);
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim pdf = PdfDocument.FromFile("document.pdf")
        Dim text As String = pdf.ExtractAllText()
        Console.WriteLine(text)
    End Sub
End Class
$vbLabelText   $csharpLabel

Ten przykład podkreśla istotną różnicę w API.PDFView4NETwymaga ręcznego utworzenia FileStream, instancjonowania PDFDocument ze strumieniem, a następnie przechodzenia w pętli przez document.Pages.Count i łączenia Pages[i].ExtractText() dla każdej strony.

IronPDF znacznie to upraszcza: PdfDocument.FromFile() ładuje plik PDF bezpośrednio ze ścieżki, a ExtractAllText() wyodrębnia tekst ze wszystkich stron za pomocą jednego wywołania metody. Bez ręcznego zarządzania strumieniem, bez pętli, bez łączenia ciągów znaków — wystarczą dwie linijki kodu.


Ważne uwagi dotyczące migracji

Zmiana klasy konwertera

PDFView4NET używa HtmlToPdfConverter;IronPDFużywa ChromePdfRenderer:

// PDFView4NET
HtmlToPdfConverter converter = new HtmlToPdfConverter();

// IronPDF
var renderer = new ChromePdfRenderer();
// PDFView4NET
HtmlToPdfConverter converter = new HtmlToPdfConverter();

// IronPDF
var renderer = new ChromePdfRenderer();
' PDFView4NET
Dim converter As New HtmlToPdfConverter()

' IronPDF
Dim renderer = New ChromePdfRenderer()
$vbLabelText   $csharpLabel

API oparte na właściwościach a API oparte na metodach

PDFView4NET ustawia właściwości przed konwersją:

// PDFView4NET: Set properties, then convert
converter.HtmlContent = htmlContent;
converter.NavigateUri = new Uri(url);
converter.ConvertHtmlToPdf();
converter.SavePdf("output.pdf");

// IronPDF: Method parameters with fluent API
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("output.pdf");
// PDFView4NET: Set properties, then convert
converter.HtmlContent = htmlContent;
converter.NavigateUri = new Uri(url);
converter.ConvertHtmlToPdf();
converter.SavePdf("output.pdf");

// IronPDF: Method parameters with fluent API
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("output.pdf");
' PDFView4NET: Set properties, then convert
converter.HtmlContent = htmlContent
converter.NavigateUri = New Uri(url)
converter.ConvertHtmlToPdf()
converter.SavePdf("output.pdf")

' IronPDF: Method parameters with fluent API
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Zmiana w ładowaniu dokumentów

// PDFView4NET: Requires FileStream
using (FileStream fs = File.OpenRead("document.pdf"))
{
    PDFDocument document = new PDFDocument(fs);
}

// IronPDF: Direct file path
var pdf = PdfDocument.FromFile("document.pdf");
// PDFView4NET: Requires FileStream
using (FileStream fs = File.OpenRead("document.pdf"))
{
    PDFDocument document = new PDFDocument(fs);
}

// IronPDF: Direct file path
var pdf = PdfDocument.FromFile("document.pdf");
Imports System.IO
Imports PDFView4NET
Imports IronPDF

' PDFView4NET: Requires FileStream
Using fs As FileStream = File.OpenRead("document.pdf")
    Dim document As New PDFDocument(fs)
End Using

' IronPDF: Direct file path
Dim pdf = PdfDocument.FromFile("document.pdf")
$vbLabelText   $csharpLabel

Zmiana dostępu do strony

// PDFView4NET: document.Pages.Count and Pages[i]
for (int i = 0; i < document.Pages.Count; i++)
{
    document.Pages[i].ExtractText();
}

// IronPDF: pdf.PageCount and Pages[i] or ExtractAllText()
string text = pdf.ExtractAllText();
// Or per-page: pdf.ExtractTextFromPage(0);
// PDFView4NET: document.Pages.Count and Pages[i]
for (int i = 0; i < document.Pages.Count; i++)
{
    document.Pages[i].ExtractText();
}

// IronPDF: pdf.PageCount and Pages[i] or ExtractAllText()
string text = pdf.ExtractAllText();
// Or per-page: pdf.ExtractTextFromPage(0);
' PDFView4NET: document.Pages.Count and Pages(i)
For i As Integer = 0 To document.Pages.Count - 1
    document.Pages(i).ExtractText()
Next

' IronPDF: pdf.PageCount and Pages(i) or ExtractAllText()
Dim text As String = pdf.ExtractAllText()
' Or per-page: pdf.ExtractTextFromPage(0)
$vbLabelText   $csharpLabel

Zmiana metody zapisywania

// PDFView4NET: SavePdf()
converter.SavePdf("output.pdf");

// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
// PDFView4NET: SavePdf()
converter.SavePdf("output.pdf");

// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
$vbLabelText   $csharpLabel

Nowe możliwości po migracji

Po migracji doIronPDFzyskujesz możliwości, którychPDFView4NETnie jest w stanie zapewnić:

Łączenie plików PDF

var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");
Dim pdf1 = PdfDocument.FromFile("chapter1.pdf")
Dim pdf2 = PdfDocument.FromFile("chapter2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("complete_book.pdf")
$vbLabelText   $csharpLabel

Znaki wodne w HTML

var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
    <div style='
        font-size: 72pt;
        color: rgba(255, 0, 0, 0.2);
        transform: rotate(-45deg);
    '>
        CONFIDENTIAL
    </div>");
pdf.SaveAs("watermarked.pdf");
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
    <div style='
        font-size: 72pt;
        color: rgba(255, 0, 0, 0.2);
        transform: rotate(-45deg);
    '>
        CONFIDENTIAL
    </div>");
pdf.SaveAs("watermarked.pdf");
Dim pdf = PdfDocument.FromFile("document.pdf")
pdf.ApplyWatermark("
    <div style='
        font-size: 72pt;
        color: rgba(255, 0, 0, 0.2);
        transform: rotate(-45deg);
    '>
        CONFIDENTIAL
    </div>")
pdf.SaveAs("watermarked.pdf")
$vbLabelText   $csharpLabel

Ochrona hasłem

var pdf = PdfDocument.FromFile("document.pdf");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SaveAs("protected.pdf");
var pdf = PdfDocument.FromFile("document.pdf");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SaveAs("protected.pdf");
Dim pdf = PdfDocument.FromFile("document.pdf")
pdf.SecuritySettings.OwnerPassword = "owner123"
pdf.SecuritySettings.UserPassword = "user456"
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SaveAs("protected.pdf")
$vbLabelText   $csharpLabel

Wypełnianie formularzy

var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("FirstName").Value = "John";
pdf.Form.GetFieldByName("LastName").Value = "Doe";
pdf.SaveAs("filled_form.pdf");
var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("FirstName").Value = "John";
pdf.Form.GetFieldByName("LastName").Value = "Doe";
pdf.SaveAs("filled_form.pdf");
Dim pdf = PdfDocument.FromFile("form.pdf")
pdf.Form.GetFieldByName("FirstName").Value = "John"
pdf.Form.GetFieldByName("LastName").Value = "Doe"
pdf.SaveAs("filled_form.pdf")
$vbLabelText   $csharpLabel

Przetwarzanie po stronie serwera

PDFView4NET nie może działać w środowiskach serwerowych.IronPDFwyróżnia się w tym zakresie:

// ASP.NET Core
[HttpGet]
public IActionResult GeneratePdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(GetReportHtml());
    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}
// ASP.NET Core
[HttpGet]
public IActionResult GeneratePdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(GetReportHtml());
    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}
<HttpGet>
Public Function GeneratePdf() As IActionResult
    Dim renderer As New ChromePdfRenderer()
    Dim pdf = renderer.RenderHtmlAsPdf(GetReportHtml())
    Return File(pdf.BinaryData, "application/pdf", "report.pdf")
End Function
$vbLabelText   $csharpLabel

Podsumowanie porównania funkcji

Funkcja PDFView4NET IronPDF
Wyświetl pliki PDF Tak (UI) Nie (użyj przeglądarki)
Załaduj pliki PDF Tak Tak
Zapisz pliki PDF Ograniczone Tak
HTML do PDF Nie Tak
URL do pliku PDF Nie Tak
Łączenie plików PDF Nie Tak
Podział plików PDF Ograniczone Tak
Znaki wodne Nie Tak
Nagłówki/stopki Nie Tak
Ochrona hasłem Nie Tak
Podpisy cyfrowe Nie Tak
Ekstrakcja tekstu Ograniczone Tak
Wypełnij formularze Ograniczone Tak
WinForms Tak Tak
WPF Tak Tak
Konsola Ograniczone Tak
ASP.NET Nie Tak
Azure Nie Tak
Docker Nie Tak

Lista kontrolna migracji

Przed migracją

  • Określ wymagania dotyczące przeglądania (ustal, czy możliwościIronPDFmogą zastąpić przeglądanie plików PDF w interfejsie użytkownika)
  • Procesy drukowania dokumentów
  • Wymagania dotyczące obróbki plików PDF
  • W razie potrzeby zaplanuj wymianę przeglądarki (IronPDF koncentruje się na generowaniu/manipulacji)
  • Uzyskaj klucz licencyjnyIronPDFze strony ironpdf.com

Zmiany w pakiecie

  • Usuń pakiet NuGet O2S.Components.PDFView4NET
  • Zainstaluj pakiet NuGet IronPdf: dotnet add package IronPdf

Zmiany w kodzie

  • Zaktualizuj importy przestrzeni nazw (using O2S.Components.PDFView4NET;using IronPdf;)
  • Zastąp HtmlToPdfConverter przez ChromePdfRenderer
  • Zastąp converter.HtmlContent + ConvertHtmlToPdf() przez renderer.RenderHtmlAsPdf(html)
  • Zastąp converter.NavigateUri + ConvertHtmlToPdf() przez renderer.RenderUrlAsPdf(url)
  • Zastąp converter.SavePdf() przez pdf.SaveAs()
  • Zastąp PDFDocument(stream) przez PdfDocument.FromFile(path)
  • Zastąp ręczne wyodrębnianie pętli stron za pomocą pdf.ExtractAllText()
  • Dodaj inicjalizację licencji podczas uruchamiania aplikacji

Po migracji

  • Sprawdź ładowanie i zapisywanie plików PDF
  • Sprawdź funkcjonalność wyodrębniania tekstu
  • Przetestuj konwersję HTML do PDF
  • Sprawdź, czy wdrożenie serwera działa (nowa funkcja)
  • W razie potrzeby przetestuj na różnych platformach (nowa funkcja)
  • Usuń kod PDF dotyczący interfejsu użytkownika, jeśli jest to wersja tylko dla serwera

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ę...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie