Jak używać CSS z HTML w C# do tworzenia reagujących plików PDF
IronPDF umożliwia programistom C# konwersję HTML z CSS na PDF, zachowując design responsywny poprzez wsparcie zarówno dla typów mediów 'screen', jak i 'print'. Tryb drukowania optymalizuje układy dla wyjścia PDF i umożliwia funkcje takie jak powtarzane nagłówki tabel na stronach.
Typ mediów CSS 'screen' przeznaczony jest głównie do wyświetlania na ekranach komputerów i podobnych urządzeniach. Kiedy style są zdefiniowane dla typu mediów 'screen', wpływają na to, jak treści internetowe pojawiają się na ekranach, kładąc nacisk na projekt wizualny i interaktywność. Obejmuje to takie elementy jak efekty hover, animacje i obrazy tła, które poprawiają doświadczenie użytkownika na wyświetlaczach cyfrowych.
Typ mediów CSS 'print' jest zaprojektowany do drukowania. Określa, jak strona internetowa wygląda po wydruku, koncentrując się na optymalizacji treści dla strony drukowanej. Ta optymalizacja może obejmować dostosowanie rozmiarów czcionek, marginesów i usuwanie elementów niepotrzebnych podczas drukowania. Arkusze stylów do druku często usuwają menu nawigacyjne, paski boczne i dekoracyjne elementy, aby skupić się na głównej treści, czyniąc dokumenty bardziej czytelnymi i oszczędzając tusz.
Pracując z Chrome PDF Rendering Engine IronPDF, programiści mają pełną kontrolę nad wyborem typu mediów, zapewniając, że pliki PDF generowane z HTML utrzymują zamierzony design i funkcjonalność. Ta elastyczność jest cenna przy tworzeniu dokumentów, które muszą spełniać zarówno cyfrową dystrybucję, jak i cele drukowania fizycznego.
Quickstart: Generowanie plików PDF z reagującym HTML i CSS
Konwersja HTML z responsywnym CSS na PDF przy użyciu IronPDF jest prosta. Za pomocą zaledwie kilku linii kodu można zapewnić, że pliki PDF są renderowane perfekcyjnie na różnych urządzeniach, zachowując integralność stylów dla ekranów i drukowania. Ten krótki przewodnik demonstruje, jak używać IronPDF do osiągnięcia profesjonalnego wyjścia PDF z istniejących treści HTML.
-
Install IronPDF with NuGet Package Manager
PM > Install-Package IronPdf -
Skopiuj i uruchom ten fragment kodu.
new IronPdf.ChromePdfRenderer { RenderingOptions = { CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print } } .RenderUrlAsPdf("https://example.com") .SaveAs("responsive.pdf"); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz bibliotekę IronPDF C# do integracji z CSS i HTML
- Przygotuj plik HTML do konwersji na PDF
- Określ typ mediów CSS dla optymalnego formatowania PDF
- Ustaw typ mediów CSS 'Print' dla powtarzanych nagłówków tabel w PDF
- Skonfiguruj wymiary viewportu dla designu responsywnego
Jak działają typy CSS dla ekranów i druku w CSS3?
Dlaczego wybór odpowiedniego typu mediów CSS ma znaczenie?
IronPDF generuje pliki PDF z HTML w C# i może domyślnie renderować arkusz stylów dla ekranów do PDF. Jest to wygodne, ponieważ arkusze stylów do drukowania są często słabiej udokumentowane, używane lub rozwijane w porównaniu do ich odpowiedników dla ekranów. Jednak zrozumienie różnicy między tymi typami mediów jest kluczowe dla produkcji profesjonalnej jakości plików PDF.
Pracując z CSS (Ekran & Druk) w IronPDF, wybór między typami mediów ekranowymi a drukowanymi ma znaczący wpływ na końcowy wynik PDF. Typy mediów ekranowych zachowują interaktywne elementy i bogate projekty wizualne, podczas gdy typy mediów drukowanych optymalizują treści pod kątem czytelności i zużycia papieru.
CSS3 pozwala na renderowanie pewnych stylów CSS wyłącznie w wydrukowanych dokumentach, podczas gdy inne są przeznaczone do przeglądarek internetowych. IronPDF może współpracować z oboma, dając ci pełną kontrolę nad tym, jak twoje treści HTML są renderowane do PDF. Ta elastyczność zapewnia, że niezależnie od tego, czy tworzysz cyfrowe raporty, drukowalne faktury, czy hybrydowe dokumenty, twoje pliki PDF spełniają specyficzne wymagania ich przeznaczenia.
Kiedy należy używać Print, a kiedy Screen CSS Media Type?
Warto stworzyć i zastosować arkusz stylów do druku: Dowiedz się, jak stworzyć i zastosować idealny arkusz stylów do druku.
Każdy typ mediów CSS jest przeznaczony do różnych przypadków użycia. Należy wypróbować każdy z nich, aby zobaczyć, który odpowiada wymaganiom projektu. Zaleca się uwzględnić następujące wytyczne:
Używaj Print CSS Media Type, gdy:
- Tworzone są dokumenty przeznaczone do drukowania fizycznego
- Generowane są faktury, raporty lub formalne dokumenty
- Wymagane są powtarzane nagłówki tabel na stronach
- Oszczędność tuszu jest priorytetem
- Stosowane są niestandardowe wymagania rozmiaru papieru
Używaj Screen CSS Media Type, gdy:
- Tworzone są interaktywne pliki PDF z bogatymi elementami wizualnymi
- Zachowywana jest estetyka web designu w pliku PDF
- Włączane są obrazy tła i kolory
- Plik PDF będzie głównie oglądany na ekranach
- Realizowana jest konwersja HTML do PDF z responsywnym designem
Jakie są wizualne różnice między trybami ekranu a druku?
![]()
Powyższe przykłady pokazują, jak ta sama treść HTML jest renderowana inaczej w zależności od wyboru typu mediów CSS. Zauważ, jak wersja do druku usuwa dekoracyjne obrazy i ikony, tworząc czystszy, bardziej drukowalny dokument, podczas gdy wersja ekranowa zachowuje wszystkie elementy wizualne do oglądania cyfrowego.
Jak powtarzać nagłówki tabel w plikach PDF?
Dlaczego nagłówki tabel pojawiają się tylko raz w trybie ekranowym?
Gdy masz do czynienia z tabelami HTML rozciągającymi się na wiele stron, ustaw właściwość CssMediaType na PdfCssMediaType.Print. Zapewnia to, że nagłówek tabeli pojawia się na początku każdej kolejnej strony. Z kolei PdfCssMediaType.Screen informuje Chrome, aby drukował nagłówki tylko raz. To zachowanie jest szczególnie ważne podczas tworzenia raportów PDF z długimi tabelami danych.
Typ mediów do druku aktywuje specyficzne zasady CSS, które przeglądarki używają do paginacji, w tym właściwość thead {display: table-header-group;}, która umożliwia powtarzanie nagłówków. Ta funkcja jest niezbędna do zachowania kontekstu, gdy czytelnicy przeglądają dokumenty wielostronicowe.
Jaka struktura HTML jest wymagana dla powtarzających się nagłówków?
Aby Chrome wykrywał nagłówek tabeli, należy umieścić go w tagu <thead>. Wyrenderuj 'przykładowy plik tableHeader.html z powtarzającymi się nagłówkami tabel' jako PDF, aby zobaczyć efekt.
Oto zalecana struktura HTML:
<table>
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<table>
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
Jak wdrożyć powtarzanie nagłówków tabel w C#?
:path=/static-assets/pdf/content-code-examples/how-to/html-to-pdf-responsive-css-table-header.cs
using IronPdf;
using IronPdf.Rendering;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Change the paper size to small
renderer.RenderingOptions.SetCustomPaperSizeinPixelsOrPoints(600, 400);
// Choose screen or print CSS media
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("tableHeader.html");
pdf.SaveAs("tableHeader.pdf");
Imports IronPdf
Imports IronPdf.Rendering
Private renderer As New ChromePdfRenderer()
' Change the paper size to small
renderer.RenderingOptions.SetCustomPaperSizeinPixelsOrPoints(600, 400)
' Choose screen or print CSS media
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
' Render HTML to PDF
Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("tableHeader.html")
pdf.SaveAs("tableHeader.pdf")
Aby uzyskać bardziej zaawansowane opcje formatowania tabel, zbadaj niestandardowe marginesy do kontroli odstępów wokół twoich tabel lub wdroż podziały stron, aby upewnić się, że tabele zaczynają się na nowych stronach, gdy jest to potrzebne.
Jak wygląda ostateczny plik PDF?
Zaawansowana konfiguracja typów mediów CSS
Pracując z złożonymi układami, łącz typy mediów CSS z innymi funkcjami IronPDF. Na przykład, używając ustawień Viewport & Zoom, wybrany typ mediów CSS wpływa na to, jak reagujące projekty skalują się w końcowym pliku PDF.
Oto przykład demonstrujący zaawansowaną konfigurację:
using IronPdf;
using IronPdf.Rendering;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Configure for print media type with custom settings
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true; // Override print defaults
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
// Add custom CSS for print media
string customCss = @"
@media print {
.no-print { display: none; }
body { font-size: 12pt; }
h1 { page-break-after: avoid; }
}
";
// Render with custom CSS injection
string htmlWithCss = $"<style>{customCss}</style>{yourHtmlContent}";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlWithCss);
pdf.SaveAs("advanced-print-layout.pdf");
using IronPdf;
using IronPdf.Rendering;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Configure for print media type with custom settings
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true; // Override print defaults
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
// Add custom CSS for print media
string customCss = @"
@media print {
.no-print { display: none; }
body { font-size: 12pt; }
h1 { page-break-after: avoid; }
}
";
// Render with custom CSS injection
string htmlWithCss = $"<style>{customCss}</style>{yourHtmlContent}";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlWithCss);
pdf.SaveAs("advanced-print-layout.pdf");
Imports IronPdf
Imports IronPdf.Rendering
Dim renderer As New ChromePdfRenderer()
' Configure for print media type with custom settings
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
renderer.RenderingOptions.PrintHtmlBackgrounds = True ' Override print defaults
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
' Add custom CSS for print media
Dim customCss As String = "
@media print {
.no-print { display: none; }
body { font-size: 12pt; }
h1 { page-break-after: avoid; }
}
"
' Render with custom CSS injection
Dim htmlWithCss As String = $"<style>{customCss}</style>{yourHtmlContent}"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlWithCss)
pdf.SaveAs("advanced-print-layout.pdf")
W projektach wymagających pixel-perfect dokładności warto użyć funkcji Debug HTML z Chrome, aby podglądać, jak typy mediów CSS będą renderowane przed wygenerowaniem końcowego pliku PDF.
Najlepsze praktyki dla typów mediów CSS w IronPDF
-
Testuj oba typy mediów: Należy zawsze testować HTML z oboma typami mediów ekranowymi i drukowanymi, aby określić, który daje najlepsze rezultaty dla danego przypadku użycia.
-
Używaj typu do druku dla dokumentów: Przy tworzeniu formalnych dokumentów, faktur lub raportów typ mediów do druku zazwyczaj zapewnia czystsze, bardziej profesjonalne wyniki.
-
Wykorzystuj zapytania mediów: Zapytania mediów CSS pozwalają dostosować układy do różnych scenariuszy wyjścia.
-
Rozważ wydajność: Arkusze stylów do druku są często renderowane szybciej, ponieważ wykluczają niepotrzebne elementy wizualne.
- Waliduj CSS: Należy użyć ustawień renderowania HTML, aby upewnić się, że CSS jest prawidłowo stosowane podczas generowania pliku PDF.
Opanowując typy mediów CSS w IronPDF, można tworzyć pliki PDF, które doskonale spełniają wymagania projektu, niezależnie od tego, czy są przeznaczone do dystrybucji cyfrowej, czy drukowania fizycznego.
Często Zadawane Pytania
How can I convert HTML with responsive CSS to PDF in C#?
IronPDF provides a simple way to convert HTML with responsive CSS to PDF in C#. You can use the ChromePdfRenderer class and specify the CSS media type (screen or print) through the RenderingOptions property. With just a few lines of code, IronPDF preserves your responsive design and ensures perfect rendering across different devices.
What is the difference between 'screen' and 'print' CSS media types when generating PDFs?
IronPDF supports both CSS media types. The 'screen' media type displays content as it appears on digital screens with hover effects and animations, while the 'print' media type optimizes content for printed pages by adjusting fonts, margins, and removing unnecessary elements like navigation menus. IronPDF's Chrome PDF Rendering Engine gives you full control over which media type to use.
How do I enable repeated table headers across PDF pages?
To enable repeated table headers across pages in your PDF, set the CSS media type to 'Print' in IronPDF. This can be done by setting CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print in the RenderingOptions. The print media type includes optimizations like repeated headers that make multi-page documents more readable.
Can I convert a live website URL directly to PDF with responsive design?
Yes, IronPDF allows you to convert live websites directly to PDF while maintaining responsive design. Use the RenderUrlAsPdf method with the ChromePdfRenderer class. You can specify whether to use screen or print CSS media types to ensure the PDF renders according to your requirements.
What rendering engine does the library use for HTML to PDF conversion?
IronPDF uses the Chrome PDF Rendering Engine, which provides accurate HTML to PDF conversion with full support for modern CSS3 features, JavaScript, and responsive design. This engine ensures that your PDFs maintain the intended design and functionality of the original HTML content.
How do I configure viewport dimensions for responsive PDF design?
IronPDF allows you to configure viewport dimensions through the RenderingOptions property of the ChromePdfRenderer. This ensures your responsive CSS media queries work correctly when converting HTML to PDF, allowing you to control how content appears at different viewport sizes.

