Przejdź do treści stopki
KORZYSTANIE Z IRONPDF

Jak ASP do konwersji HTML na PDF

IronPDF .NET Core PDF API - przeglad pokazujacy edytor kodu z konwersja HTML do PDF oraz dokumentem wyjsciowym 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, utworz instancje ChromePdfRenderer i generuj PDF z ciagow HTML, zywymi URL lub istniejacych plikow w kilku liniach.

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 przy starcie 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.

Dla projektow ASP.NET Core, zarejestruj uslugi IronPDF w Program.cs przed zbudowaniem aplikacji, nastepnie wstrzyknij ChromePdfRenderer przez standardowy pojemnik do wstrzykiwania zaleznosci. 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.

Poniewaz ChromePdfRenderer jest bezpieczny dla watkow, mozna go zarejestrowac jako singleton i udostepnic w obslugach zadanej. W scenariuszach o duzym przeplywie danych, utworz pule instancji rendererow lub uzyj asynchronicznych metod renderujacych (RenderHtmlAsPdfAsync, RenderUrlAsPdfAsync), aby uniknac blokowania watkow podczas generowania 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ć PDF-y 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 uruchamiajacy IronPDF konwersje HTML do PDF, generujacy sformatowany raport sprzedazy z wystylizowana tabela danych

ChromePdfRenderer zwraca obiekt PdfDocument, ktory mozna zapisac na sciezce pliku, wyeksportowac do byte[] dla odpowiedzi HTTP lub zapisac do MemoryStream dla przetwarzania w pamieci. Renderer respektuje wszystkie wlasciwosci CSS, wlaczajac niestandardowe fonty, flexbox, ukaydy grid, media queries i zasady @page do kontroli marginesow i rozmiarow strony. Dla szablonow HTML przechowywanych na dysku wraz z zasobami CSS i obrazami, wywolaj RenderHtmlFileAsPdf z sciezka pliku zamiast podawac ciag inline. 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.

Dla aplikacji, ktore musza uchwycic zywe strony internetowe, uzyj RenderUrlAsPdfAsync do zrobienia zrzutu kazdego URL podczas wykonywania 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?

Wlasciwosc RenderingOptions na ChromePdfRenderer kontroluje wymiary strony, marginesy, orientacje oraz czekanie na JavaScript przed wykonaniem jakiegokolwiek wywolania renderujacego. 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. API WaitFor kontroluje czas wykonywania JavaScript, co jest uzyteczne, gdy twoj HTML wczytuje dane asynchronicznie przed renderowaniem wykresow lub wartosci obliczonych w tabeli. Dla stron uzywajacych zasad CSS @page, IronPDF respektuje te deklaracje i stosuje je bezposrednio. 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

Porownanie bok w bok oryginalnego dokumentu Word i wyjscia PDF skonwertowanego przez IronPDF, pokazujace zachowane formatowanie i style tabeli

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ą. Obaj konwerterzy zwracaja standardowa instancje PdfDocument, wiec mozna je lancuchowac z operacjami edycji, takimi jak laczenie, podpisywanie lub watermarking. 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

Adobe Acrobat pokazujacy panel podpisu cyfrowego zweryfikowany na PDF podpisanym za pomoca API PdfSignature 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.

Dla podpisow opartych na znaczniku czasu, przekaż instancje PdfSignature skonfigurowana z URI serwera znacznikow czasu, aby czas podpisu byl zatwierdzony przez zaufana trzecia strone, a nie 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 scałaj 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 dodanym przez IronPDF poufnym watermarkiem, z naglowkiem pokazujacym numery stron i dodanymi stronami aneksu

API HTML dla naglowkow i stopki wspiera zmienne szablonowe, wlaczajac {page}, {total-pages} i {date} dla dynamicznych tresci. 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 czytelnikow wprowadzenia hasla podczas otwarzania pliku w kazdym przegladarce PDF. Ustawienie OwnerPassword ogranicza programowe modyfikacje i operacje na poziomie wlasciciela. Flagi uprawnień niezależnie kontrolują jakość drukowania, zaznaczanie tekstu, adnotacje oraz dostęp do pól formularzy. Po zastosowaniu ustawień zabezpieczeń, wlasciwosc BinaryData zwraca zaszyfrowane bajty 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 usunac ochrone z dokumentu, ktorego jestes wlascicielem, zaladuj plik z haslem wlasciciela przekazanym jako parametr do PdfDocument.FromFile, nastepnie zapisz bez zastosowanych 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.

Bezpłatna próba, 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

Zespół wsparcia Iron

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