Przejdź do treści stopki
KORZYSTANIE Z IRONPDF

Stwórz przeglądarkę PDF w ASP.NET Core MVC | Tutorial

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.

!{--01001100010010010100001001010010010000010101001001011001010111110100011101000101010101000101111101010011010101000100000101010010010101000100010101000100010111110101011101001001010100010010000101111101010000010100100100111101000100010101010100001101010100010111110101010001010010010010010100000101001100010111110100001001001100010011110100001101001011--}

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.

Install-Package IronPdf
dotnet add package IronPdf
Install-Package IronPdf
dotnet add package IronPdf
SHELL

Po zainstalowaniu pakietu dodaj przestrzeń nazw IronPdf do plików kontrolerów i możesz rozpocząć generowanie oraz udostępnianie 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. Gdy aplikacja .NET Core zwraca plik o typie zawartości application/pdf, przeglądarka wyświetla dokument PDF bezpośrednio, bez konieczności korzystania z programu 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");
    }
}
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");
    }
}
Imports Microsoft.AspNetCore.Mvc

Public Class DocumentController
    Inherits Controller

    Public Function ViewPdf() As IActionResult
        ' Path to an existing PDF file in the wwwroot folder
        Dim path As String = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "documents", "sample.pdf")
        Dim fileBytes As Byte() = System.IO.File.ReadAllBytes(path)
        ' Return file for inline browser display
        Return File(fileBytes, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

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

Dokument PDF zatytułowany

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, instruując przeglądarkę dokumentów przeglądarki, aby renderowała zawartość w trybie inline. To podejście działa we wszystkich nowoczesnych przeglądarkach, zarówno na komputerach stacjonarnych, jak i urządzeniach mobilnych, zapewniając spójne wrażenia wszystkim użytkownikom.

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 internetowych wymaga dynamicznie generowanych dokumentów dostosowanych do aktualnego użytkownika lub żądania. Klasa ChromePdfRenderer biblioteki IronPDF konwertuje zawartość HTML na profesjonalnie renderowane pliki PDF, wykorzystując w tle prawdziwy silnik przeglądarki Chromium.

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");
    }
}
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");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Public Class ReportController
    Inherits Controller

    Public Function GenerateReport() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        ' HTML content with CSS styling
        Dim html As String = "
            <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>"

        Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
        Return File(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

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

Przeglądarka plików PDF wyświetlająca miesięczny raport sprzedaży z sformatowanym tekstem nagłówka i datą generacji, demonstrująca konwersję HTML do PDF z zastosowaniem niestandardowego stylu CSS za pomocą IronPDF

Ten przykład pokazuje, w jaki sposób IronPDF przekształca ciąg znaków HTML w dokument PDF. ChromePdfRenderer wykorzystuje silnik oparty na Chromium, zapewniający dokładne renderowanie CSS i obsługę 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.

Gdy pominiesz parametr nazwy pliku w metodzie File(), .NET Core nie ustawia nagłówka Content-Disposition, więc przeglądarka stosuje swoje domyślne zachowanie — zazwyczaj jest to wyświetlanie wbudowane. Gdy podasz nazwę pliku jako trzeci parametr, .NET Core automatycznie dodaje Content-Disposition: attachment, zachęcając użytkowników do zapisania pliku.

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");
    }
}
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");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Public Class PdfController
    Inherits Controller

    Public Function DisplayInline() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
        renderer.RenderingOptions.MarginTop = 25
        renderer.RenderingOptions.MarginBottom = 25

        Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")
        ' Display PDF inline in browser -- no filename = inline
        Return File(pdf.BinaryData, "application/pdf")
    End Function

    Public Function DownloadPdf() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter
        renderer.RenderingOptions.EnableJavaScript = True

        Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")
        ' Prompt download with specified filename
        Return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

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

Zrzut ekranu przedstawiający stronę główną Wikipedii przekonwertowaną do formatu PDF i wyświetloną w oknie przeglądarki wraz z elementami sterującymi przeglądarki PDF, w tym Zoomem, nawigacją po stronach i opcjami drukowania

Różnica między tymi 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.

Handler OnGet w Razor Page działa jak akcja kontrolera — odbiera żądanie, wykonuje zadanie i zwraca wynik. Zwracanie FileResult z modelu strony jest obsługiwane przez .NET Core i działa tak samo, 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");
    }
}
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");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages

Public Class InvoiceModel
    Inherits PageModel

    Public Function OnGet(id As Integer) As IActionResult
        Dim 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

        Dim html As String = $"
            <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>"

        Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
        Return File(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

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

Przeglądarka plików PDF wyświetlająca fakturę nr 20 z profesjonalnym formatowaniem, w tym stylizowanymi nagłówkami, informacjami o terminie płatności oraz podziękowaniem w interfejsie przeglądarki o ciemnej kolorystyce

Ten przykład Razor Pages pokazuje, w jaki sposób handler OnGet generuje plik PDF na podstawie parametru URL. Właściwość RenderingOptions umożliwia 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 w RenderingOptions obejmują znak wodny, kompresję plików PDF oraz podpisy 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 dowolnego obiektu PdfDocument przed zwróceniem go 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ństwa Właściwości IronPDF Przykład zastosowania
Hasło właściciela WłaścicielHasło Zapobieganie nieautoryzowanym zmianom uprawnień
Hasło użytkownika UżytkownikHasło Wymagaj hasła do otwarcia dokumentu
Wyłącz drukowanie AllowUserPrinting Uniemożliwienie odbiorcom drukowania pliku
Wyłącz kopiowanie AllowUserCopyPasteContent Wyodrębnianie tekstu z pliku PDF
Podpis cyfrowy PdfSignature Zweryfikuj 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 wieloplatformowe 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:

  • W miarę możliwości należy ponownie wykorzystywać instancje ChromePdfRenderer zamiast tworzyć nowe na każde żądanie, ponieważ inicjalizacja renderera wiąże się z pewnym obciążeniem.
  • Użyj metod asynchronicznych, takich jak RenderHtmlAsPdfAsync, aby zwolnić wątek podczas renderowania silnika 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?

Asynchroniczny interfejs API odzwierciedla wersję synchroniczną, ale zwraca Task<PdfDocument>. Na wynik czekasz w akcji kontrolera async, pozostawiając pulę wątków wolną do obsługi innych przychodzących żądań podczas 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:

  • Obsługa istniejących plików PDF w trybie inline przy użyciu metody File() z typem MIME application/pdf
  • Generowanie dynamicznych plików PDF z ciągów znaków HTML przy użyciu ChromePdfRenderer
  • Kontrolowanie wyświetlania wbudowanego w stosunku do pobierania pliku poprzez nagłówek Content-Disposition
  • Dodawanie nagłówków, stopek, marginesów i ustawień zabezpieczeń za pomocą 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 scalanie 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.

Rozpocznij bezpłatny okres próbny, aby poznać pełne możliwości IronPDF, lub kup licencję do użytku produkcyjnego.

Często Zadawane Pytania

Jak wyświetlać pliki PDF w aplikacjach ASP.NET Core MVC?

Za pomocą IronPDF można wyświetlać pliki PDF w aplikacjach ASP.NET Core MVC. Pozwala to na generowanie, renderowanie i wyświetlanie plików PDF bezpośrednio w przeglądarce przy użyciu nowoczesnych wbudowanych przeglądarek PDF.

Czy potrzebuję wtyczek innych firm, aby wyświetlać pliki PDF w przeglądarce?

Nie, nowoczesne przeglądarki mają wbudowane przeglądarki plików PDF, które uruchamiają się automatycznie podczas wyświetlania plików PDF o prawidłowym typie MIME. IronPDF może pomóc w zapewnieniu prawidłowego wyświetlania plików PDF.

Jaka jest zaleta korzystania z IronPDF w ASP.NET Core MVC?

IronPDF to biblioteka .NET do obsługi plików PDF, która upraszcza proces generowania i renderowania dokumentów PDF w aplikacjach ASP.NET Core MVC, zwiększając produktywność i usprawniając zarządzanie plikami PDF.

Czy IronPDF może współpracować z istniejącymi przeglądarkami plików PDF?

Tak, IronPDF płynnie współpracuje z istniejącymi przeglądarkami PDF, zapewniając, że pliki PDF są dostarczane z prawidłowym typem MIME, co umożliwia ich automatyczne wyświetlanie w przeglądarce.

Czy IronPDF jest często aktualizowany?

Tak, IronPDF to często aktualizowana biblioteka .NET do obsługi plików PDF, oferująca najnowsze funkcje i ulepszenia do obsługi dokumentów PDF w aplikacjach ASP.NET Core MVC.

W jaki sposób IronPDF obsługuje generowanie plików PDF w aplikacjach internetowych?

IronPDF zapewnia solidne funkcje do generowania plików PDF z różnych typów treści, umożliwiając programistom tworzenie dynamicznych i interaktywnych dokumentów PDF w ramach aplikacji internetowych.

Jakiego typu MIME należy używać do udostępniania plików PDF?

Aby zapewnić prawidłowe wyświetlanie w przeglądarkach, pliki PDF powinny być dostarczane z typem MIME „application/pdf”. IronPDF może pomóc w efektywnym zarządzaniu tym aspektem.

Czy mogę dostosować renderowanie plików PDF w IronPDF?

Tak, IronPDF oferuje szerokie możliwości dostosowywania renderowania plików PDF, co pozwala dostosować wynik do konkretnych wymagań dotyczących wyglądu i funkcjonalności.

Czy IronPDF obsługuje wyłącznie aplikacje ASP.NET Core MVC?

Chociaż IronPDF doskonale sprawdza się w aplikacjach ASP.NET Core MVC, jest również wszechstronny i może być używany z innymi aplikacjami .NET do obsługi funkcji PDF.

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