Jak przekonwertować HTML na PDF z responsywnym CSS przy użyciu C#

Jak używać CSS z HTML w C# do tworzenia reagujących plików PDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

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świetłącząch 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 Silnikiem Renderowania PDF Chrome IronPDF, programiści mają pełną kontrolę nad tym, jaki typ nośnika użyć, zapewniając, że generowane z HTML PDF-y 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

Przekonwertuj swój HTML z reagującym CSS na PDF przy użyciu IronPDF. Za pomocą zaledwie kilku linijek kodu, upewnij się, że twoje 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.

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf
  2. Skopiuj i uruchom ten fragment kodu.

    new IronPdf.ChromePdfRenderer { RenderingOptions = { CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print } }
        .RenderUrlAsPdf("https://example.com")
        .SaveAs("responsive.pdf");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer


Jak działają typy CSS dla ekranów i druku w CSS3?

Dłączego 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 udokumentówane, 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 powinienem używać Print a kiedy Screen CSS Media Type?

Stwórz i zastosuj arkusz stylów do druku do twojego HTML: 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. Wypróbuj każdy z nich, aby zobaczyć, który odpowiada twoim wymaganiom. Należy uwzględnić następujące wytyczne:

Używaj Print CSS Media Type, gdy:

  • Tworzysz dokumenty przeznaczone do drukowania fizycznego
  • Generujesz faktury, raporty lub formalne dokumenty
  • Potrzebujesz powtarzanych nagłówków tabel na stronach
  • Oszczędność tuszu jest priorytetem
  • Pracujesz z niestandardowymi wymaganiami rozmiaru papieru

Używaj Screen CSS Media Type, gdy:

  • Tworzysz interaktywne pliki PDF z bogatymi elementami wizualnymi
  • Zachowujesz estetykę web designu w pliku PDF
  • Włączasz obrazy tła i kolory
  • Plik PDF będzie głównie oglądany na ekranach
  • Pracujesz nad konwersją HTML do PDF z responsywnym designem

Jakie są wizualne różnice między trybami ekranu a druku?

CSS print vs screen media types comparison showing Apple Mac page with images hidden in print version Porównanie typów mediów CSS: Układ do druku pomija ikony, układ ekranowy zawiera ikony specyfikacji MacBooka

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?

Dłączego nagłówki tabel pojawiają się tylko raz w trybie ekranowym?

W przypadku tabel HTML obejmujących wiele stron należy ustawić właściwość CssMediaType na PdfCssMediaType.Print. Zapewnia to, że nagłówek tabeli pojawia się na początku każdej kolejnej strony. Natomiast PdfCssMediaType.Screen nakazuje przeglądarce Chrome wydrukowanie nagłówków tylko raz. To zachowanie jest szczególnie ważne podczas tworzenia raportów PDF z długimi tabelami danych.

Typ mediów PRINT aktywuje określone reguły CSS, których 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 zapewnić, że Chrome wykryje nagłówek tabeli, należy umieścić go w tagu <thead>. Let's render the 'tableHeader.html example of repeating table headers' HTML file to PDF to see the effect.

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>
HTML

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")
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

W projektach wymagających pixel-perfect dokładności, rozważ użycie funkcji Debug HTML z Chrome, aby podglądać, jak twoje typy mediów CSS będą renderowane przed wygenerowaniem końcowego pliku PDF.

Najlepsze praktyki dla typów mediów CSS w IronPDF

  1. Testuj oba typy mediów: Zawsze testuj swój HTML z oboma typami mediów ekranowymi i drukowanymi, aby określić, który daje najlepsze rezultaty dla twojego specyficznego przypadku użycia.

  2. 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.

  3. Wykorzystuj zapytania mediów: Wykorzystuj zapytania mediów CSS, aby dostosować swoje układy do różnych scenariuszy wyjścia.

  4. Rozważ wydajność: Arkusze stylów do druku są często renderowane szybciej, ponieważ wykluczają niepotrzebne elementy wizualne.

  5. Waliduj swoje CSS: Użyj ustawień renderowania HTML, aby upewnić się, że twoje CSS jest prawidłowo stosowane podczas generowania pliku PDF.

Opanowując typy mediów CSS w IronPDF, możesz tworzyć pliki PDF, które doskonale spełniają twoje wymagania, niezależnie od tego, czy są przeznaczone do dystrybucji cyfrowej, czy drukowania fizycznego.

Często Zadawane Pytania

Jak moge konwertowac HTML z responsywnym CSS na PDF w C#?

IronPDF zapewnia prosta metode konwersji HTML z responsywnym CSS na PDF w C#. Mozesz uzyc klasy ChromePdfRenderer i okreslic typ mediow CSS (screen lub print) za pomoca wlasciwosci RenderingOptions. Z zaledwie kilkoma liniami kodu, IronPDF zachowuje twoj responsywny projekt i zapewnia doskonala prezentacje na roznych urzadzeniach.

Jaka jest roznica miedzy 'screen' a 'print' typami mediow CSS podczas generowania PDF?

IronPDF wspiera oba typy mediow CSS. Typ medium 'screen' wyswietla tresc tak, jak sie pojawia na cyfrowych ekranach z efektami hover i animacjami, podczas gdy typ medium 'print' optymalizuje zawartosc dla drukowanych stron poprzez dostosowanie czcionek, marginesow i usuwanie niepotrzebnych elementow, takich jak menu nawigacyjne. Silnik renderowania PDF Chrome IronPDF daje ci pelna kontrole nad tym, ktorego rodzaju media chcesz uzyc.

Jak wlaczyc powtarzane naglowki tabel w dokumentach PDF?

Aby wlaczyc powtarzane naglowki tabel na stronach w twoim PDF, ustaw typ mediow CSS na 'Print' w IronPDF. Mozna to zrobic ustawiajac CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print w RenderingOptions. Typ medium druk zawiera optymalizacje jak powtarzane naglowki, ktore sprawiaja, ze dokumenty wielostronicowe sa latwiejsze do czytania.

Czy moge przekonwertowac URL zywej strony internetowej bezposrednio na PDF z responsywnym projektem?

Tak, IronPDF pozwala ci przekonwertowac zywe strony internetowe bezposrednio na PDF, utrzymujac responsywny projekt. Uzyj metody RenderUrlAsPdf z klasa ChromePdfRenderer. Mozesz okreslic, czy uzywac screen lub print typow mediow CSS, aby upewnic sie, ze PDF jest renderowany zgodnie z twoimi wymaganiami.

Jaki silnik renderowania uzywa biblioteka do konwersji HTML na PDF?

IronPDF uzywa silnika renderowania PDF Chrome, ktory dostarcza dokladna konwersje HTML na PDF z pelna obsluga nowoczesnych funkcji CSS3, JavaScript i responsywnego projektu. Ten silnik zapewnia, ze twoje PDF zachowuja zamierzony projekt i funkcjonalnosc oryginalnej zawartosci HTML.

Jak skonfigurowac wymiary widoku dla responsywnego projektu PDF?

IronPDF pozwala ci skonfigurowac wymiary widoku poprzez wlasciwosc RenderingOptions klasy ChromePdfRenderer. To zapewnia, ze twoje media zapytania CSS dzialaja poprawnie podczas konwersji HTML na PDF, pozwalajac ci kontrolowac, jak zawartosc sie prezentuje przy roznych rozmiarach widoku.

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
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,926,724 | Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.