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

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

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

