IRONSOFTWAREHOME
FILMY

Jak przekonwertować plik PDF na PDF A w języku C# przy użyciu IronPDF

Curtis Chau
Curtis Chau
Updated: 19 lipca 2026

Przejście zGrabzItna IronPDF zmienia proces pracy z plikami PDF w środowisku .NET z opartej na chmurze usługi przechwytywania zrzutów ekranu, wymagającej skomplikowanych wywołań zwrotnych, na bibliotekę działającą w ramach procesu, która generuje prawdziwe wektorowe pliki PDF z tekstem, który można zaznaczać i przeszukiwać. Niniejszy przewodnik zawiera kompleksową, szczegółową ścieżkę migracji, która eliminuje zależności od serwerów zewnętrznych, procedury obsługi wywołań zwrotnych oraz model cenowy oparty na liczbie przechwyceń dla profesjonalnych programistów .NET.

Dlaczego warto przejść zGrabzItna IronPDF

Problem architektury GrabzIt

GrabzIt to oparta na chmurze usługa tworzenia zrzutów ekranu i przechwytywania plików PDF. Chociaż jest wygodna do szybkiej integracji, ma fundamentalne ograniczenia architektoniczne:

  1. **Pliki PDF oparte na obrazach:**GrabzIttworzy pliki PDF oparte na zrzutach ekranu, w których tekst nie jest zaznaczalny — są to w zasadzie obrazy zapakowane w format PDF. Jest to podstawowe ograniczenie dla każdego przypadku użycia wymagającego manipulacji tekstem lub dostępności.

  2. Przetwarzanie zewnętrzne: Cała treść jest wysyłana do serwerówGrabzItw celu przetworzenia — co rodzi obawy dotyczące prywatności i zgodności z przepisami w przypadku danych wrażliwych. Twoje treści HTML opuszczają Twoją infrastrukturę.

  3. **Złożoność wywołań zwrotnych:**GrabzItwykorzystuje asynchroniczny model wywołań zwrotnych, który wymaga infrastruktury do obsługi webhooków. Należy skonfigurować punkty końcowe w celu odbierania wyników, co zwiększa złożoność architektury.

  4. Ceny za przechwycenie: Model płatności za rzeczywiste wykorzystanie może stać się kosztowny przy większej skali. Każde wygenerowanie pliku PDF wiąże się z kosztem.

  5. Brak wyszukiwania tekstu: Ponieważ pliki PDF są oparte na obrazach, wyszukiwanie i wyodrębnianie tekstu nie działa bez OCR — co stanowi dodatkowy etap i koszt.

  6. Większe rozmiary plików: Pliki PDF oparte na obrazach są znacznie większe niż pliki PDF oparte na wektórach, często nawet 5–10 razy.

  7. Zależność od sieci: Nie można generować plików PDF bez połączenia z Internetem, co uniemożliwia pracę w trybie offline.

  8. Opóźnienie: Każda generacja PDF wymaga sieciowej podróży w dwie strony do zewnętrznych serwerów, co dodaje zauważalne opóźnienie w porównaniu do lokalnej generacji wewnątrz procesu.

PorównanieGrabzIti IronPDF

AspektGrabzItIronPDF
Typ pliku PDFNa podstawie obrazu (zrzut ekranu)Prawdziwy wektorowy plik PDF
Zaznaczenie tekstuNiemożliweZaznaczenie całego tekstu
Wyszukiwanie tekstuWymagane OCRWyszukiwanie w języku ojczystym
Miejsce przetwarzaniaSerwery zewnętrzneLokalne/w trakcie realizacji
PrywatnośćDane wysyłane na zewnątrzDane pozostają lokalne
OpóźnienieCzas przesyłu w obie strony (500 ms–5 s)Przetwarzanie lokalne (~100 ms)
Model cenowyNa przechwycenieLicencja na programistę
Funkcja pracy w trybie offlineNieTak
Rozmiar plikuDuży (dane obrazu)Mały (dane wektorowe)
Wymagane oddzwonienieTak (asynchronicznie)Nie (synchroniczne/asynchroniczne)
Obsługa CSS/JSOgraniczonePełny silnik Chromium

IronPDF natively integrates z nowoczesnymi wzorcami .NET i działa całkowicie wewnątrz procesu, eliminując podróż do chmury z twojego pipeline PDF.


Ocena złożoności migracji

Szacowany nakład pracy według funkcji

FunkcjaZłożoność migracji
HTML do PDFBardzo niski
URL do pliku PDFBardzo niski
HTML na obrazNiski
Rozmiar strony/marginesyNiski
Obsługa wywołań zwrotnychNiski
Znaki wodneNiski
Nagłówki/stopkiMedium
Klucze uwierzytelniająceBardzo niski

Zmiana paradygmatu

Podstawową zmianą w tej migracjiGrabzItjest przejście z asynchronicznego przetwarzania w chmurze opartego na wywołaniach zwrotnych na synchroniczne generowanie w ramach procesu:

GrabzIt:   Wyślij HTML → Poczekaj na wywołanie zwrotne → Pobierz wynik z serwera
IronPDF:   Renderuj HTML → Uzyskaj plik PDF natychmiast
Text

Zanim zaczniesz

Wymagania wstępne

  1. **Wersja .NET:**IronPDF obsługuje .NET Framework 4.6.2+ i .NET Core 3.1+ / .NET 5+
  2. Klucz licencyjny: Uzyskaj klucz licencyjny IronPDF na stronie ironpdf.com
  3. Plan usunięcia infrastruktury: Udokumentuj procedury obsługi wywołań zwrotnych i punkty końcowe webhooków na potrzeby wycofania z eksploatacji

Zidentyfikuj wszystkie użycia GrabzIt

# FindGrabzItclient usage
grep -r "GrabzItClient\|GrabzIt\." --include="*.cs" .

# Find callback handlers
grep -r "GrabzIt\|grabzit" --include="*.ashx" --include="*.aspx" --include="*.cs" .

# Find configuration
grep -r "APPLICATION_KEY\|APPLICATION_SECRET\|grabzit" --include="*.config" --include="*.json" .
SHELL

Zmiany w pakiecie NuGet

# Remove GrabzIt
dotnet remove package GrabzIt

# Install IronPDF
dotnet add package IronPdf
SHELL

Szybki start – migracja

Krok 1: Zaktualizuj konfigurację licencji

Przed (GrabzIt):

GrabzIt wymaga klucza aplikacji i tajnego kodu dla każdego uruchomienia klienta:

var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");

Po (IronPDF):

// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

// Then create renderer without credentials
var renderer = new ChromePdfRenderer();

Krok 2: Zaktualizuj importy przestrzeni nazw

// Before (GrabzIt)
using GrabzIt;
using GrabzIt.Parameters;

// After (IronPDF)
using IronPdf;

Kompletna dokumentacija API

Mapowanie GrabzItClient do IronPDF

MetodaGrabzItOdpowiednik IronPDF
new GrabzItClient(key, secret)new ChromePdfRenderer()
HTMLToPDF(html)renderer.RenderHtmlAsPdf(html)
URLToPDF(url)renderer.RenderUrlAsPdf(url)
HTMLToImage(html)pdf.ToBitmap()
Save(callbackUrl)pdf.SaveAs(path)
SaveTo(filePath)pdf.SaveAs(filePath)
GetResult(id)Nie dotyczy
GetStatus(id)Nie dotyczy

Mapowanie PDFOptions do RenderingOptions

GrabzIt PDFOptionsWłaściwości IronPDF
PageSize (A4, Letter)RenderingOptions.PaperSize
CustomIdNie dotyczy
MarginTopRenderingOptions.MarginTop
MarginBottomRenderingOptions.MarginBottom

Mapowanie opcji obrazu do IronPDF

GrabzIt ImageOptionsOdpowiednik IronPDF
Format (png, jpg)bitmap.Save(path, ImageFormat.Png)
WidthRenderingOptions.ViewPortWidth
HeightRenderingOptions.ViewPortHeight

Przykłady migracji kodu

Przykład 1: Konwersja HTML do PDF

Przed (GrabzIt):

// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;

class Program
{
    static void Main()
    {
        var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
        var options = new PDFOptions();
        options.CustomId = "my-pdf";
        
        grabzIt.HTMLToPDF("<html><body><h1>Hello World</h1></body></html>", options);
        grabzIt.SaveTo("output.pdf");
    }
}

Po (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>");
        pdf.SaveAs("output.pdf");
    }
}

Różnica jest znaczna:GrabzItwymaga poświadczeń API (YOUR_APPLICATION_KEY, YOUR_APPLICATION_SECRET), tworzy obiekt PDFOptions z niestandardowym ID, a wynik to PDF oparty na obrazach wysyłany przez zewnętrzne serwery. ChromePdfRendererIronPDF generuje prawdziwy PDF wektorowy lokalnie z wybieralnym tekstem—bez poświadczeń, bez wywołań sieciowych, bez wywołań zwrotnych. Dodatkowe opcje renderowania można znaleźć w dokumentacji dotyczącej konwersji HTML do PDF.

Przykład 2: Konwersja adresów URL do formatu PDF

Przed (GrabzIt):

// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;

class Program
{
    static void Main()
    {
        var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
        var options = new PDFOptions();
        options.PageSize = PageSize.A4;
        
        grabzIt.URLToPDF("https://www.example.com", options);
        grabzIt.SaveTo("webpage.pdf");
    }
}

Po (IronPDF):

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

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

GrabzIt wymaga skonfigurowania PageSize.A4 przez obiekt opcji i uwierzytelnienia z zewnętrznymi serwerami. Metoda RenderUrlAsPdf()IronPDF akceptuje bezpośrednio URL i renderuje go lokalnie, używając pełnego silnika Chromium z pełnym wsparciem dla CSS i JavaScript. Dowiedz się więcej o konwersji adresów URL do formatu PDF.

Przykład 3: Konwersja HTML na obraz

Przed (GrabzIt):

// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;

class Program
{
    static void Main()
    {
        var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
        var options = new ImageOptions();
        options.Format = ImageFormat.png;
        options.Width = 800;
        options.Height = 600;
        
        grabzIt.HTMLToImage("<html><body><h1>Hello World</h1></body></html>", options);
        grabzIt.SaveTo("output.png");
    }
}

Po (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>");
        var images = pdf.ToBitmap();
        images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
    }
}

GrabzIt udostępnia dedykowaną metodę HTMLToImage() z ImageOptions do konfiguracji formatu, szerokości i wysokości.IronPDF osiąga ten sam rezultat, najpierw renderując HTML do PDF za pomocą RenderHtmlAsPdf(), a następnie konwertując na bitmapę za pomocą ToBitmap(). Takie podejście pozwala uzyskać zarówno plik PDF, jak i obraz w wyniku jednej operacji renderowania.


Ważne uwagi dotyczące migracji

Nie są wymagane żadne działania zwrotne

Najważniejszą zmianą architektoniczną jest całkowite wyeliminowanie procedur obsługi wywołań zwrotnych:

// GrabzIt: Async callback pattern
grabzIt.HTMLToPDF(html, options);
grabzIt.Save("https://myserver.com/grabzit-callback");  // Wait for callback...

// Callback handler (separate endpoint)
public class GrabzItHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        string id = context.Request.QueryString["id"];
        GrabzItClient grabzIt = new GrabzItClient("APP_KEY", "APP_SECRET");
        GrabzItFile file = grabzIt.GetResult(id);
        file.Save("output.pdf");
    }
}

// IronPDF: Synchronous - result immediately available
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");  // Done! Nie callback needed.

Usuń wszystkie obsługiwacze wywołań zwrotnych GrabzIt (.ashx pliki, punkty końcowe obsługi, konfiguracja webhooks) po migracji.

Pliki PDF w formacie True Vector

GrabzIt tworzy pliki PDF oparte na obrazach, w których tekst nie jest zaznaczalny.IronPDF generuje prawdziwe pliki PDF wektorowe:

// With IronPDF, text extraction works natively
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();  // Works without OCR!

Więcej szczegółów można znaleźć w dokumentacji dotyczącej ekstrakcji tekstu.

Mniejsze rozmiary plików

Pliki PDF oparte na wektórach są zazwyczaj 5–10 razy mniejsze niż pliki PDF oparte na obrazach generowane przez GrabzIt. Poprawia to koszty przechowywania, czas pobierania oraz możliwość wysyłania załączników w wiadomościach e-mail.

Usuń poświadczenia API

GrabzIt wymaga danych uwierzytelniających API dla każdej operacji:

// Remove these from configuration
// YOUR_APPLICATION_KEY
// YOUR_APPLICATION_SECRET

IronPDF wykorzystuje pojedynczy klucz licencyjny ustawiany jednorazowo podczas uruchamiania aplikacji — nie wymaga uwierzytelniania przy każdym żądaniu.


Rozwiązywanie problemów

Problem 1: Nie znaleziono GrabzItClient

Problem: Po usunięciu GrabzIt, referencje GrabzItClient powodują błędy kompilacji.

Rozwiązanie: Zastąp ChromePdfRenderer:

// Remove:
// var grabzIt = new GrabzItClient("KEY", "SECRET");

// Replace with:
var renderer = new ChromePdfRenderer();

Problem 2: Nie znaleziono opcji PDFOptions

Problem: Klasa PDFOptions nie istnieje w IronPDF.

Rozwiązanie: Użyj właściwości RenderingOptions:

// GrabzIt
var options = new PDFOptions();
options.PageSize = PageSize.A4;

// IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;

Problem 3: Nadal odwołuje się do procedur obsługi wywołań zwrotnych

Problem: Aplikacja oczekuje punktów końcowych wywołania zwrotnego.

Rozwiązanie: Całkowicie usunąć infrastrukturę wywołań zwrotnych.IronPDF zwraca wyniki synchronicznie — nie są potrzebne webhooki.

Problem 4: Nie znaleziono opcji ImageOptions

Problem: Klasa ImageOptions nie istnieje w IronPDF.

Rozwiązanie: Najpierw wygeneruj plik PDF, a następnie dokonaj konwersji:

// GrabzIt
var options = new ImageOptions();
options.Format = ImageFormat.png;
grabzIt.HTMLToImage(html, options);

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
var images = pdf.ToBitmap();
images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);

Lista kontrolna migracji

Przed migracją

  • Sporządź spis wszystkich wywołań APIGrabzItw kodzie źródłowym
  • Zidentyfikuj procedury obsługi wywołań zwrotnych i punkty końcowe webhooków
  • Opis aktualnych opcji i szablonów GrabzIt
  • Uzyskaj klucz licencyjny IronPDF
  • Plan wycofania obsługi wywołań zwrotnych

Migracja kodu

  • Zainstaluj pakiet NuGet IronPDF: dotnet add package IronPdf
  • Usuń pakiet NuGet GrabzIt: dotnet remove package GrabzIt
  • Zastąp GrabzItClient przez ChromePdfRenderer
  • Konwertuj HTMLToPDF() na RenderHtmlAsPdf()
  • Konwertuj URLToPDF() na RenderUrlAsPdf()
  • Zastąp Save(callback) przez SaveAs(path)
  • Zaktualizuj opcje z PDFOptions na RenderingOptions

Migracja infrastruktury

  • Usuń pliki obsługiwaczy wywołań zwrotnych (.ashx, itd.)
  • Usuń klucze APIGrabzItz konfiguracji
  • Usuń konfigurację adresu URL webhooka
  • Dodaj klucz licencyjny IronPDF do konfiguracji
  • Usuń kod sprawdzania dostępności/statusu

Testowanie

  • Przetestuj konwersję HTML do PDF
  • Przetestuj konwersję adresu URL do formatu PDF
  • Sprawdź, czy tekst jest zaznaczalny w plikach PDF wynikowych
  • Wypróbuj, czy wyciąganie tekstu działa (bez OCR)
  • Sprawdź, czy rozmiary plików są mniejsze
  • Test wydajności bez opóźnień sieciowych

Po migracji

  • Anuluj subskrypcję GrabzIt
  • Kod obsługi wywołania zwrotnego archiwum
  • Aktualizacja dokumentacji
  • Monitoruj wszelkie błędy związane z GrabzIt

Zwróć uwagę: GrabzIt jest zarejestrowanym znakiem towarowym swojego wlasciciela. Ta strona nie jest zwiazana, polecana ani sponsorowana przez GrabzIt. 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ę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