Przejdź do treści stopki
KORZYSTANIE Z IRONPDF

Jak wybrać odpowiedni SDK PDF dla .NET w C#

Wielu programistów .NET poszukujących zestawu SDK do obsługi plików PDF napotyka ten sam problem: biblioteki wymagające rozbudowanej konfiguracji, nieprzejrzyste poziomy licencji oraz interfejsy API, które zostały wyraźnie zaprojektowane w oparciu o specyfikację PDF, a nie ergonomię programisty. IronPDF to biblioteka PDF dla platformy .NET stworzona w celu wyeliminowania tych utrudnień. Umożliwia tworzenie i edycję plików PDF, obsługę formularzy oraz zabezpieczanie dokumentów za pomocą jednego pakietu NuGet, który działa w środowiskach .NET Framework, .NET Core i .NET 10.

Rozpocznij bezpłatny okres próbny i dołącz do zespołów w NASA, Tesli i 3M, które polegają na IronPDF w swoich procesach obiegu dokumentów.

Jakie kryteria mają znaczenie przy wyborze biblioteki .NET PDF SDK?

Wybór biblioteki PDF do użytku produkcyjnego wymaga oceny kompromisów, których nie ujawni szybki test instalacji NuGet. Cztery kryteria konsekwentnie odróżniają biblioteki odpowiednie od tych gotowych do użycia w produkcji.

Dokładność renderowania i jakość silnika HTML

Najważniejszym wyborem jest to, czy biblioteka korzysta z prawdziwego silnika przeglądarki (Chromium lub WebKit), czy z niestandardowego renderera HTML-do-PDF. Niestandardowe renderery obsługują podzbiór CSS2 — podstawowa typografia i elementy float działają, ale flexbox, CSS Grid i treści renderowane przez JavaScript nie działają. Silnik oparty na Chromium renderuje HTML dokładnie tak samo jak Chrome, więc istniejące widoki Razor, szablony raportów i JavaScript po stronie klienta generują dokładne wyniki bez konieczności ręcznego dostosowywania układu. Aby sprawdzić dokładność renderowania, należy wyrenderować dokument wykorzystujący CSS Grid i treści generowane przez JavaScript; Biblioteki z ograniczoną obsługą CSS będą nieprawidłowo rozmieszczać elementy lub wyświetlać wyniki bez stylizacji.

Obsługa wielu platform i kontenerów Linux

Pakiet .NET PDF SDK musi działać w systemie Linux bez konieczności korzystania z pakietu Microsoft Office lub automatyzacji COM. Biblioteki, które przekazują renderowanie HTML do interoperacyjności z programem WORD, nie mogą działać w kontenerze Docker w systemie Linux. Biblioteki oparte na Chromium dostarczają silnik renderujący jako natywny plik binarny i wymagają jedynie standardowych pakietów systemowych (libgdiplus, fontconfig) na hostach z systemem Debian lub Ubuntu. Dokumentacja .NET dotycząca wdrażania międzyplatformowego obejmuje konwencje identyfikatorów środowiska uruchomieniowego istotne w przypadku obrazów Docker dla systemów Linux lub Alpine.

Bezpieczeństwo wątków i współbieżność w ASP.NET Core

Wiele bibliotek PDF dokumentuje bezpieczeństwo wątków jedynie w przypisie. W przypadku aplikacji .NET Core generujących pliki PDF na żądanie HTTP ma to bezpośrednie znaczenie. ChromePdfRenderer w IronPDF nie jest bezpieczny dla wątków — każde zadanie wykonywane równolegle musi posiadać własną instancję. Użycie Parallel.ForEach z jednym rendererem na iterację i limitem współbieżności pozwala uniknąć konfliktów i jest zgodne z wytycznymi zawartymi w poradniku dotyczącym asynchroniczności i wielowątkowości. W przypadku zadań wsadowych jeden renderer na wątek roboczy skaluje się liniowo wraz z liczbą rdzeni procesora.

Dostosowanie modelu licencyjnego

Struktury licencji wpływają na całkowity koszt posiadania w skali. Licencje na programistę (IronPDF, Syncfusion) są rozliczane na podstawie liczby programistów, którzy tworzą i wdrażają aplikację. Licencje AGPL (iText Core) wymagają udostępnienia kodu źródłowego aplikacji, chyba że zakupiono licencję komercyjną. Licencje MIT (QuestPDF, PDFsharp) nie nakładają żadnych ograniczeń dotyczących dystrybucji, ale nie zapewniają wsparcia technicznego. W przypadku środowisk podlegających regulacjom, wymagających długoterminowej archiwizacji, zgodność z normą ISO 19005 PDF/A jest wymogiem odrębnym od modelu licencji — należy to zweryfikować osobno.

Przewodnik po przypadkach użycia

Jeśli głównym wymaganiem jest konwersja istniejących szablonów HTML lub widoków Razor do formatu PDF, właściwym wyborem jest biblioteka oparta na Chromium. Układ graficzny przygotowany dla stron internetowych przekłada się bezpośrednio na format PDF bez konieczności oddzielnego projektowania.

Jeśli wymagane jest generowanie dokumentów strukturalnych na podstawie danych bez szablonu HTML, QuestPDF (na licencji MIT) jest rozsądnym rozwiązaniem dla narzędzi wewnętrznych o niewielkiej skali. Nie obsługuje on wprowadzania danych w formacie HTML i nie może odczytywać ani edytować istniejących plików PDF, ale eliminuje zależność od środowiska uruchomieniowego Chromium.

Jeśli wymagana jest obróbka istniejących plików PDF — scalanie, dzielenie, redagowanie lub podpisywanie dokumentów wygenerowanych przez inne systemy — większość komercyjnych bibliotek .NET do obsługi plików PDF radzi sobie z tym zadaniem odpowiednio. Cechą wyróżniającą jest koszt licencji i ergonomia API, a nie możliwości renderowania.

Jak zainstalować IronPDF w projekcie .NET?

Dodanie IronPDF do projektu zajmuje mniej niż minutę za pomocą menedżera pakietów NuGet. Otwórz konsolę menedżera pakietów w Visual Studio i uruchom:

PM> Install-Package IronPdf
PM> Install-Package IronPdf
SHELL

Alternatywnie można dodać pakiet za pomocą interfejsu graficznego NuGet, wyszukując IronPdf. Pakiet jest przeznaczony dla .NET Standard 2.0, więc działa z .NET Framework 4.6.2 i nowszymi wersjami, .NET Core 2.0 i nowszymi wersjami oraz wszystkimi nowoczesnymi wydaniami .NET aż do .NET 10.

Po instalacji należy zastosować klucz licencyjny przed renderowaniem. Aby dokonać oceny, wywołaj IronPdf.License.LicenseKey = "IRONPDF-TRIAL-KEY"; podczas uruchamiania aplikacji lub skorzystaj z bezpłatnej licencji próbnej dostępnej na stronie internetowej IronPDF. Do lokalnego uruchamiania biblioteki podczas tworzenia oprogramowania nie jest wymagany klucz licencyjny.

IronPDF zawiera gotowy silnik Chromium w postaci natywnego pliku binarnego. Gdy silnik uruchamia się po raz pierwszy na nowym komputerze, wyodrębnia swoje środowisko uruchomieniowe do folderu tymczasowego, co zajmuje kilka sekund. Kolejne wywołania są szybkie. W systemie Linux i Dockerze upewnij się, że zainstalowano libgdiplus oraz pakiety czcionek — przewodnik wdrożeniowy dla systemu Linux zawiera wymagania specyficzne dla danej dystrybucji.

Jak utworzyć plik PDF z HTML w języku C#?

Konwersja HTML do PDF jest najczęstszym punktem wyjścia dla procesów pracy z .NET PDF SDK. IronPDF wykorzystuje silnik renderujący oparty na Chromium do konwersji ciągów HTML, plików lokalnych lub aktywnych adresów URL na pliki PDF o pikselowej dokładności, zachowując układy CSS3, czcionki Google Fonts oraz treści renderowane przez JavaScript.

using IronPdf;

// Apply license key (omit for trial watermarked output)
// IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

var renderer = new ChromePdfRenderer();

// Configure page layout
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 15;
renderer.RenderingOptions.MarginRight = 15;

// Render an HTML string to PDF
string htmlContent = @"
    <html>
    <head><style>body { font-family: Arial; } h1 { color: #333; }</style></head>
    <body>
        <h1>Customer Registration</h1>
        <p>Form generated on: <span id='date'></span></p>
        <form>
            <label>Full Name: <input type='text' name='name' /></label><br/>
            <label>Email: <input type='email' name='email' /></label>
        </form>
        <script>document.getElementById('date').textContent = new Date().toLocaleDateString();</script>
    </body>
    </html>";

PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("registration-form.pdf");
using IronPdf;

// Apply license key (omit for trial watermarked output)
// IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

var renderer = new ChromePdfRenderer();

// Configure page layout
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 15;
renderer.RenderingOptions.MarginRight = 15;

// Render an HTML string to PDF
string htmlContent = @"
    <html>
    <head><style>body { font-family: Arial; } h1 { color: #333; }</style></head>
    <body>
        <h1>Customer Registration</h1>
        <p>Form generated on: <span id='date'></span></p>
        <form>
            <label>Full Name: <input type='text' name='name' /></label><br/>
            <label>Email: <input type='email' name='email' /></label>
        </form>
        <script>document.getElementById('date').textContent = new Date().toLocaleDateString();</script>
    </body>
    </html>";

PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("registration-form.pdf");
Imports IronPdf

' Apply license key (omit for trial watermarked output)
' IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"

Dim renderer As New ChromePdfRenderer()

' Configure page layout
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 15
renderer.RenderingOptions.MarginRight = 15

' Render an HTML string to PDF
Dim htmlContent As String = "
    <html>
    <head><style>body { font-family: Arial; } h1 { color: #333; }</style></head>
    <body>
        <h1>Customer Registration</h1>
        <p>Form generated on: <span id='date'></span></p>
        <form>
            <label>Full Name: <input type='text' name='name' /></label><br/>
            <label>Email: <input type='email' name='email' /></label>
        </form>
        <script>document.getElementById('date').textContent = new Date().toLocaleDateString();</script>
    </body>
    </html>"

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("registration-form.pdf")
$vbLabelText   $csharpLabel

Opcje renderowania i układ strony

Klasa ChromePdfRenderer udostępnia właściwość RenderingOptions, która kontroluje każdy aspekt układu pliku PDF. Ustaw PaperSize na dowolny standardowy rozmiar ISO lub ANSI albo zdefiniuj własne wymiary w milimetrach, używając CustomPaperWidth i CustomPaperHeight. Wartości marginesów są podane w milimetrach, a PrintHtmlBackgrounds zapewnia prawidłowe renderowanie kolorów tła i obrazów.

Aby przekonwertować adres URL na plik PDF, należy przekazać adres docelowy do RenderUrlAsPdf. Renderer obsługuje pliki cookie, nagłówki HTTP i niestandardowe agenty użytkownika, dzięki czemu nadaje się do stron wymagających uwierzytelnienia oraz aplikacji jednostronicowych. Przewodnik dotyczący konwersji HTML do PDF szczegółowo omawia uwierzytelnianie, warunki oczekiwania w JavaScript oraz treści ładowane leniwie.

IronPDF renderuje fakturę HTML do formatu PDF z zachowaniem wierności układu CSS3 w języku C# Wynik działania IronPDF ChromePdfRenderer: szablon HTML przekształcony do formatu PDF A4 z zachowaniem stylów CSS3

Renderowanie na podstawie ścieżek plików i adresów URL

using IronPdf;

var renderer = new ChromePdfRenderer();

// Render from a URL (async variant for ASP.NET Core)
PdfDocument fromUrl = await renderer.RenderUrlAsPdfAsync("https://example.com/report");
fromUrl.SaveAs("url-report.pdf");

// Render from a local HTML file
PdfDocument fromFile = renderer.RenderHtmlFileAsPdf("templates/invoice.html");
fromFile.SaveAs("invoice.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Render from a URL (async variant for ASP.NET Core)
PdfDocument fromUrl = await renderer.RenderUrlAsPdfAsync("https://example.com/report");
fromUrl.SaveAs("url-report.pdf");

// Render from a local HTML file
PdfDocument fromFile = renderer.RenderHtmlFileAsPdf("templates/invoice.html");
fromFile.SaveAs("invoice.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Render from a URL (async variant for ASP.NET Core)
Dim fromUrl As PdfDocument = Await renderer.RenderUrlAsPdfAsync("https://example.com/report")
fromUrl.SaveAs("url-report.pdf")

' Render from a local HTML file
Dim fromFile As PdfDocument = renderer.RenderHtmlFileAsPdf("templates/invoice.html")
fromFile.SaveAs("invoice.pdf")
$vbLabelText   $csharpLabel

Metoda RenderUrlAsPdfAsync zwraca Task<PdfDocument>, dzięki czemu integruje się bezpośrednio z wzorcami await w kontrolerach .NET Core i usługach działających w tle. Przewodnik po renderowaniu asynchronicznym wyjaśnia bezpieczeństwo wątków i konfigurację puli połączeń w scenariuszach wymagających dużej przepustowości.

Jak konwertować obrazy i wyodrębniać zawartość plików PDF?

Wiele aplikacji .NET wymaga konwersji plików graficznych do formatu PDF lub wyodrębniania obrazów i tekstu z istniejących dokumentów. IronPDF obsługuje oba kierunki bez konieczności stosowania pośrednich formatów plików lub narzędzi zewnętrznych.

using IronPdf;

// Convert a list of image files to a single multi-page PDF
var imageFiles = new System.Collections.Generic.List<string>
{
    "scans/page1.png",
    "scans/page2.jpg",
    "scans/page3.tiff"
};

PdfDocument pdfFromImages = ImageToPdfConverter.ImageToPdf(imageFiles);
pdfFromImages.SaveAs("scanned-document.pdf");

// Extract images from an existing document
PdfDocument existing = PdfDocument.FromFile("annual-report.pdf");
var images = existing.ExtractAllImages();
int index = 0;
foreach (var img in images)
{
    img.SaveAs($"extracted/image_{index++}.png");
}

// Extract all text content for indexing or search
string fullText = existing.ExtractAllText();
System.IO.File.WriteAllText("report-text.txt", fullText);
using IronPdf;

// Convert a list of image files to a single multi-page PDF
var imageFiles = new System.Collections.Generic.List<string>
{
    "scans/page1.png",
    "scans/page2.jpg",
    "scans/page3.tiff"
};

PdfDocument pdfFromImages = ImageToPdfConverter.ImageToPdf(imageFiles);
pdfFromImages.SaveAs("scanned-document.pdf");

// Extract images from an existing document
PdfDocument existing = PdfDocument.FromFile("annual-report.pdf");
var images = existing.ExtractAllImages();
int index = 0;
foreach (var img in images)
{
    img.SaveAs($"extracted/image_{index++}.png");
}

// Extract all text content for indexing or search
string fullText = existing.ExtractAllText();
System.IO.File.WriteAllText("report-text.txt", fullText);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Praca z ImageToPdfConverter i ekstrakcją tekstu

Klasa ImageToPdfConverter domyślnie zachowuje oryginalne wymiary obrazu, ale można skalować obrazy do docelowego rozmiaru papieru, określając IronPdf.Imaging.ImageBehavior.CenterImage lub FitToPage. Obsługiwane są formaty JPEG, PNG, GIF, TIFF, BMP i WebP.

Wyodrębnianie tekstu za pomocą ExtractAllText() zwraca tekst nadający się do odczytu maszynowego zarówno z natywnych plików PDF, jak i dokumentów opartych na obrazach (zeskanowanych), pod warunkiem, że plik PDF zawiera osadzoną warstwę tekstową. W przypadku zeskanowanych plików PDF bez warstwy tekstowej połączenie IronPDF z IronOCR zapewnia optyczne rozpoznawanie znaków w ramach jednej instalacji NuGet. Metoda ExtractAllImages() zwraca zbiór obiektów AnyBitmap, które można zapisać, zmienić ich rozmiar lub przekazać bezpośrednio do innych bibliotek przetwarzania obrazów.

IronPDF ImageToPdfConverter konwertujący pliki PNG i JPEG na wielostronicowy plik PDF Wynik działania ImageToPdfConverter: trzy pliki źródłowe obrazów połączone w jeden wielostronicowy dokument PDF

Jak zabezpieczyć dokumenty PDF hasłami i podpisami cyfrowymi?

Enterprise PDF workflows rutynowo wymagają dokumentów, które są zaszyfrowane, podpisane cyfrowo lub jedno i drugie. IronPDF udostępnia te możliwości poprzez właściwość SecuritySettings oraz klasę PdfSignature.

using IronPdf;
using IronPdf.Signing;

// Load an existing contract
PdfDocument contract = PdfDocument.FromFile("contracts/service-agreement.pdf");

// Apply AES-256 encryption with separate owner and user passwords
contract.SecuritySettings.OwnerPassword = "owner-admin-2024";
contract.SecuritySettings.UserPassword = "client-readonly";
contract.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
contract.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NieEdit;
contract.SecuritySettings.AllowUserCopyPasteContent = false;

// Apply a digital signature from a .pfx certificate
var signature = new PdfSignature("certs/company.pfx", "cert-password")
{
    SigningContact = "legal@company.com",
    SigningLocation = "Chicago, IL",
    SigningReason = "Contract Authorization"
};

contract.Sign(signature);
contract.SaveAs("contracts/service-agreement-signed.pdf");
using IronPdf;
using IronPdf.Signing;

// Load an existing contract
PdfDocument contract = PdfDocument.FromFile("contracts/service-agreement.pdf");

// Apply AES-256 encryption with separate owner and user passwords
contract.SecuritySettings.OwnerPassword = "owner-admin-2024";
contract.SecuritySettings.UserPassword = "client-readonly";
contract.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
contract.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NieEdit;
contract.SecuritySettings.AllowUserCopyPasteContent = false;

// Apply a digital signature from a .pfx certificate
var signature = new PdfSignature("certs/company.pfx", "cert-password")
{
    SigningContact = "legal@company.com",
    SigningLocation = "Chicago, IL",
    SigningReason = "Contract Authorization"
};

contract.Sign(signature);
contract.SaveAs("contracts/service-agreement-signed.pdf");
Imports IronPdf
Imports IronPdf.Signing

' Load an existing contract
Dim contract As PdfDocument = PdfDocument.FromFile("contracts/service-agreement.pdf")

' Apply AES-256 encryption with separate owner and user passwords
contract.SecuritySettings.OwnerPassword = "owner-admin-2024"
contract.SecuritySettings.UserPassword = "client-readonly"
contract.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
contract.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NieEdit
contract.SecuritySettings.AllowUserCopyPasteContent = False

' Apply a digital signature from a .pfx certificate
Dim signature As New PdfSignature("certs/company.pfx", "cert-password") With {
    .SigningContact = "legal@company.com",
    .SigningLocation = "Chicago, IL",
    .SigningReason = "Contract Authorization"
}

contract.Sign(signature)
contract.SaveAs("contracts/service-agreement-signed.pdf")
$vbLabelText   $csharpLabel

Ustawienia zabezpieczeń i kontrola uprawnień

Właściwość SecuritySettings odpowiada bezpośrednio uprawnieniom PDF zdefiniowanym w specyfikacji PDF 1.7. Ustawienie samego OwnerPassword ogranicza edycję i drukowanie na poziomie czytnika PDF; Dodanie UserPassword wymaga podania hasła, aby w ogóle otworzyć plik.

Podpisy cyfrowe wykorzystują certyfikaty X.509 w formacie .pfx, tym samym, którego używają magazyny certyfikatów systemu Windows oraz większość urzędów certyfikacji. Podpis zawiera pola dotyczące danych kontaktowych, lokalizacji i powodu, widoczne w panelu podpisów programu Adobe Acrobat, co spełnia wiele wymagań dotyczących zgodności podpisów elektronicznych. W przypadku dokumentów PDF, które mogą zawierać skrypty lub osadzone metadane stanowiące zagrożenie dla bezpieczeństwa, metoda sanitize usuwa JavaScript, osadzone pliki i ukryte metadane przed dystrybucją.

Cyfrowy podpis IronPDF zastosowany w umowie w formacie PDF, pokazujący zweryfikowany podpis w programie Adobe Acrobat Wynik działania IronPDF PdfSignature: certyfikat X.509 zastosowany do umowy, panel podpisu widoczny w programie Adobe Acrobat

Jak wypełniać i odczytywać pola formularzy PDF?

Obsługa formularzy AcroForm i XFA jest częstym wymaganiem w procesach związanych z dokumentami ubezpieczeniowymi, medycznymi i prawnymi. IronPDF odczytuje nazwy pól z istniejących formularzy i zapisuje wartości programowo, bez konieczności korzystania z programu Acrobat lub jakiejkolwiek przeglądarki plików PDF.

using IronPdf;

// Open a PDF containing AcroForm fields
PdfDocument form = PdfDocument.FromFile("forms/application-form.pdf");

// List all field names for discovery
foreach (var field in form.Form.Fields)
{
    System.Console.WriteLine($"Field: {field.Name}, Type: {field.GetType().Name}");
}

// Set field values by name
form.Form.FindFormField("applicant_name").Value = "Jane Smith";
form.Form.FindFormField("date_of_birth").Value = "1985-04-12";
form.Form.FindFormField("agree_terms").Value = "true"; // checkbox

// Flatten the form to prevent further editing
form.Form.Flatten();
form.SaveAs("forms/completed-application.pdf");
using IronPdf;

// Open a PDF containing AcroForm fields
PdfDocument form = PdfDocument.FromFile("forms/application-form.pdf");

// List all field names for discovery
foreach (var field in form.Form.Fields)
{
    System.Console.WriteLine($"Field: {field.Name}, Type: {field.GetType().Name}");
}

// Set field values by name
form.Form.FindFormField("applicant_name").Value = "Jane Smith";
form.Form.FindFormField("date_of_birth").Value = "1985-04-12";
form.Form.FindFormField("agree_terms").Value = "true"; // checkbox

// Flatten the form to prevent further editing
form.Form.Flatten();
form.SaveAs("forms/completed-application.pdf");
Imports IronPdf

' Open a PDF containing AcroForm fields
Dim form As PdfDocument = PdfDocument.FromFile("forms/application-form.pdf")

' List all field names for discovery
For Each field In form.Form.Fields
    System.Console.WriteLine($"Field: {field.Name}, Type: {field.GetType().Name}")
Next

' Set field values by name
form.Form.FindFormField("applicant_name").Value = "Jane Smith"
form.Form.FindFormField("date_of_birth").Value = "1985-04-12"
form.Form.FindFormField("agree_terms").Value = "true" ' checkbox

' Flatten the form to prevent further editing
form.Form.Flatten()
form.SaveAs("forms/completed-application.pdf")
$vbLabelText   $csharpLabel

Programowa obsługa formularzy za pomocą AcroForms

Interfejs API formularzy IronPDF wykorzystuje nazwy pól jako identyfikatory, dzięki czemu kod odpowiada bezpośrednio strukturze pól widocznej w programie Acrobat. Metoda Flatten() konwertuje pola interaktywne na treść statyczną, tworząc plik PDF tylko do odczytu, odpowiedni do archiwizacji lub przesyłania. Pełne informacje na temat typów formularzy, grup przycisków opcji i list rozwijanych znajdują się w przewodniku po formularzach w formacie PDF.

Aby generować nowe formularze od podstaw, użyj kodu HTML z elementami <input>, <select> i <textarea>. Renderer Chromium automatycznie konwertuje standardowe elementy formularzy HTML na pola AcroForm, co oznacza, że istniejące formularze HTML używane w aplikacjach internetowych mogą generować pliki PDF z możliwością wypełniania bez żadnych zmian strukturalnych. Poradnik tworzenia formularzy PDF przedstawia cały proces, w tym przyciski opcji, selektory daty i pola wielokrotnego wyboru.

Jak IronPDF wypada na tle innych bibliotek PDF dla platformy .NET?

Programiści oceniający bibliotekę PDF SDK dla .NET zazwyczaj biorą pod uwagę jakość renderowania, dostępność API, złożoność wdrożenia oraz warunki licencji. Poniższa tabela przedstawia pozycję IronPDF w stosunku do popularnych alternatyw .NET w oparciu o te kryteria.

Porównanie bibliotek PDF dla platformy .NET według kluczowych kryteriów programistów
Biblioteka HTML do PDF Obsługa .NET 10 Obsługa formularzy Podpisy cyfrowe Model licencji
IronPDF Oparty na Chromium (pełna obsługa CSS3/JS) Tak AcroForm + XFA Tak (.pfx) Na programistę, bez opłat licencyjnych
QuestPDF Nie (silnik układu typu "code-first") Tak Nie Nie MIT (społeczność), komercyjne
iText Core Dostępne wyłącznie jako dodatek Tak AcroForm Tak AGPL lub komercyjne
Syncfusion PDF Częściowe (podzbiór CSS2) Tak AcroForm Tak Na programistę lub na podstawie przychodów
PDFsharp Nie Tak (wersja 6+) Ograniczone Nie MIT

Strona licencyjna IronPDF obejmuje wdrożenie SaaS, redystrybucję OEM oraz pakiet Iron Suite, który zawiera IronPDF wraz z IronOCR, IronBarcode i IronXL, oferując znaczną zniżkę w porównaniu z zakupem każdego produktu osobno.

Głównym czynnikiem wyróżniającym IronPDF jest jakość renderowania HTML. Biblioteki oparte na niskopoziomowych interfejsach API do rysowania w formacie PDF wymagają od programistów ręcznego odtwarzania logiki układu CSS. Gdy istniejące szablony HTML lub widoki Razor już definiują strukturę dokumentu, bezpośrednia konwersja ich do formatu PDF jest szybsza i łatwiejsza w utrzymaniu niż odtwarzanie układów przy użyciu interfejsu API rysowania opartego na kodzie.

Jakie są kluczowe funkcje, na które należy zwrócić uwagę w bibliotece .NET PDF SDK?

Wybór biblioteki PDF do aplikacji produkcyjnej to coś więcej niż tylko sprawdzenie, czy tworzy ona pliki PDF. Aplikacje intensywnie wykorzystujące dokumenty wymagają określonych możliwości, które ujawniają się dopiero wtedy, gdy wstępne prace nad weryfikacją koncepcji zaczynają obejmować rzeczywiste ilości danych i środowiska wdrożeniowe.

Wdrażanie wieloplatformowe

Gotowy do użycia pakiet .NET PDF SDK musi działać na serwerach Windows Server, kontenerach Linux oraz komputerach programistycznych z systemem macOS bez ścieżek kodu specyficznych dla danej platformy. IronPDF obsługuje wszystkie trzy od razu po instalacji; Ten sam pakiet NuGet wdraża się w Azure App Service, AWS Lambda i Docker bez konieczności zmiany platformy w kodzie aplikacji.

Zgodność ze standardami PDF/A i PDF/UA

Branże podlegające regulacjom, w tym administracja publiczna, finanse i opieka zdrowotna, często wymagają zgodności z formatem PDF/A w celu długoterminowej archiwizacji. Nierma ISO 19005 PDF/A definiuje formaty PDF/A-1b i PDF/A-3b, które ograniczają osadzony kod JavaScript i czcionki nieosadzone, zapewniając czytelność dokumentów bez konieczności korzystania z aplikacji, w której zostały utworzone. IronPDF konwertuje istniejące pliki PDF do formatu PDF/A i sprawdza zgodność, zwracając flagę wskazującą, czy wynik spełnia standard. Dostępna jest również zgodność z PDF/UA (dostępność) dla dokumentów, które muszą spełniać wymagania WCAG lub sekcji 508.

Przetwarzanie wsadowe i zarządzanie pamięcią

Generowanie tysięcy plików PDF w ramach zaplanowanego zadania lub przetwarzanie kolejki przesyłania wymaga przewidywalnego zachowania pamięci. Kompresja mieszanej zawartości rastrowej (MRC) firmy IronPDF zmniejsza rozmiar plików dokumentów zawierających zarówno tekst, jak i obrazy o wysokiej rozdzielczości. W przypadku zadań wsadowych o dużej objętości przewodnik dotyczący wielowątkowości pokazuje wykorzystanie Parallel.ForEach z instancjami ChromePdfRenderer — renderer nie jest bezpieczny dla wątków, więc każde zadanie powinno posiadać własną instancję.

Konwersja plików DOCX i Excel do formatu PDF

Oprócz HTML, IronPDF konwertuje dokumenty WORD (.docx) i arkusze kalkulacyjne bezpośrednio do formatu PDF, co eliminuje zależność od interoperacyjności z pakietem Microsoft Office lub automatyzacji COM w procesach eksportu dokumentów. Połączenie IronPDF z IronXL zapewnia pełny proces konwersji arkuszy kalkulacyjnych do formatu PDF bez konieczności instalowania pakietu Office na serwerze.

Jakie są Twoje kolejne kroki?

IronPDF przekształca złożone procesy związane z plikami PDF w łatwy w utrzymaniu kod C#. Od konwersji HTML do PDF z pełną zgodnością z CSS3 po podpisy cyfrowe, obsługę formularzy i archiwizację w formacie PDF/A — biblioteka obejmuje cały cykl życia dokumentu w jednym pakiecie NuGet.

Zacznij od centrum dokumentacji IronPDF, aby zapoznać się z samouczkami, poradnikami i Dokumentacją API. Galeria przykładów zawiera gotowy do uruchomienia kod dla najczęstszych zadań związanych z plikami PDF, w tym scalania plików PDF, dodawania znaków wodnych, umieszczania nagłówków i stopek oraz redagowania poufnych treści.

Kup licencję na wdrożenie produkcyjne lub rozpocznij bezpłatny okres próbny, aby bez żadnych zobowiązań ocenić pełny zestaw funkcji.

!{--01001100010010010100001001010010010000010101001001011001010111110100011101000101010101000101111101010011010101000100000101010010010101000100010101000100010111110101011101001001010100010010000101111101010000010100100100111101000100010101010100001101010100010111110101010001010010010010010100000101001100010111110100001001001100010011110100001101001011--}

Często Zadawane Pytania

Jaki jest najlepszy PDF SDK dla programistów .NET?

IronPDF to mocny wybór dla programistów .NET, którzy potrzebują HTML-to-PDF z pełnym wsparciem dla CSS3 i JavaScript. Instalowany jest jako pojedynczy pakiet NuGet (IronPdf), wspiera .NET 10 i .NET Framework 4.6.2+, i działa na Windows, Linux, macOS, Azure, AWS i Docker bez zmian w konfiguracji. Dla generacji układu z kodu bez HTML, QuestPDF jest darmową alternatywą licencjonowaną na MIT, aczkolwiek nie wspiera odczytu ani edycji istniejących PDF.

Jak zainstalować IronPDF w projekcie .NET?

Uruchom 'Install-Package IronPdf' w konsoli Menedżera Pakietów Visual Studio lub wyszukaj 'IronPdf' w GUI NuGet. Pakiet jest dedykowany dla .NET Standard 2.0, więc działa z .NET Framework 4.6.2+, .NET Core 2.0+ oraz .NET 5 do .NET 10.

Czy IronPDF może konwertować HTML do PDF z CSS3 i JavaScript?

Tak. IronPDF używa silnika opartego na Chromium, który renderuje HTML z pełnym wsparciem dla układu CSS3, Google Fonts, flexbox, grid i JavaScript. Przekaż ciąg HTML do ChromePdfRenderer.RenderHtmlAsPdf, lub URL do RenderUrlAsPdf albo RenderUrlAsPdfAsync.

Czy IronPDF wspiera podpisy cyfrowe?

Tak. Użyj klasy PdfSignature z plikiem certyfikatu .pfx. Ustaw SigningContact, SigningLocation i SigningReason, a następnie wywołaj PdfDocument.Sign(signature). Wynikowy podpis jest widoczny w panelu podpisów Adobe Acrobat i spełnia wiele wymagań zgodności dla podpisów elektronicznych.

Jak wypełnić pola w formularzu PDF za pomocą IronPDF w C#?

Wczytaj PDF za pomocą PdfDocument.FromFile, następnie użyj form.Form.FindFormField("fieldName").Value, aby ustawić wartości. Wywołaj form.Form.Flatten(), aby przekonwertować interaktywne pola na statyczną zawartość przed zapisaniem. IronPDF wspiera tekstowe pola AcroForm, checkboxy, przyciski radiowe i listy rozwijane.

Jakie funkcje bezpieczeństwa PDF oferuje IronPDF?

Właściwość SecuritySettings IronPDF wspiera szyfrowanie AES-256 z oddzielnymi hasłami właściciela i użytkownika. Można niezależnie ograniczyć drukowanie, edycję i kopiowanie. Metoda Sanitize usuwa JavaScript, osadzone pliki i metadane z dokumentów przed dystrybucją.

Czy IronPDF wspiera PDF/A dla zgodności archiwizacji?

Tak. IronPDF może konwertować istniejące PDF do formatu PDF/A-1b lub PDF/A-3b i weryfikować zgodność. Skorzystaj z przewodnika na ironpdf.com/how-to/pdf-a-compliance/ dla API konwersji i flag zgodności.

Jak IronPDF wypada w porównaniu z iText dla .NET?

IronPDF i iText Core wspierają zarówno obsługę AcroForm, jak i podpisy cyfrowe. Główne różnice to licencjonowanie i renderowanie HTML. iText Core jest licencjonowane na AGPL (wymaga licencji komercyjnej dla aplikacji zamkniętych) i używa dodatku do konwersji HTML. IronPDF jest licencjonowany komercyjnie z wyceną per programista i używa wbudowanego silnika Chromium do HTML-to-PDF z pełnym wsparciem CSS3.

Czy IronPDF działa na Linux i Docker?

Tak. Ten sam pakiet NuGet działa na Ubuntu, Debian, CentOS i obrazach Dockera opartych na Alpine. Na Linux zainstaluj libgdiplus i pakiety czcionek (np. fontconfig, libfreetype6). Przewodnik wdrożenia na Linux na ironpdf.com/get-started/linux/ wymienia wymagania dotyczące pakietów specyficznych dla dystrybucji.

Jak przekonwertować obrazy do PDF za pomocą IronPDF?

Użyj ImageToPdfConverter.ImageToPdf(imageFileList), aby połączyć pliki JPEG, PNG, TIFF, BMP, GIF lub WebP w pojedynczy, wielostronicowy PDF. Określ IronPdf.Imaging.ImageBehavior.FitToPage lub CenterImage, aby kontrolować sposób skalowania.

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