Przejdź do treści stopki
PRZEWODNIKI MIGRACJI

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

ChociażComPDFKitoferuje solidne funkcje manipulacji plikami PDF, kilka czynników skłania zespoły programistów do rozważenia bardziej uznanych alternatyw.

Dojrzałość rynku i porównanie ekosystemów

ComPDFKit boryka się z wyzwaniami typowymi dla nowych graczy na rynku: brakami w dokumentacji, mniejszą społecznością i ograniczonym zasięgiem na Stack Overflow. Dziesięć lat udoskonaleńIronPDF zapewnia stabilność i zasoby wymagane w projektach Enterprise.

Aspekt ComPDFKit IronPDF
HTML do PDF Wymaga ręcznego parsowania HTML Natwyna renderowanie Chromium
Dojrzałość rynku Nowszy uczestnik Ponad 10 lat, wypróbowany w boju
Wielkość społeczności Mniej liczna, ograniczona społeczność Stack Overflow Duża, aktywna społeczność
Dokumentacja Niektóre luki Obszerne samouczki i przewodniki
Pliki do pobrania Rosnąca Ponad 10 milionów pobrań z NuGet
Styl API Wpływ C++, rozbudowane Nowoczesne .NET płynne API
Zarządzanie pamięcią Reczne Release() wywolania Automatyczne zarządzanie GC

Równowaga funkcji

Obie biblioteki obsługują kompleksową funkcjonalność PDF:

Funkcja ComPDFKit IronPDF
HTML do PDF Podstawowy/Ręczny ✅ Natywne Chromium
URL do pliku PDF Ręczna implementacja ✅ Wbudowane
Utwórz plik PDF od podstaw
Edycja PDF
Wyodrębnianie tekstu
Scal/Podziel
Podpisy cyfrowe
Wypełnianie formularzy
Znaki wodne
Wielopłatformowe Windows, Linux, macOS Windows, Linux, macOS

Kluczowe korzyści z migracji

  1. Doskonałe renderowanie HTML: silnik Chromium w IronPDF natywnie obsługuje nowoczesne CSS3, JavaScript i responsywne układy stron
  2. Dojrzały ekosystem: ponad 10 lat udoskonaleń, obszerna dokumentacja i sprawdzona stabilność
  3. Prostsze API: Mniej zbednego kodu, brak recznego zarzadzania pamiecia przy Release() wywolaniach
  4. Lepsza integracja z platformą .NET: natywne async/await, obsługa LINQ, płynne interfejsy
  5. Bogate zasoby: tysiące odpowiedzi na Stack Overflow i przykładów ze społeczności

Przygotowania przed migracją

Wymagania wstępne

Upewnij się, że Twoje środowisko spełnia następujące wymagania:

  • .NET Framework 4.6.2+ lub .NET Core 3.1 / .NET 5-9
  • Visual Studio 2019+ lub VS Code z rozszerzeniem C#
  • Dostęp do menedżera pakietów NuGet
  • Klucz licencyjny IronPDF(bezpłatna wersja próbna dostępna na stronie ironpdf.com)

Audyt wykorzystania ComPDFKit

Uruchom te polecenia w katalogu rozwiązania, aby zidentyfikować wszystkie odwołania do ComPDFKit:

# Find allComPDFKitusages in your codebase
grep -r "using ComPDFKit" --include="*.cs" .
grep -r "CPDFDocument\|CPDFPage\|CPDFAnnotation" --include="*.cs" .

# Find NuGet package references
grep -r "ComPDFKit" --include="*.csproj" .
# Find allComPDFKitusages in your codebase
grep -r "using ComPDFKit" --include="*.cs" .
grep -r "CPDFDocument\|CPDFPage\|CPDFAnnotation" --include="*.cs" .

# Find NuGet package references
grep -r "ComPDFKit" --include="*.csproj" .
SHELL

Zmiany wymagające dostosowania

Zmiana ComPDFKit IronPDF Wpływ
Ładowanie dokumentów CPDFDocument.InitWithFilePath() PdfDocument.FromFile() Zmiana nazwy metody
Zapisywanie document.WriteToFilePath() pdf.SaveAs() Zmiana nazwy metody
Czyszczenie pamięci document.Release() wymagane Automatyczne (GC) Usuń ręczne czyszczenie
Dostęp do strony document.PageAtIndex(i) pdf.Pages[i] Dostęp w stylu tablicowym
Indeksowanie stron bazujący na 0 bazujący na 0 Nie ma potrzeby wprowadzania zmian
Renderowanie HTML Ręczna implementacja RenderHtmlAsPdf() Znaczące uproszczenie
Wyodrębnianie tekstu textPage.GetText() pdf.ExtractAllText() Uproszczone API

Proces migracji krok po kroku

Krok 1: Zaktualizuj pakiety NuGet

Usuń pakietyComPDFKiti zainstaluj IronPDF:

# RemoveComPDFKitpackages
dotnet remove package ComPDFKit.NetCore
dotnet remove package ComPDFKit.NetFramework

# Install IronPDF
dotnet add package IronPdf
# RemoveComPDFKitpackages
dotnet remove package ComPDFKit.NetCore
dotnet remove package ComPDFKit.NetFramework

# Install IronPDF
dotnet add package IronPdf
SHELL

Krok 2: Aktualizacja odniesień do przestrzeni nazw

Zastąp przestrzenie nazwComPDFKitprzez IronPDF:

// Remove these
using ComPDFKit.PDFDocument;
using ComPDFKit.PDFPage;
using ComPDFKit.PDFAnnotation;
using ComPDFKit.Import;

// Add this
using IronPdf;
// Remove these
using ComPDFKit.PDFDocument;
using ComPDFKit.PDFPage;
using ComPDFKit.PDFAnnotation;
using ComPDFKit.Import;

// Add this
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Krok 3: Skonfiguruj licencję

// Add at application startup (Program.cs or Global.asax)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Global.asax)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup (Program.vb or Global.asax)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Kompletna dokumentacja API

Operacje na dokumentach

Zadanie ComPDFKit IronPDF
Utwórz pusty dokument CPDFDocument.CreateDocument() new PdfDocument()
Wczytaj z pliku CPDFDocument.InitWithFilePath(path) PdfDocument.FromFile(path)
Wczytaj ze strumienia CPDFDocument.InitWithStream(stream) PdfDocument.FromStream(stream)
Zapisz do pliku document.WriteToFilePath(path) pdf.SaveAs(path)
Sprawdź liczbę stron document.PageCount pdf.PageCount
Wydanie/Usunięcie document.Release() Nie jest wymagane

Konwersja HTML do PDF

Zadanie ComPDFKit IronPDF
Ciąg znaków HTML do pliku PDF Wymagana ręczna implementacja renderer.RenderHtmlAsPdf(html)
Plik HTML do PDF Wymagana ręczna implementacja renderer.RenderHtmlFileAsPdf(path)
URL do pliku PDF Wymagana ręczna implementacja renderer.RenderUrlAsPdf(url)
Ustaw rozmiar strony Za pomocą parametrów tworzenia strony renderer.RenderingOptions.PaperSize
Ustaw marginesy Poprzez konfigurację edytora renderer.RenderingOptions.MarginTop itp.

Operacje scałania i dzielenia

Zadanie ComPDFKit IronPDF
Połącz dokumenty doc1.ImportPagesAtIndex(doc2, range, index) PdfDocument.Merge(pdf1, pdf2)
Podziel dokument Wyodrębnij strony do nowego dokumentu pdf.CopyPages(start, end)

Przykłady migracji kodu

Konwersja HTML do PDF

Najważniejszą różnicą międzyComPDFKita IronPDF jest renderowanie HTML.Com/PDFKitwymaga ręcznego umieszczania tekstu, podczas gdy IronPDF renderuje HTML natywnie za pomocą silnika Chromium.

Wdrożenie ComPDFKit:

// NuGet: Install-Package ComPDFKit.NetCore
using ComPDFKit.PDFDocument;
using System;

class Program
{
    static void Main()
    {
        // ComPDFKit's .NET SDK has no native HTML-to-PDF rendering.
        // The closest equivalent is to create a blank document and lay
        // out primitives manually, or call ComPDFKit's separate cloud
        // Conversion API (a different SKU).
        var document = CPDFDocument.CreateDocument();
        document.InsertPage(0, 595, 842, string.Empty);

        document.WriteToFilePath("output.pdf");
        document.Release();
    }
}
// NuGet: Install-Package ComPDFKit.NetCore
using ComPDFKit.PDFDocument;
using System;

class Program
{
    static void Main()
    {
        // ComPDFKit's .NET SDK has no native HTML-to-PDF rendering.
        // The closest equivalent is to create a blank document and lay
        // out primitives manually, or call ComPDFKit's separate cloud
        // Conversion API (a different SKU).
        var document = CPDFDocument.CreateDocument();
        document.InsertPage(0, 595, 842, string.Empty);

        document.WriteToFilePath("output.pdf");
        document.Release();
    }
}
Imports ComPDFKit.PDFDocument
Imports System

Module Program
    Sub Main()
        ' ComPDFKit's .NET SDK has no native HTML-to-PDF rendering.
        ' The closest equivalent is to create a blank document and lay
        ' out primitives manually, or call ComPDFKit's separate cloud
        ' Conversion API (a different SKU).
        Dim document = CPDFDocument.CreateDocument()
        document.InsertPage(0, 595, 842, String.Empty)

        document.WriteToFilePath("output.pdf")
        document.Release()
    End Sub
End Module
$vbLabelText   $csharpLabel

Wdrożenie IronPDF:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is HTML content.</p>");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

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

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

ChromePdfRendererIronPDF eliminuje potrzebe recznego pozycjonowania tekstu i zarzadzania edytorem. Aby uzyskać więcej opcji konwersji HTML, zapoznaj się z dokumentacją dotyczącą konwersji HTML do PDF.

Łączenie wielu plików PDF

Wdrożenie ComPDFKit:

// NuGet: Install-Package ComPDFKit.NetCore
using ComPDFKit.PDFDocument;
using ComPDFKit.Import;
using System;

class Program
{
    static void Main()
    {
        var document1 = CPDFDocument.InitWithFilePath("file1.pdf");
        var document2 = CPDFDocument.InitWithFilePath("file2.pdf");

        // Import pages from document2 into document1
        document1.ImportPagesAtIndex(document2, "0-" + (document2.PageCount - 1), document1.PageCount);

        document1.WriteToFilePath("merged.pdf");
        document1.Release();
        document2.Release();
    }
}
// NuGet: Install-Package ComPDFKit.NetCore
using ComPDFKit.PDFDocument;
using ComPDFKit.Import;
using System;

class Program
{
    static void Main()
    {
        var document1 = CPDFDocument.InitWithFilePath("file1.pdf");
        var document2 = CPDFDocument.InitWithFilePath("file2.pdf");

        // Import pages from document2 into document1
        document1.ImportPagesAtIndex(document2, "0-" + (document2.PageCount - 1), document1.PageCount);

        document1.WriteToFilePath("merged.pdf");
        document1.Release();
        document2.Release();
    }
}
Imports ComPDFKit.PDFDocument
Imports ComPDFKit.Import
Imports System

Module Program
    Sub Main()
        Dim document1 = CPDFDocument.InitWithFilePath("file1.pdf")
        Dim document2 = CPDFDocument.InitWithFilePath("file2.pdf")

        ' Import pages from document2 into document1
        document1.ImportPagesAtIndex(document2, "0-" & (document2.PageCount - 1), document1.PageCount)

        document1.WriteToFilePath("merged.pdf")
        document1.Release()
        document2.Release()
    End Sub
End Module
$vbLabelText   $csharpLabel

Wdrożenie IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("file1.pdf");
        var pdf2 = PdfDocument.FromFile("file2.pdf");

        var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
        merged.SaveAs("merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("file1.pdf");
        var pdf2 = PdfDocument.FromFile("file2.pdf");

        var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
        merged.SaveAs("merged.pdf");
    }
}
Imports IronPdf
Imports System
Imports System.Collections.Generic

Module Program
    Sub Main()
        Dim pdf1 = PdfDocument.FromFile("file1.pdf")
        Dim pdf2 = PdfDocument.FromFile("file2.pdf")

        Dim merged = PdfDocument.Merge(New List(Of PdfDocument) From {pdf1, pdf2})
        merged.SaveAs("merged.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

Statyczna metoda MergeIronPDF eliminuje rozbudowany wzorzec ImportPagesAtIndex z lancuchami zakresu stron. Aby uzyskać więcej opcji, zapoznaj się z dokumentacją dotyczącą scałania plików PDF.

Dodawanie znaków wodnych

Znak wodny pokazuje roznice miedzy konfiguracja zComPDFKitoparta na wlasciwosciach CPDFWatermark a stylizacja oparta na HTML w IronPDF.

Wdrożenie ComPDFKit:

// NuGet: Install-Package ComPDFKit.NetCore
using ComPDFKit.PDFDocument;
using ComPDFKit.PDFWatermark;
using System;

class Program
{
    static void Main()
    {
        var document = CPDFDocument.InitWithFilePath("input.pdf");

        CPDFWatermark watermark = document.InitWatermark(
            C_Watermark_Type.WATERMARK_TYPE_TEXT);
        watermark.SetText("CONFIDENTIAL");
        watermark.SetFontName("Helvetica");
        watermark.SetFontSize(48);
        watermark.SetTextRGBColor(255, 0, 0);
        watermark.SetRotation(45);
        watermark.SetOpacity(76); // 0..255
        watermark.SetVertalign(C_Watermark_Vertalign.WATERMARK_VERTALIGN_CENTER);
        watermark.SetHorizalign(C_Watermark_Horizalign.WATERMARK_HORIZALIGN_CENTER);
        watermark.SetPages($"0-{document.PageCount - 1}");
        watermark.SetFront(true);
        watermark.CreateWatermark();

        document.WriteToFilePath("watermarked.pdf");
        document.Release();
    }
}
// NuGet: Install-Package ComPDFKit.NetCore
using ComPDFKit.PDFDocument;
using ComPDFKit.PDFWatermark;
using System;

class Program
{
    static void Main()
    {
        var document = CPDFDocument.InitWithFilePath("input.pdf");

        CPDFWatermark watermark = document.InitWatermark(
            C_Watermark_Type.WATERMARK_TYPE_TEXT);
        watermark.SetText("CONFIDENTIAL");
        watermark.SetFontName("Helvetica");
        watermark.SetFontSize(48);
        watermark.SetTextRGBColor(255, 0, 0);
        watermark.SetRotation(45);
        watermark.SetOpacity(76); // 0..255
        watermark.SetVertalign(C_Watermark_Vertalign.WATERMARK_VERTALIGN_CENTER);
        watermark.SetHorizalign(C_Watermark_Horizalign.WATERMARK_HORIZALIGN_CENTER);
        watermark.SetPages($"0-{document.PageCount - 1}");
        watermark.SetFront(true);
        watermark.CreateWatermark();

        document.WriteToFilePath("watermarked.pdf");
        document.Release();
    }
}
Imports ComPDFKit.PDFDocument
Imports ComPDFKit.PDFWatermark
Imports System

Class Program
    Shared Sub Main()
        Dim document = CPDFDocument.InitWithFilePath("input.pdf")

        Dim watermark As CPDFWatermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_TEXT)
        watermark.SetText("CONFIDENTIAL")
        watermark.SetFontName("Helvetica")
        watermark.SetFontSize(48)
        watermark.SetTextRGBColor(255, 0, 0)
        watermark.SetRotation(45)
        watermark.SetOpacity(76) ' 0..255
        watermark.SetVertalign(C_Watermark_Vertalign.WATERMARK_VERTALIGN_CENTER)
        watermark.SetHorizalign(C_Watermark_Horizalign.WATERMARK_HORIZALIGN_CENTER)
        watermark.SetPages($"0-{document.PageCount - 1}")
        watermark.SetFront(True)
        watermark.CreateWatermark()

        document.WriteToFilePath("watermarked.pdf")
        document.Release()
    End Sub
End Class
$vbLabelText   $csharpLabel

Wdrożenie IronPDF:

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

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("input.pdf");

        pdf.ApplyWatermark("<h1 style='color:rgba(255,0,0,0.3);'>CONFIDENTIAL</h1>",
            rotation: 45,
            verticalAlignment: VerticalAlignment.Middle,
            horizontalAlignment: HorizontalAlignment.Center);

        pdf.SaveAs("watermarked.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("input.pdf");

        pdf.ApplyWatermark("<h1 style='color:rgba(255,0,0,0.3);'>CONFIDENTIAL</h1>",
            rotation: 45,
            verticalAlignment: VerticalAlignment.Middle,
            horizontalAlignment: HorizontalAlignment.Center);

        pdf.SaveAs("watermarked.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Editing
Imports System

Module Program
    Sub Main()
        Dim pdf = PdfDocument.FromFile("input.pdf")

        pdf.ApplyWatermark("<h1 style='color:rgba(255,0,0,0.3);'>CONFIDENTIAL</h1>", 
                           rotation:=45, 
                           verticalAlignment:=VerticalAlignment.Middle, 
                           horizontalAlignment:=HorizontalAlignment.Center)

        pdf.SaveAs("watermarked.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF redukuje wieloetapowa konfiguracje CPDFWatermark do pojedynczego wywolania metody ze stylizacja HTML/CSS. Aby uzyskać więcej opcji, zapoznaj się z dokumentacją dotyczącą znaków wodnych.

Wyodrębnianie tekstu

Wdrożenie ComPDFKit:

using ComPDFKit.PDFDocument;
using System.Text;

var document = CPDFDocument.InitWithFilePath("document.pdf");

// Extract text (verbose)
var allText = new StringBuilder();
for (int i = 0; i < document.PageCount; i++)
{
    var page = document.PageAtIndex(i);
    var textPage = page.GetTextPage();
    allText.AppendLine(textPage.GetText(0, textPage.CountChars()));
    textPage.Release();
    page.Release();
}

document.WriteToFilePath("output.pdf");
document.Release(); // Must remember to release!
using ComPDFKit.PDFDocument;
using System.Text;

var document = CPDFDocument.InitWithFilePath("document.pdf");

// Extract text (verbose)
var allText = new StringBuilder();
for (int i = 0; i < document.PageCount; i++)
{
    var page = document.PageAtIndex(i);
    var textPage = page.GetTextPage();
    allText.AppendLine(textPage.GetText(0, textPage.CountChars()));
    textPage.Release();
    page.Release();
}

document.WriteToFilePath("output.pdf");
document.Release(); // Must remember to release!
Imports ComPDFKit.PDFDocument
Imports System.Text

Dim document = CPDFDocument.InitWithFilePath("document.pdf")

' Extract text (verbose)
Dim allText As New StringBuilder()
For i As Integer = 0 To document.PageCount - 1
    Dim page = document.PageAtIndex(i)
    Dim textPage = page.GetTextPage()
    allText.AppendLine(textPage.GetText(0, textPage.CountChars()))
    textPage.Release()
    page.Release()
Next

document.WriteToFilePath("output.pdf")
document.Release() ' Must remember to release!
$vbLabelText   $csharpLabel

Wdrożenie IronPDF:

using IronPdf;

var pdf = PdfDocument.FromFile("document.pdf");

// Extract text (one-liner)
string allText = pdf.ExtractAllText();

pdf.SaveAs("output.pdf");
// No Release() needed - GC handles cleanup
using IronPdf;

var pdf = PdfDocument.FromFile("document.pdf");

// Extract text (one-liner)
string allText = pdf.ExtractAllText();

pdf.SaveAs("output.pdf");
// No Release() needed - GC handles cleanup
Imports IronPdf

Dim pdf = PdfDocument.FromFile("document.pdf")

' Extract text (one-liner)
Dim allText As String = pdf.ExtractAllText()

pdf.SaveAs("output.pdf")
' No Release() needed - GC handles cleanup
$vbLabelText   $csharpLabel

IronPDF redukuje wieloliniowe wyodrebnianie tekstu z recznymi Release() wywolaniami do jednej metody. Aby uzyskać więcej opcji ekstrakcji, zapoznaj się z dokumentacją dotyczącą ekstrakcji tekstu.

Ochrona hasłem

Wdrożenie IronPDF:

using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>");

// Set security
pdf.SecuritySettings.UserPassword = "userPassword";
pdf.SecuritySettings.OwnerPassword = "ownerPassword";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

pdf.SaveAs("protected.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>");

// Set security
pdf.SecuritySettings.UserPassword = "userPassword";
pdf.SecuritySettings.OwnerPassword = "ownerPassword";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

pdf.SaveAs("protected.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>")

' Set security
pdf.SecuritySettings.UserPassword = "userPassword"
pdf.SecuritySettings.OwnerPassword = "ownerPassword"
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights
pdf.SecuritySettings.AllowUserCopyPasteContent = False

pdf.SaveAs("protected.pdf")
$vbLabelText   $csharpLabel

Aby uzyskać informacje na temat kompleksowych opcji bezpieczeństwa, zapoznaj się z dokumentacją dotyczącą szyfrowania.

Ważne uwagi dotyczące migracji

Usuń wszystkie wywołania Release()

Najbardziej znaczącą zmianą jest wyeliminowanie ręcznego zarządzania pamięcią.ComPDFKitwymaga jawnych Release() wywolan na dokumentach, stronach i stronach tekstowych.IronPDF obsługuje to automatycznie poprzez mechanizm czyszczenia pamięci .NET:

//ComPDFKit- manual cleanup required
document.Release();
page.Release();
textPage.Release();

//IronPDF- no equivalent needed
// GC handles cleanup automatically
//ComPDFKit- manual cleanup required
document.Release();
page.Release();
textPage.Release();

//IronPDF- no equivalent needed
// GC handles cleanup automatically
'ComPDFKit- manual cleanup required
document.Release()
page.Release()
textPage.Release()

'IronPDF- no equivalent needed
' GC handles cleanup automatically
$vbLabelText   $csharpLabel

Renderowanie natywnego HTML

ComPDFKit wymaga ręcznego umieszczania tekstu za pomocą interfejsów API edytora.IronPDF renderuje HTML/CSS natywnie za pomocą silnika Chromium, obsługując nowoczesny CSS3, JavaScript i responsywne układy.

Indeksowanie tej samej strony

Obie biblioteki uzywaja indeksowania od 0 (Pages[0] to pierwsza strona)—nie sa potrzebne zmiany w kodzie dostepu do stron.

Uproszczone wyodrębnianie tekstu

Zastap wieloliniowy wzorzec GetTextPage() + GetText() + Release() jednym wywolaniem ExtractAllText().

Płynne API łączenia

Zastap ImportPagesAtIndex(doc2, "0-9", pageCount) prostym Merge(pdf1, pdf2).

Lista kontrolna po migracji

Po zakończeniu migracji kodu sprawdź, czy:

  • Uruchom wszystkie testy jednostkowe, aby sprawdzić, czy generowanie plików PDF działa poprawnie
  • Porównaj jakość wydruku PDF (silnik Chromium w IronPDF może renderować inaczej — zazwyczaj lepiej)
  • Przetestuj renderowanie HTML z użyciem złożonych arkuszy CSS i kodu JavaScript
  • Sprawdź dokładność wyodrębniania tekstu
  • Testowanie funkcjonalności formularza
  • Testy wydajności operacji wsadowych
  • Przetestuj we wszystkich środowiskach docelowych
  • Aktualizacja potoków CI/CD
  • Usuń pliki licencji ComPDFKit

Dodatkowe zasoby


Migracja zComPDFKitdo IronPDF eliminuje reczne zarzadzanie pamiecia za pomoca Release() wywolan, a dodatkowo zapewnia natywne renderowanie HTML do PDF, ktorego brakuje w ComPDFKit. Przejście na dojrzały ekosystem IronPDF zapewnia szczegółową dokumentację, wsparcie społeczności oraz sprawdzoną stabilność, których wymagają projekty Enterprise.

Zwróć uwagęComPDFKit jest zastrzeżonym znakiem towarowym odpowiedniego właściciela. Ta strona nie jest powiązana z ComPDFKit, nie jest przez nią promowana ani sponsorowana. Wszystkie nazwy produktów, logo 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ę...

Czytaj więcej

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie