Przejdź do treści stopki
KORZYSTANIE Z IRONPDF

PDF API dla .NET Core: Generowanie i edycja PDF w C#

Przegląd interfejsu API IronPDF .NET Core PDF przedstawiający edytor kodu z konwersją HTML do PDF oraz dokument wyjściowy obok siebie

IronPDF to interfejs API PDF dla platform .NET Core i .NET 10, który generuje, konwertuje i edytuje dokumenty PDF za pomocą kodu C#. Zainstaluj pakiet NuGet, utwórz instancję ChromePdfRenderer i w kilku linijkach kodu generuj pliki PDF na podstawie ciągów HTML, aktywnych adresów URL lub istniejących plików.

Generowanie plików PDF jest standardowym wymaganiem w aplikacjach .NET Core w przypadku faktur, raportów, umów i dokumentów dotyczących zgodności. Wyzwaniem jest znalezienie biblioteki, która dokładnie renderuje HTML, płynnie integruje się z .NET Core i Blazor, zapewnia spójne wyniki na systemach Windows, Linux i macOS oraz obsługuje zaawansowane operacje, takie jak podpisy cyfrowe i ochrona hasłem, bez konieczności stosowania oddzielnych narzędzi. Ten przewodnik przedstawia API PDF .NET Core firmy IronPDF, od instalacji po najczęstsze operacje na dokumentach, a każda z nich zawiera działające przykłady kodu w języku C#.

Jak rozpocząć pracę z IronPDF w .NET Core?

Zainstaluj IronPDF z NuGet za pomocą konsoli menedżera pakietów lub interfejsu CLI .NET:

# Package Manager Console
Install-Package IronPdf

# .NET CLI
dotnet add package IronPdf
# Package Manager Console
Install-Package IronPdf

# .NET CLI
dotnet add package IronPdf
SHELL

Po instalacji dodaj klucz licencyjny podczas uruchamiania aplikacji w Program.cs:

using IronPdf;

// Configure your license key before any IronPDF operations
License.LicenseKey = "YOUR-LICENSE-KEY";
using IronPdf;

// Configure your license key before any IronPDF operations
License.LicenseKey = "YOUR-LICENSE-KEY";
Imports IronPdf

' Configure your license key before any IronPDF operations
License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Dostępna jest bezpłatna wersja próbna do oceny bez konieczności podawania danych karty kredytowej. IronPDF obsługuje .NET 10, .NET 9, .NET 8, .NET Framework 4.6.2+ oraz wszystkie główne wersje .NET Core. Biblioteka działa w systemach Windows, macOS i Linux bez dodatkowych zależności środowiskowych, dzięki czemu nadaje się do wdrożeń kontenerowych i środowisk chmurowych, w tym Azure, Docker i AWS.

W przypadku projektów .NET Core należy zarejestrować usługi IronPDF w Program.cs przed skompilowaniem aplikacji, a następnie wstrzyknąć ChromePdfRenderer za pomocą standardowego kontenera wstrzykiwania zależności. IronPDF integruje się z typami projektów ASP.NET Core, w tym Web API, MVC, Razor Pages i Blazor Server. Pakiet NuGet instaluje się jako pojedyncza zależność bez konieczności korzystania z natywnych bibliotek uruchomieniowych lub zewnętrznych plików wykonywalnych, co pozwala zachować prostotę potoku CI i obrazów kontenerów. W przypadku wdrożeń w systemach Linux lub macOS nie jest wymagana żadna dodatkowa konfiguracja poza standardowym zestawem SDK .NET Standard.

Ponieważ ChromePdfRenderer jest bezpieczny dla wątków, można go zarejestrować jako singleton i udostępniać w różnych modułach obsługi żądań. W scenariuszach o dużej przepustowości należy utworzyć pulę instancji rendererów lub użyć asynchronicznych metod renderowania (RenderHtmlAsPdfAsync, RenderUrlAsPdfAsync), aby uniknąć blokowania wątków żądań podczas generowania plików PDF. Strona licencyjna IronPDF zawiera informacje dotyczące limitów licencji użytkowników i liczby współbieżnych wątków w środowiskach produkcyjnych.

Jak generować pliki PDF z HTML w języku C#?

Konwersja HTML do PDF jest najczęstszym zastosowaniem interfejsu API .NET PDF. ChromePdfRenderer firmy IronPDF konwertuje ciągi HTML, pliki lokalne lub aktywne adresy URL, zachowując style CSS, czcionki, kod JavaScript i obrazy tak, jak są one renderowane w przeglądarce Chrome.

using IronPdf;

// Create the renderer and define HTML content with full CSS support
var renderer = new ChromePdfRenderer();
var html = @"<html>
<head>
    <style>
        body { font-family: Arial; font-size: 14px; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        table { border-collapse: collapse; width: 100%; margin-top: 16px; }
        td, th { border: 1px solid #ddd; padding: 10px; text-align: left; }
        th { background: #3498db; color: white; }
    </style>
</head>
<body>
    <h1>Sales Report - Q4 2025</h1>
    <p>Generated on: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
    <table>
        <tr><th>Product</th><th>Units Sold</th><th>Revenue</th></tr>
        <tr><td>Widget A</td><td>1,200</td><td>$24,000</td></tr>
        <tr><td>Widget B</td><td>850</td><td>$17,000</td></tr>
    </table>
</body>
</html>";

var document = renderer.RenderHtmlAsPdf(html);
document.SaveAs("sales-report.pdf");
using IronPdf;

// Create the renderer and define HTML content with full CSS support
var renderer = new ChromePdfRenderer();
var html = @"<html>
<head>
    <style>
        body { font-family: Arial; font-size: 14px; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        table { border-collapse: collapse; width: 100%; margin-top: 16px; }
        td, th { border: 1px solid #ddd; padding: 10px; text-align: left; }
        th { background: #3498db; color: white; }
    </style>
</head>
<body>
    <h1>Sales Report - Q4 2025</h1>
    <p>Generated on: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
    <table>
        <tr><th>Product</th><th>Units Sold</th><th>Revenue</th></tr>
        <tr><td>Widget A</td><td>1,200</td><td>$24,000</td></tr>
        <tr><td>Widget B</td><td>850</td><td>$17,000</td></tr>
    </table>
</body>
</html>";

var document = renderer.RenderHtmlAsPdf(html);
document.SaveAs("sales-report.pdf");
Imports IronPdf

' Create the renderer and define HTML content with full CSS support
Dim renderer As New ChromePdfRenderer()
Dim html As String = "<html>
<head>
    <style>
        body { font-family: Arial; font-size: 14px; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        table { border-collapse: collapse; width: 100%; margin-top: 16px; }
        td, th { border: 1px solid #ddd; padding: 10px; text-align: left; }
        th { background: #3498db; color: white; }
    </style>
</head>
<body>
    <h1>Sales Report - Q4 2025</h1>
    <p>Generated on: " & DateTime.Now.ToString("MMMM dd, yyyy") & "</p>
    <table>
        <tr><th>Product</th><th>Units Sold</th><th>Revenue</th></tr>
        <tr><td>Widget A</td><td>1,200</td><td>$24,000</td></tr>
        <tr><td>Widget B</td><td>850</td><td>$17,000</td></tr>
    </table>
</body>
</html>"

Dim document = renderer.RenderHtmlAsPdf(html)
document.SaveAs("sales-report.pdf")
$vbLabelText   $csharpLabel

Wynikowy dokument PDF

Projekt Visual Studio wykorzystujący konwersję IronPDF z HTML do PDF, generujący sformatowany raport sprzedaży ze stylizowaną tabelą danych

ChromePdfRenderer zwraca obiekt PdfDocument, który można zapisać w ścieżce pliku, wyeksportować do byte[] w celu uzyskania odpowiedzi HTTP lub zapisać w MemoryStream w celu przetwarzania w pamięci. Renderer obsługuje wszystkie właściwości CSS, w tym czcionki niestandardowe, flexbox, układy siatki, zapytania o media oraz reguły @page dotyczące kontroli marginesów i rozmiaru strony. W przypadku szablonów HTML przechowywanych na dysku wraz z plikami CSS i zasobami graficznymi należy wywołać RenderHtmlFileAsPdf z ścieżką do pliku zamiast przekazywać ciąg znaków wbudowany w kod. IronPDF rozpoznaje względne ścieżki zasobów względem katalogu pliku, dzięki czemu połączone arkusze stylów i lokalne obrazy pojawiają się w wynikach bez dodatkowej konfiguracji.

W przypadku aplikacji, które muszą przechwytywać strony internetowe na żywo, użyj RenderUrlAsPdfAsync, aby wykonać zrzut ekranu dowolnego adresu URL podczas wykonywania kodu JavaScript:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Render a live URL including all JavaScript-rendered content
var document = await renderer.RenderUrlAsPdfAsync("https://example.com/monthly-report");
document.SaveAs("monthly-report.pdf");

// Return PDF bytes in an ASP.NET Core controller
byte[] pdfBytes = document.BinaryData;
return File(pdfBytes, "application/pdf", "report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Render a live URL including all JavaScript-rendered content
var document = await renderer.RenderUrlAsPdfAsync("https://example.com/monthly-report");
document.SaveAs("monthly-report.pdf");

// Return PDF bytes in an ASP.NET Core controller
byte[] pdfBytes = document.BinaryData;
return File(pdfBytes, "application/pdf", "report.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Render a live URL including all JavaScript-rendered content
Dim document = Await renderer.RenderUrlAsPdfAsync("https://example.com/monthly-report")
document.SaveAs("monthly-report.pdf")

' Return PDF bytes in an ASP.NET Core controller
Dim pdfBytes As Byte() = document.BinaryData
Return File(pdfBytes, "application/pdf", "report.pdf")
$vbLabelText   $csharpLabel

Renderowanie adresów URL czeka na zakończenie działania JavaScript przed przechwyceniem, co gwarantuje, że dynamicznie ładowane wykresy, tabele i wizualizacje danych pojawiają się poprawnie w wyjściowym pliku PDF. Można skonfigurować opcje renderowania, aby ustawić marginesy strony, rozmiar papieru, orientację oraz limit czasu wykonywania kodu JavaScript. Przed renderowaniem do żądania można również wstawić pliki cookie uwierzytelniające i niestandardowe nagłówki HTTP, co umożliwia przechwytywanie stron wymagających zalogowanej sesji.

Jak skonfigurować opcje układu strony i renderowania w pliku PDF?

Właściwość RenderingOptions w ChromePdfRenderer kontroluje wymiary strony, marginesy, orientację oraz zachowanie oczekiwania JavaScript przed wykonaniem jakiegokolwiek wywołania renderowania. Wystarczy raz ustawić te właściwości w instancji renderera, a będą one miały zastosowanie do każdego generowanego przez nią dokumentu.

using IronPdf;

var renderer = new ChromePdfRenderer();

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

// Wait for dynamic JavaScript content before capturing
renderer.RenderingOptions.WaitFor.RenderDelay(500);

var document = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Body content here.</p>");
document.SaveAs("landscape-report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

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

// Wait for dynamic JavaScript content before capturing
renderer.RenderingOptions.WaitFor.RenderDelay(500);

var document = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Body content here.</p>");
document.SaveAs("landscape-report.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Configure page layout before rendering
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape
renderer.RenderingOptions.MarginTop = 15
renderer.RenderingOptions.MarginBottom = 15
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20

' Wait for dynamic JavaScript content before capturing
renderer.RenderingOptions.WaitFor.RenderDelay(500)

Dim document = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Body content here.</p>")
document.SaveAs("landscape-report.pdf")
$vbLabelText   $csharpLabel

Wartości rozmiarów papieru obejmują standardowe formaty, w tym A4, A3, Letter, Legal oraz wymiary niestandardowe podane w milimetrach. Właściwości marginesów akceptują wartości w milimetrach i są stosowane niezależnie dla każdej krawędzi. Interfejs API WaitFor kontroluje czas wykonywania kodu JavaScript, co jest przydatne, gdy kod HTML ładuje dane asynchronicznie przed wyrenderowaniem wykresów lub obliczonych wartości tabel. W przypadku stron korzystających z reguł CSS @page, IronPDF respektuje te deklaracje i stosuje je bezpośrednio. Pełną listę właściwości, w tym współczynnik Zoom, kolor tła i wybór wersji PDF, można znaleźć w pełnym opisie opcji renderowania.

Jak konwertować pliki DOCX i obrazy do formatu PDF?

Oprócz HTML, IronPDF konwertuje dokumenty DOCX, popularne formaty obrazów oraz pliki Markdown na pliki PDF. Obsługuje to potoki przetwarzania, które akceptują wiele typów danych wejściowych.

using IronPdf;

// Convert a Word document to PDF while preserving its formatting
var docxPdf = new DocxToPdfRenderer().RenderDocxAsPdf("contract.docx");
docxPdf.SaveAs("contract.pdf");

// Combine multiple images into a single multi-page PDF
var images = new[] { "page1.png", "page2.png", "page3.png" };
var imagePdf = ImageToPdfConverter.ImageToPdf(images);
imagePdf.SaveAs("scanned-document.pdf");
using IronPdf;

// Convert a Word document to PDF while preserving its formatting
var docxPdf = new DocxToPdfRenderer().RenderDocxAsPdf("contract.docx");
docxPdf.SaveAs("contract.pdf");

// Combine multiple images into a single multi-page PDF
var images = new[] { "page1.png", "page2.png", "page3.png" };
var imagePdf = ImageToPdfConverter.ImageToPdf(images);
imagePdf.SaveAs("scanned-document.pdf");
Imports IronPdf

' Convert a Word document to PDF while preserving its formatting
Dim docxPdf = New DocxToPdfRenderer().RenderDocxAsPdf("contract.docx")
docxPdf.SaveAs("contract.pdf")

' Combine multiple images into a single multi-page PDF
Dim images = {"page1.png", "page2.png", "page3.png"}
Dim imagePdf = ImageToPdfConverter.ImageToPdf(images)
imagePdf.SaveAs("scanned-document.pdf")
$vbLabelText   $csharpLabel

Przykładowy plik wejściowy DOCX a plik wyjściowy PDF

Porównanie oryginalnego dokumentu WORDa i pliku PDF przekonwertowanego przez IronPDF, pokazujące zachowane formatowanie tabel i style

Funkcja konwersji plików DOCX do formatu PDF zachowuje style akapitów, tabele, nagłówki, stopki, osadzone obrazy i listy z źródłowego dokumentu WORD. Konwerter obrazów na pliki PDF obsługuje formaty JPEG, PNG, TIFF, BMP i GIF, automatycznie optymalizuje rozmiar pliku wyjściowego oraz umożliwia łączenie wielu obrazów w jeden dokument z paginacją. Oba konwertery zwracają standardową instancję PdfDocument, dzięki czemu można je łączyć z operacjami edycji, takimi jak scalanie, podpisywanie lub dodawanie znaków wodnych. W przypadku plików DOCX wygenerowanych przez program WORD konwerter obsługuje złożone struktury tabel i osadzone obrazy, zachowując jednocześnie oryginalną hierarchię akapitów i nagłówków.

Jak dodawać podpisy cyfrowe i pola formularzy?

Procesy tworzenia dokumentów często wymagają podpisów kryptograficznych w celu potwierdzenia autentyczności oraz interaktywnych pól formularzy do gromadzenia danych. IronPDF zapewnia obsługę podpisów cyfrowych i formularzy PDF za pośrednictwem tego samego interfejsu API.

using IronPdf;
using IronPdf.Signing;

// Load an existing PDF and apply a digital signature using an X.509 certificate
var pdf = PdfDocument.FromFile("agreement.pdf");
var signature = new PdfSignature("certificate.pfx", "pfx-password");
pdf.Sign(signature);

// Populate named form fields with dynamic application data
pdf.Form.FindFormField("CustomerName").Value = "Acme Corporation";
pdf.Form.FindFormField("ContractDate").Value = DateTime.Now.ToString("yyyy-MM-dd");
pdf.Form.FindFormField("Amount").Value = "$12,500.00";

pdf.SaveAs("signed-agreement.pdf");
using IronPdf;
using IronPdf.Signing;

// Load an existing PDF and apply a digital signature using an X.509 certificate
var pdf = PdfDocument.FromFile("agreement.pdf");
var signature = new PdfSignature("certificate.pfx", "pfx-password");
pdf.Sign(signature);

// Populate named form fields with dynamic application data
pdf.Form.FindFormField("CustomerName").Value = "Acme Corporation";
pdf.Form.FindFormField("ContractDate").Value = DateTime.Now.ToString("yyyy-MM-dd");
pdf.Form.FindFormField("Amount").Value = "$12,500.00";

pdf.SaveAs("signed-agreement.pdf");
Imports IronPdf
Imports IronPdf.Signing

' Load an existing PDF and apply a digital signature using an X.509 certificate
Dim pdf = PdfDocument.FromFile("agreement.pdf")
Dim signature = New PdfSignature("certificate.pfx", "pfx-password")
pdf.Sign(signature)

' Populate named form fields with dynamic application data
pdf.Form.FindFormField("CustomerName").Value = "Acme Corporation"
pdf.Form.FindFormField("ContractDate").Value = DateTime.Now.ToString("yyyy-MM-dd")
pdf.Form.FindFormField("Amount").Value = "$12,500.00"

pdf.SaveAs("signed-agreement.pdf")
$vbLabelText   $csharpLabel

Przykład zweryfikowanego podpisu

Program Adobe Acrobat wyświetlający panel zweryfikowanego podpisu cyfrowego w pliku PDF podpisanym za pomocą interfejsu API PdfSignature firmy IronPDF

Podpisy cyfrowe wykorzystują certyfikaty X.509 w formacie PFX i są zgodne ze standardami podpisów PDF uznawanymi przez program Adobe Acrobat i inne przeglądarki plików PDF. Panel podpisu w programie Acrobat potwierdza wydawcę certyfikatu, czas podpisania oraz status integralności. Interfejs API formularzy PDF obsługuje pola tekstowe, pola wyboru, przyciski opcji i menu rozwijane. Można programowo tworzyć szablony formularzy, wypełniać je danymi w czasie wykonywania oraz odczytywać wartości pól z przesłanych dokumentów. Ten wzorzec jest przydatny w zarządzaniu umowami, wdrażaniu nowych pracowników oraz w zautomatyzowanych procesach gromadzenia danych, gdzie ten sam szablon PDF jest ponownie wykorzystywany w wielu transakcjach z różnymi wartościami pól.

W przypadku podpisów opartych na sygnaturze czasowej należy przekazać instancję PdfSignature skonfigurowaną z adresem URI serwera sygnatur czasowych, tak aby czas podpisania był poświadczony przez zaufaną stronę trzecią, a nie przez lokalny zegar systemowy. Przewodnik dotyczący podpisywania obejmuje widoczne obrazy podpisów, wielu kolejnych podpisujących oraz opcje weryfikacji certyfikatów.

Jak edytować i modyfikować istniejące dokumenty PDF?

IronPDF pozwala modyfikować pliki PDF bez konieczności ich ponownego tworzenia z kodu HTML. Programowo dodawaj nagłówki, stopki, znaki wodne, adnotacje lub scalaj i dziel strony.

using IronPdf;

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

// Add a semi-transparent watermark using HTML
document.ApplyWatermark("<h2 style='color:red; opacity:0.4; transform:rotate(-30deg)'>CONFIDENTIAL</h2>",
    rotation: 30, opacity: 50);

// Add a branded header to every page
document.AddHtmlHeaders(new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right; font-size:10px; color:#666'>Internal Use Only - Page {page} of {total-pages}</div>"
});

// Append supplementary pages from a second document
var appendix = PdfDocument.FromFile("appendix.pdf");
document.AppendPdf(appendix);

document.SaveAs("final-report.pdf");

// Export to bytes for HTTP streaming
byte[] pdfBytes = document.BinaryData;
using IronPdf;

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

// Add a semi-transparent watermark using HTML
document.ApplyWatermark("<h2 style='color:red; opacity:0.4; transform:rotate(-30deg)'>CONFIDENTIAL</h2>",
    rotation: 30, opacity: 50);

// Add a branded header to every page
document.AddHtmlHeaders(new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right; font-size:10px; color:#666'>Internal Use Only - Page {page} of {total-pages}</div>"
});

// Append supplementary pages from a second document
var appendix = PdfDocument.FromFile("appendix.pdf");
document.AppendPdf(appendix);

document.SaveAs("final-report.pdf");

// Export to bytes for HTTP streaming
byte[] pdfBytes = document.BinaryData;
Imports IronPdf

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

' Add a semi-transparent watermark using HTML
document.ApplyWatermark("<h2 style='color:red; opacity:0.4; transform:rotate(-30deg)'>CONFIDENTIAL</h2>", rotation:=30, opacity:=50)

' Add a branded header to every page
document.AddHtmlHeaders(New HtmlHeaderFooter With {
    .HtmlFragment = "<div style='text-align:right; font-size:10px; color:#666'>Internal Use Only - Page {page} of {total-pages}</div>"
})

' Append supplementary pages from a second document
Dim appendix = PdfDocument.FromFile("appendix.pdf")
document.AppendPdf(appendix)

document.SaveAs("final-report.pdf")

' Export to bytes for HTTP streaming
Dim pdfBytes As Byte() = document.BinaryData
$vbLabelText   $csharpLabel

Przykładowy wynik

Dokument PDF z poufnym znakiem wodnym dodanym przez IronPDF oraz nagłówkiem z logo, zawierającym numery stron i dołączone strony załącznika

Interfejs API nagłówków i stopek HTML obsługuje zmienne szablonów, w tym {page}, {total-pages} i {date} dla treści dynamicznych. Metoda niestandardowego znaku wodnego akceptuje fragment kodu HTML, dzięki czemu można zastosować stylizowane, obrócone, półprzezroczyste nakładki na wszystkich stronach za pomocą jednego wywołania. Można również dzielić pliki PDF według zakresu stron, łączyć wiele dokumentów oraz wyodrębniać osadzone obrazy i treść tekstową z dowolnego pliku PDF. Ekstrakcja tekstu zachowuje kolejność czytania w kolumnach i tabelach, co upraszcza dalsze przetwarzanie w ramach indeksowania wyszukiwania, migracji treści lub procesów walidacji danych.

Jak zastosować ochronę hasłem i ustawienia zabezpieczeń?

Zabezpieczanie dokumentów PDF hasłami i flagami uprawnień jest standardowym wymogiem w przypadku sprawozdań finansowych, dokumentów prawnych i dokumentacji kadrowej.

using IronPdf;
using IronPdf.Security;

var pdf = PdfDocument.FromFile("financial-report.pdf");

// Set passwords: UserPassword controls opening, OwnerPassword controls editing
pdf.SecuritySettings.UserPassword = "viewer-password";
pdf.SecuritySettings.OwnerPassword = "admin-password";

// Configure fine-grained permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.PrintLowResolution;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserFormData = false;

pdf.SaveAs("protected-report.pdf");
using IronPdf;
using IronPdf.Security;

var pdf = PdfDocument.FromFile("financial-report.pdf");

// Set passwords: UserPassword controls opening, OwnerPassword controls editing
pdf.SecuritySettings.UserPassword = "viewer-password";
pdf.SecuritySettings.OwnerPassword = "admin-password";

// Configure fine-grained permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.PrintLowResolution;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserFormData = false;

pdf.SaveAs("protected-report.pdf");
Imports IronPdf
Imports IronPdf.Security

Dim pdf = PdfDocument.FromFile("financial-report.pdf")

' Set passwords: UserPassword controls opening, OwnerPassword controls editing
pdf.SecuritySettings.UserPassword = "viewer-password"
pdf.SecuritySettings.OwnerPassword = "admin-password"

' Configure fine-grained permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.PrintLowResolution
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserFormData = False

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

Interfejs API ustawień zabezpieczeń plików PDF stosuje szyfrowanie AES 128-bitowe lub 256-bitowe. Ustawienie UserPassword wymaga od czytelników podania hasła podczas otwierania pliku w dowolnej przeglądarce PDF. Ustawienie OwnerPassword ogranicza modyfikacje programowe i operacje na poziomie właściciela. Flagi uprawnień niezależnie kontrolują jakość drukowania, zaznaczanie tekstu, adnotacje oraz dostęp do pól formularzy. Po zastosowaniu ustawień zabezpieczeń właściwość BinaryData zwraca zaszyfrowane bajty pliku PDF do przechowywania lub transmisji HTTP. Te ustawienia są zgodne z modelem kontroli dostępu specyfikacji PDF, dzięki czemu chronione dokumenty otwierają się poprawnie w programie Adobe Acrobat, przeglądarkach PDF oraz aplikacjach do czytania na urządzeniach mobilnych.

Aby usunąć zabezpieczenia z dokumentu, którego jesteś właścicielem, załaduj plik z hasłem właściciela przekazanym jako parametr do PdfDocument.FromFile, a następnie zapisz go bez stosowania ustawień zabezpieczeń. Umożliwia to programowe przetwarzanie dokumentów w przepływach pracy po stronie serwera, gdzie pliki chronione hasłem są dostarczane jako dane wejściowe i muszą zostać przekształcone przed ponowną dystrybucją.

Jakie są Twoje kolejne kroki?

Interfejs API IronPDF for .NET Core obsługuje pełny cykl życia dokumentu w języku C#: generowanie z ciągów znaków HTML i adresów URL, konwersję plików DOCX i obrazów, konfigurację układu strony i opcji renderowania, edycję znaków wodnych, nagłówków i stopek, stosowanie podpisów cyfrowych oraz ochronę dokumentów za pomocą szyfrowania. Wszystkie operacje wykorzystują spójny interfejs API w środowiskach .NET 8, .NET 9 i .NET 10 na systemach Windows, macOS i Linux.

Rozpocznij bezpłatny okres próbny, aby przetestować IronPDF na własnych dokumentach. Aby zapoznać się z dodatkowymi scenariuszami, przejrzyj przewodnik po opcjach renderowania HTML do PDF, kompresji i optymalizacji plików PDF oraz kompletny przegląd funkcji IronPDF. Zapoznaj się z opcjami licencyjnymi dotyczącymi wdrożenia produkcyjnego.

Często Zadawane Pytania

Czym jest interfejs API PDF firmy IronPDF for .NET Core?

IronPDF to biblioteka .NET, która generuje, konwertuje i edytuje dokumenty PDF w aplikacjach napisanych w języku C#. Instaluje się ją jako pojedynczy pakiet NuGet i obsługuje platformy .NET 10, .NET 9, .NET 8 oraz .NET Framework 4.6.2 lub nowsze.

Jak wygenerować plik PDF z HTML w .NET Core?

Utwórz instancję ChromePdfRenderer i wywołaj metodę RenderHtmlAsPdf z ciągiem HTML lub metodę RenderUrlAsPdfAsync z adresem URL. Renderer konwertuje dane wyjściowe HTML, CSS i JavaScript na obiekt PdfDocument, który można zapisać lub przesyłać strumieniowo.

Jak skonfigurować rozmiar strony i marginesy w IronPDF?

Ustaw właściwości w renderer.RenderingOptions przed wywołaniem metody renderowania. Użyj PaperSize dla formatów standardowych, PaperOrientation dla orientacji pionowej lub poziomej oraz MarginTop, MarginBottom, MarginLeft, MarginRight dla marginesów w milimetrach.

Czy IronPDF może konwertować pliki DOCX do formatu PDF w środowisku .NET Core?

Tak. Użyj DocxToPdfRenderer.RenderDocxAsPdf z podaniem ścieżki do pliku. Konwerter zachowuje style akapitów, tabele, nagłówki, stopki i osadzone obrazy z źródłowego dokumentu WORD.

Jak dodać podpis cyfrowy do pliku PDF w języku C#?

Załaduj plik PDF za pomocą PdfDocument.FromFile, utwórz PdfSignature z ścieżką certyfikatu PFX i hasłem, a następnie wywołaj pdf.Sign(signature). Wynikowy dokument jest wyświetlany jako zweryfikowany w programie Adobe Acrobat i zgodnych przeglądarkach PDF.

Jak zabezpieczyć plik PDF hasłem za pomocą IronPDF?

Ustaw PDF.SecuritySettings.UserPassword jako hasło otwarcia i PDF.SecuritySettings.OwnerPassword jako hasło właściciela. Użyj AllowUserPrinting, AllowUserCopyPasteContent i powiązanych flag, aby kontrolować poszczególne uprawnienia.

Jak zwrócić wygenerowany plik PDF jako odpowiedź HTTP w ASP.NET Core?

Uzyskaj dostęp do właściwości BinaryData w instancji PdfDocument, aby pobrać plik PDF jako tablicę bajtów, a następnie zwróć go za pomocą File(pdfBytes, 'application/pdf', 'filename.pdf') w akcji kontrolera ASP.NET Core.

Czy IronPDF działa w systemach Linux i macOS dla aplikacji .NET Core?

Tak. IronPDF działa na systemach Windows, macOS i Linux bez dodatkowych natywnych zależności środowiskowych. Obsługuje wdrożenia kontenerowe w Dockerze, Azure i AWS bez konfiguracji specyficznej dla platformy.

Jak dodać nagłówki i stopki do pliku PDF za pomocą IronPDF?

Wywołaj metodę document.AddHtmlHeaders z obiektem HtmlHeaderFooter, którego HtmlFragment zawiera znaczniki nagłówka. Użyj zmiennych szablonu {page}, {total-pages} i {date} dla wartości dynamicznych. To samo API dotyczy stopek.

Czy IronPDF jest bezpieczny dla wątków w środowisku ASP.NET Core?

ChromePdfRenderer jest bezpieczny dla wątków i może być zarejestrowany jako singleton w kontenerze wstrzykiwania zależności. W przypadku obciążeń o dużej przepustowości należy używać asynchronicznych metod renderowania (RenderHtmlAsPdfAsync, RenderUrlAsPdfAsync), aby uniknąć blokowania wątków żądań.

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