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
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
Jak wygląda plik PDF wyświetlany w przeglądarce?

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
Jak wygląda treść HTML po wygenerowaniu pliku PDF?

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
Kiedy należy używać wyświetlania wbudowanego zamiast pobierania?

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
Jakie opcje renderowania są dostępne w przypadku dostosowywania plików PDF?

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.
| 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
ChromePdfRendererzamiast 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 MIMEapplication/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.




