IRONSOFTWAREHOME
KORZYSTANIE Z IRONPDF

ASP.NET HTML do konwersji PDF z IronPDF

Curtis Chau
Curtis Chau
Updated: 23 kwietnia 2026

Stwórz przeglądarkę plików PDF dla ASP.NET Core MVC, wykorzystując silnik renderujący IronPDF oparty na przeglądarce Chrome, aby wyświetlać pliki PDF bezpośrednio w przeglądarkach, generować dynamiczne pliki PDF z treści HTML oraz kontrolować, czy użytkownicy przeglądają dokumenty, czy je pobierają — wszystko to bez zewnętrznych wtyczek i zależności.

Nowoczesne przeglądarki zawierają wbudowaną przeglądarkę plików PDF, która uruchamia się automatycznie, gdy aplikacja internetowa udostępnia pliki PDF o prawidłowym typie MIME. Eliminuje to potrzebę korzystania z narzędzi lub wtyczek innych firm, umożliwiając użytkownikom wyświetlanie dokumentów PDF bezpośrednio w przeglądarce. IronPDF, biblioteka .NET do obsługi plików PDF z silnikiem renderującym opartym na przeglądarce Chrome, ułatwia generowanie, renderowanie i wyświetlanie plików PDF w aplikacjach ASP.NET Core MVC.

Pierwszy krok:
arrow pointer

Jak zainstalować IronPDF w projekcie ASP.NET Core MVC?

Przed stworzeniem przeglądarki plików PDF w ASP.NET Core MVC należy dodać bibliotekę IronPDF do projektu. Najszybszym sposobem jest skorzystanie z menedżera pakietów NuGet w Visual Studio lub z wiersza poleceń przy użyciu interfejsu CLI .NET lub konsoli menedżera pakietów.

PM > Install-Package IronPdf

Po zainstalowaniu pakietu, dodaj przestrzeń nazw IronPdf do plików kontrolera i jesteś gotowy do generowania i serwowania dokumentów PDF. IronPDF jest przeznaczony dla platform .NET 8 i .NET 10, dzięki czemu współpracuje z najnowszymi wersjami ASP.NET Core bez konieczności dodatkowej konfiguracji.

W przypadku projektów wymagających instalacji offline lub przypisania konkretnej wersji można również pobrać pakiet NuGet bezpośrednio i dodać go jako lokalny kanał. Strona licencyjna IronPDF zawiera informacje o opcjach licencji Trial i produkcyjnych, jeśli potrzebujesz ich przed uruchomieniem serwisu.

W jaki sposób nowoczesne przeglądarki wyświetlają pliki PDF?

Nowoczesne przeglądarki, takie jak Chrome, Firefox, Edge i Safari, zawierają wbudowaną funkcję przeglądania plików PDF. Kiedy twoja aplikacja ASP.NET Core zwraca plik z typem zawartości application/pdf, przeglądarka renderuje dokument PDF wewnętrznie, bez konieczności korzystania z Adobe Acrobat lub zewnętrznych wtyczek. Ta wbudowana przeglądarka plików PDF obsługuje zaznaczanie tekstu, drukowanie, kontrolki Zoom, zakładki i nawigację po stronach, zapewniając użytkownikom znany i zrozumiały sposób przeglądania dokumentów.

Aby bezpiecznie udostępniać istniejące pliki, najlepszą praktyką jest korzystanie ze środowiska hostingowego do ich lokalizowania, zamiast polegania na ścieżkach katalogów, które mogą ulec zmianie między środowiskiem programistycznym a produkcyjnym. Korzystanie ze strumienia plików jest również bardziej efektywne pod względem pamięci niż ładowanie całych tablic bajtów w przypadku dużych dokumentów.

using Microsoft.AspNetCore.Mvc;

public class DocumentController : Controller
{
    public IActionResult ViewPdf()
    {
        // Path to an existing PDF file in the wwwroot folder
        string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "documents", "sample.pdf");
        byte[] fileBytes = System.IO.File.ReadAllBytes(path);
        // Return file for inline browser display
        return File(fileBytes, "application/pdf");
    }
}

Jak wygląda plik PDF wyświetlany w przeglądarce?

Dokument PDF o tytule 'Czym jest PDF?' wyświetlany w przeglądarce internetowej na localhost:7162/Pdf/ViewPdf, pokazujący sformatowaną treść tekstu w interfejsie przeglądarki PDF z kontrolkami powiększania i opcjami nawigacji

Powyższy kod odczytuje istniejący plik PDF z serwera i zwraca go do przeglądarki. Metoda File() przyjmuje tablicę bajtów i typ zawartości, polecając przeglądarce, aby wyświetliła zawartość wewnętrznie. To podejście działa na wszystkich nowoczesnych przeglądarkach zarówno na komputerach stacjonarnych, jak i urządzeniach mobilnych, zapewniając spójne doświadczenie dla wszystkich użytkowników.

W bardziej zaawansowanych scenariuszach warto rozważyć ładowanie plików PDF z pamięci lub usługi Azure Blob Storage, co może poprawić skalowalność i zmniejszyć wymagania dotyczące pamięci serwera. Dokumentacja Microsoftu dotycząca udostępniania plików statycznych w .NET Core obejmuje najlepsze praktyki w zakresie obsługi plików w środowisku produkcyjnym.

Jak dynamicznie generować dokumenty PDF w ASP.NET Core?

Statyczne pliki PDF są przydatne, ale wiele aplikacji webowych wymaga dynamicznie generowanych dokumentów dostosowanych do bieżącego użytkownika lub żądania. Klasa ChromePdfRenderer w IronPDF konwertuje treść HTML na profesjonalnie renderowane pliki PDF, używając rzeczywistego silnika przeglądarki Chromium w tle.

Możesz dołączyć zasoby zewnętrzne, takie jak CSS dla konkretnego motywu lub JavaScript dla wykresów, bezpośrednio w ciągu HTML. Silnik renderujący obsługuje nowoczesne standardy internetowe, w tym CSS3, JavaScript ES6+ i czcionki internetowe, dzięki czemu wygenerowany plik PDF wygląda dokładnie tak, jak ta sama strona HTML wyświetlona w przeglądarce.

using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class ReportController : Controller
{
    public IActionResult GenerateReport()
    {
        var renderer = new ChromePdfRenderer();
        // HTML content with CSS styling
        string html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 40px; }
                    h1 { color: #2c3e50; }
                    .report-body { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Monthly Sales Report</h1>
                <div class='report-body'>
                    <p>Generated: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
                    <p>This report contains the latest sales figures.</p>
                </div>
            </body>
            </html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}

Jak wygląda treść HTML po wygenerowaniu pliku PDF?

Przeglądarka PDF wyświetlająca Miesięczny Raport Sprzedaży z sformatowanym nagłówkiem i datą wygenerowania, demonstrując konwersję HTML na PDF z zastosowaniem niestandardowego stylowania CSS za pośrednictwem IronPDF

Ten przykład pokazuje, w jaki sposób IronPDF przekształca ciąg znaków HTML w dokument PDF. Silnik oparty na Chromium używany przez ChromePdfRenderer zapewnia dokładne renderowanie CSS i wsparcie dla JavaScript. Wygenerowany plik PDF zachowuje wszystkie style zdefiniowane w HTML, dzięki czemu idealnie nadaje się do tworzenia raportów, faktur i innych dokumentów wymagających spójnego formatowania.

Aby uzyskać dodatkowe przykłady kodu dotyczące konwersji HTML do PDF, zapoznaj się z dokumentacją IronPDF. Można również generować pliki PDF z widoków CSHTML Razor, adresów URL, a nawet treści Markdown.

Jak kontrolować wyświetlanie wbudowane w porównaniu z pobieraniem plików?

Czasami użytkownicy muszą pobrać pliki PDF zamiast przeglądać je w przeglądarce. Sposób, w jaki przeglądarka obsługuje odpowiedź, zależy od nagłówka Content-Disposition. Zrozumienie tej różnicy jest ważne dla zapewnienia odpowiedniego doświadczenia w Twojej aplikacji.

Jeśli pominiesz parametr nazwy pliku w metodzie File(), ASP.NET Core nie ustawia nagłówka Content-Disposition, więc przeglądarka używa swojego domyślnego zachowania — które zazwyczaj oznacza wewnętrzne wyświetlenie. Podając nazwę pliku jako trzeci parametr, ASP.NET Core automatycznie dodaje Content-Disposition: attachment, sugerując użytkownikom zapisanie pliku zamiast tego.

using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult DisplayInline()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 25;
        renderer.RenderingOptions.MarginBottom = 25;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // Display PDF inline in browser -- no filename = inline
        return File(pdf.BinaryData, "application/pdf");
    }

    public IActionResult DownloadPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
        renderer.RenderingOptions.EnableJavaScript = true;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // Prompt download with specified filename
        return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf");
    }
}

Kiedy należy używać wyświetlania wbudowanego zamiast pobierania?

Zrzut ekranu przedstawiający główną stronę Wikipedii przekonwertowaną do formatu PDF i wyświetlaną wewnętrznie w oknie przeglądarki z kontrolkami przeglądarki PDF w tym powiększaniem, nawigacją stronami i opcjami drukowania

Różnica między dwoma akcjami kontrolera sprowadza się do tego trzeciego parametru w File(). Ta elastyczność pozwala aplikacji obsługiwać oba scenariusze w zależności od potrzeb użytkownika lub wymagań biznesowych. Aby uzyskać większą kontrolę, przed renderowaniem można również ustawić niestandardowe nagłówki HTTP lub skonfigurować rozmiar i orientację papieru.

Niektóre aplikacje łączą oba podejścia: punkt końcowy podglądu, który wyświetla plik PDF wbudowany w stronę, oraz oddzielny punkt końcowy pobierania, który uruchamia zapis pliku. Ten wzorzec pozwala użytkownikom zapoznać się z dokumentem przed podjęciem decyzji o jego pobraniu.

Jak zintegrować Razor Pages z generowaniem plików PDF?

Strony Razor w ASP.NET Core MVC oferują inne podejście do wdrażania przeglądarki plików PDF w środowisku .NET Core. Model strony może generować i zwracać pliki PDF przy użyciu tej samej funkcjonalności IronPDF, która jest dostępna w standardowych kontrolerach MVC. Ten wzorzec sprawdza się dobrze w aplikacjach już korzystających z Razor Pages, ponieważ pozwala na umieszczenie logiki generowania plików PDF w tym samym miejscu, co strona, która ją uruchamia.

Obsługa OnGet w Stronie Razor działa jak akcja kontrolera — odbiera żądanie, wykonuje pracę i zwraca wynik. Zwracanie FileResult z modelu strony jest obsługiwane przez ASP.NET Core i działa w taki sam sposób, jak zwracanie File() z kontrolera.

using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

public class InvoiceModel : PageModel
{
    public IActionResult OnGet(int id)
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;

        // Add header and footer
        renderer.RenderingOptions.TextHeader.CenterText = "Invoice Document";
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}";
        renderer.RenderingOptions.TextFooter.FontSize = 10;

        string html = $@"
            <html>
            <head>
                <style>
                    body {{font-family: 'Segoe UI', Arial, sans-serif; padding: 40px;}}
                    h1 {{color: #1a5490; border-bottom: 2px solid #1a5490; padding-bottom: 10px;}}
                    .invoice-details {{margin: 20px 0;}}
                    table {{width: 100%; border-collapse: collapse;}}
                    th, td {{padding: 10px; text-align: left; border-bottom: 1px solid #ddd;}}
                </style>
            </head>
            <body>
                <h1>Invoice #{id}</h1>
                <div class='invoice-details'>
                    <p><strong>Date:</strong> {DateTime.Now:yyyy-MM-dd}</p>
                    <p><strong>Due Date:</strong> {DateTime.Now.AddDays(30):yyyy-MM-dd}</p>
                </div>
                <table>
                    <tr><th>Description</th><th>Amount</th></tr>
                    <tr><td>Professional Services</td><td>$1,500.00</td></tr>
                </table>
                <p style='margin-top: 40px;'>Thank you for your business!</p>
            </body>
            </html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
C#

Jakie opcje renderowania są dostępne w przypadku dostosowywania plików PDF?

Przeglądarka PDF wyświetlająca Fakturę #20 z profesjonalnym formatowaniem, w tym stylizowanymi nagłówkami, informacjami o terminie płatności i podziękowaniem w interfejsie przeglądarki z ciemnym motywem

Ten przykładowy kod Stron Razor pokazuje, jak obsługa OnGet generuje PDF z parametru URL. Właściwość RenderingOptions pozwala na precyzyjną kontrolę nad marginesami, orientacją strony i innymi ustawieniami układu. Można również dodawać nagłówki i stopki, konfigurować numerację stron lub ustawiać niestandardowe rozmiary papieru.

Zaawansowane funkcje dostępne poprzez RenderingOptions obejmują znakowanie wodne, kompresję PDF oraz sygnatury cyfrowe. Aby uzyskać szczegółowe informacje na temat wszystkich dostępnych opcji, zapoznaj się z dokumentacją opcji renderowania IronPDF.

Jak radzisz sobie z zabezpieczeniami plików PDF i kontrolą dostępu?

Aplikacje produkcyjne często wymagają ograniczenia dostępu do przeglądania lub modyfikowania dokumentów PDF. IronPDF zapewnia wbudowaną obsługę haseł i uprawnień do plików PDF, umożliwiając szyfrowanie dokumentów, wymaganie hasła do ich otwarcia lub ograniczenie drukowania i kopiowania.

Możesz zastosować ustawienia zabezpieczeń do każdego obiektu PdfDocument przed jego zwróceniem z kontrolera. To podejście sprawdza się niezależnie od tego, czy plik PDF został wygenerowany z kodu HTML, załadowany z dysku czy pobrany z bazy danych.

Typowe opcje zabezpieczeń plików PDF dostępne w IronPDF
Funkcja bezpieczeństwaWłaściwości IronPDFPrzykład zastosowania
Hasło właścicielaOwnerPasswordZapobieganie nieautoryzowanym zmianom uprawnień
Hasło użytkownikaUserPasswordWymagaj hasła do otwarcia dokumentu
Wyłącz drukowanieAllowUserPrintingUniemożliwienie odbiorcom drukowania pliku
Wyłącz kopiowanieAllowUserCopyPasteContentWyodrębnianie tekstu z pliku PDF
Podpis cyfrowyPdfSignatureZweryfikuj autentyczność dokumentu

W przypadku dokumentów wrażliwych, takich jak umowy, sprawozdania finansowe lub dokumentacja medyczna, połączenie hasła użytkownika z ograniczonymi uprawnieniami zapewnia precyzyjną kontrolę nad tym, co odbiorcy mogą zrobić z plikiem. Tryb zgodności z PDF/A to kolejna opcja warta rozważenia w przypadku długoterminowej archiwizacji, gdzie integralność dokumentów musi być zachowana przez dziesięciolecia.

Jak zoptymalizować wydajność generowania plików PDF?

Generowanie plików PDF wymaga pracy procesora i pamięci, dlatego wydajność ma znaczenie w aplikacjach o dużym natężeniu ruchu. Asynchroniczny interfejs API renderowania w IronPDF pozwala przenieść tworzenie plików PDF do wątku działającego w tle bez blokowania potoku żądań. Jest to szczególnie przydatne podczas generowania wielu plików PDF w ramach jednego żądania lub przetwarzania zadań wsadowych.

W przypadku wdrożeń produkcyjnych w systemie Linux lub w kontenerach Docker, IronPDF obsługuje wykonywanie wielopłatformowe bez konieczności stosowania jakichkolwiek zależności specyficznych dla systemu Windows. Instrukcja instalacji IronPDF na systemie Linux oraz przewodnik konfiguracji Docker opisują poszczególne etapy konfiguracji. Zarówno projekt Mozilla PDF.js, jak i natywne przeglądarki plików PDF są kompatybilne z każdym plikiem PDF wygenerowanym przez IronPDF, co zapewnia elastyczność również w zakresie wyświetlania.

Kilka praktyk poprawiających wydajność w środowisku produkcyjnym:

  • Tam gdzie to możliwe, ponownie wykorzystuj instancje ChromePdfRenderer zamiast tworzyć nową dla każdego żądania, ponieważ inicjalizacja renderera wiąże się z pewnymi kosztami.
  • Używaj asynchronicznych metod takich jak RenderHtmlAsPdfAsync, aby zwolnić wątek podczas renderowania przez silnik Chromium.
  • Buforuj wygenerowane pliki PDF przy użyciu IMemoryCache lub pamięci podręcznej rozproszonej, gdy ten sam dokument jest wielokrotnie żądany.
  • W przypadku bardzo dużych dokumentów warto rozważyć strumieniowe przesyłanie danych wyjściowych zamiast buforowania całej tablicy bajtów w pamięci.

Jak w praktyce działa renderowanie asynchroniczne?

Asynchroniczne API odzwierciedla wersję synchroniczną, ale zwraca Task<PdfDocument>. Oczekujesz wyniku wewnątrz akcji kontrolera async, utrzymując pulę wątków wolną do obsługi innych przychodzących żądań podczas trwania renderowania. Przejście z renderowania synchronicznego na asynchroniczne w scenariuszu dużego obciążenia zazwyczaj zmniejsza konflikt wątków i poprawia ogólny czas odpowiedzi przy obciążeniu równoległym.

Jakie są Twoje kolejne kroki?

Tworzenie przeglądarki plików PDF w ASP.NET Core MVC łączy natywne możliwości wyświetlania przeglądarki z funkcjami generowania IronPDF. Wbudowana przeglądarka plików PDF w nowoczesnych przeglądarkach automatycznie obsługuje wyświetlanie, drukowanie i nawigację, gdy kontroler ASP.NET zwraca pliki z prawidłowym typem MIME. IronPDF zajmuje się generowaniem — konwertuje HTML, adresy URL lub istniejące pliki na dobrze sformatowane dokumenty PDF z pełną obsługą CSS, JavaScript, nagłówków, stopek i ustawień zabezpieczeń.

Kluczowe funkcje omówione w tym przewodniku:

  • Serwowanie istniejących plików PDF przy użyciu metody File() z typem MIME application/pdf
  • Generowanie dynamicznych PDF-ów z ciągów HTML przy użyciu ChromePdfRenderer
  • Kontrolowanie wewnętrznego wyświetlania kontra pobieranie pliku przez nagłówek Content-Disposition
  • Dodawanie nagłówków, stopek, marginesów i ustawień zabezpieczeń przez RenderingOptions
  • Wykorzystanie Razor Pages jako alternatywy dla kontrolerów MVC do generowania plików PDF
  • Stosowanie ochrony hasłem i ograniczeń uprawnień w przypadku dokumentów wrażliwych
  • Poprawa wydajności dzięki asynchronicznemu renderowaniu i buforowaniu odpowiedzi

Stąd możesz przejść do bardziej zaawansowanych procesów, takich jak scałanie wielu plików PDF, tworzenie formularzy do wypełnienia lub generowanie plików PDF z widoków CSHTML Razor. Dokumentacja IronPDF obejmuje wszystkie funkcje wraz z działającymi przykładami kodu.

Bezpłatna próba, aby poznać pełne możliwości IronPDF, lub kup licencję do użytku produkcyjnego.

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.

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