Przejdź do treści stopki
KORZYSTANIE Z IRONPDF

Jak stworzyć przeglądarkę PDF w ASP.NET Core

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.

Zacznij z IronPDF teraz.
green 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.

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");
    }
}
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 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");
    }
}
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 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");
    }
}
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 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");
    }
}
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 As 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 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ństwa Właściwości IronPDF Przykład zastosowania
Hasło właściciela OwnerPassword Zapobieganie nieautoryzowanym zmianom uprawnień
Hasło użytkownika UserPassword 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 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.

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

Zespół wsparcia Iron

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