Jak obsługiwać podziały stron HTML na PDF przy użyciu języka C#

Dodanie lub unikanie zalaman stron w HTML PDF za pomoca C

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

Kontroluj podziały stron w dokumentach PDF, dodając page-break-after: always; do elementów HTML lub zapobiegając podziałom z page-break-inside: avoid; podczas konwersji HTML na PDF za pomocą IronPDF w C#.

IronPDF obsługuje zalamania stron w dokumentach PDF. Jedną z głównych różnic między dokumentami PDF a HTML jest to, że dokumenty HTML zazwyczaj się przewijają, podczas gdy PDFy są wielostronicowe i można je drukować. Podczas konwertowania ciągów HTML na PDF, programiści często potrzebują precyzyjnej kontroli nad miejscem, w którym następują zalamania stron, aby zapewnić profesjonalnie wyglądające dokumenty.

Szybki start: Implementacja zalamań stron w konwersji HTML do PDF

Konwertuj HTML na PDF z zalamaniami stron za pomocą IronPDF. Ten przykład demonstruje wstawienie zalamania strony po określonej zawartości HTML, aby zapewnić prawidłowe paginowanie. Dzięki dodaniu stylu page-break-after: always;, programiści kontrolują, gdzie występują podziały stron, poprawiając czytelność i organizację wynikowego dokumentu PDF. <div> <section> <article> <div> page-break-inside DIV page-break-inside: avoid page-break-inside: avoid DIV <thead> page-break-inside: avoid page-break-after: always page-break-before: always orphans widows break-inside break-after break-before

  1. Install IronPDF with NuGet Package Manager

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

    new IronPdf.ChromePdfRenderer()
      .RenderHtmlAsPdf("<html><body><h1>Hello World!</h1><div style='page-break-after: always;'></div></body></html>")
      .SaveAs("pageWithBreaks.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 dodać zalamanie strony w HTML do PDF?

Aby utworzyć zalamanie strony w HTML, użyj tego w swoim kodzie HTML:

<div style="page-break-after: always;"></div>
<div style="page-break-after: always;"></div>
HTML

Właściwość page-break-after CSS jest najpewniejszą metodą kontrolowania paginacji podczas renderowania HTML do PDF. Ta właściwość informuje renderer PDF o wstawieniu zalamania strony natychmiast po elemencie zawierającym ten styl. Pracując z marginesami niestandardowymi lub konkretnymi układami strony, zalamania stron zapewniają, że zawartość pojawia się dokładnie tam, gdzie zamierzono.

Dlaczego page-break-after działa lepiej niż inne metody?

W tym przykładzie mam następujące table i img w moim HTML, i chcę je na dwóch oddzielnych stronach, dodając przerwę stron po table. Właściwość page-break-after zapewnia bardziej spójne wyniki w różnych silnikach renderowania w porównaniu do alternatyw jak page-break-before czy ręczne formatowanie. Tworząc nowe PDFy o złożonych układach, to podejście zapewnia przewidywalną paginację.

Jakie elementy powinienem używać do zalamań stron?

Przerwy stron działają skutecznie z elementami blokowymi takimi jak div, section, i article. Chociaż można stosować style przerw stron do różnych elementów HTML, opakowanie treści w dedykowanym div zapewnia najpewniejsze wyniki. Jest to szczególnie ważne przy pracy z nagłówkami i stopkami, które muszą pojawiać się spójnie na stronach.

Tabela

<table style="border: 1px solid #000000">
  <tr>
    <th>Company</th>
    <th>Product</th>
  </tr>
  <tr>
    <td>Iron Software</td>
    <td>IronPDF</td>
  </tr>
  <tr>
    <td>Iron Software</td>
    <td>IronOCR</td>
  </tr>
</table>
<table style="border: 1px solid #000000">
  <tr>
    <th>Company</th>
    <th>Product</th>
  </tr>
  <tr>
    <td>Iron Software</td>
    <td>IronPDF</td>
  </tr>
  <tr>
    <td>Iron Software</td>
    <td>IronOCR</td>
  </tr>
</table>
HTML

Obraz

<img src="/static-assets/pdf/how-to/html-to-pdf-page-breaks/ironpdf-logo-text-dotnet.svg" style="border:5px solid #000000; padding:3px; margin:5px" />
<img src="/static-assets/pdf/how-to/html-to-pdf-page-breaks/ironpdf-logo-text-dotnet.svg" style="border:5px solid #000000; padding:3px; margin:5px" />
HTML

Jak zaimplementować zalamania stron w kodzie C#?

:path=/static-assets/pdf/content-code-examples/how-to/html-to-pdf-page-breaks-page-break.cs
using IronPdf;

const string html = @"
  <table style='border: 1px solid #000000'>
    <tr>
      <th>Company</th>
      <th>Product</th>
    </tr>
    <tr>
      <td>Iron Software</td>
      <td>IronPDF</td>
    </tr>
    <tr>
      <td>Iron Software</td>
      <td>IronOCR</td>
    </tr>
  </table>

  <div style='page-break-after: always;'> </div>

  <img src='https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg'>";

var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("Page_Break.pdf");
Imports IronPdf

Private Const html As String = "
  <table style='border: 1px solid #000000'>
    <tr>
      <th>Company</th>
      <th>Product</th>
    </tr>
    <tr>
      <td>Iron Software</td>
      <td>IronPDF</td>
    </tr>
    <tr>
      <td>Iron Software</td>
      <td>IronOCR</td>
    </tr>
  </table>

  <div style='page-break-after: always;'> </div>

  <img src='https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg'>"

Private renderer = New ChromePdfRenderer()

Private pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("Page_Break.pdf")
$vbLabelText   $csharpLabel

Kod powyżej generuje PDF z 2 stronami: table na pierwszej stronie i img na drugiej:

Jak unikać zalamań stron w obrazach?

Aby uniknąć przerwy strony wewnątrz obrazu lub table, użyj właściwości CSS avoid zastosowanej do elementu opakowującego div. Ta technika jest niezbędna do zachowania integralności wizualnej podczas debugowania HTML w Chrome, aby upewnić się, że twoje PDFy renderują się dokładnie tak, jak zamierzono.

<div style="page-break-inside: avoid">
    <img src="no-break-me.png" />
</div>
<div style="page-break-inside: avoid">
    <img src="no-break-me.png" />
</div>
HTML

Dlaczego powinienem opakować obrazy w elementy DIV?

Opakowanie obrazów w elementy div zapewnia lepszą kontrolę nad zachowaniem przerw stron. Właściwość page-break-inside działa najbardziej niezawodnie na elementach blokowych. Z natury, obrazy są elementami w liniowymi, więc opakowanie ich zapewnia właściwe zastosowanie stylu. To podejście jest szczególnie przydatne przy pracy z responsywnymi układami CSS, które muszą zachować swoją strukturę w formacie PDF.

Jakie są powszechne problemy z zalamaniami stron obrazów?

Powszechne problemy obejmują dzielenie obrazów na strony, częściowe renderowanie na granicach stron i utratę podpisów lub związanych z nimi tekstów. Te problemy często występują, gdy obrazy znajdują się blisko dolnej części strony. Użycie opakowania page-break-inside: avoid zapobiega tym problemom, zapewniając, że cały obraz i jego kontener przechodzą na następną stronę jako jednostka.

:path=/static-assets/pdf/content-code-examples/how-to/html-to-pdf-page-breaks-7.cs
using IronPdf;

// Example showing how to prevent image breaks in a more complex layout
const string htmlWithProtectedImage = @"
<html>
<head>
    <style>
        .no-break { page-break-inside: avoid; }
        .image-container { 
            border: 2px solid #333; 
            padding: 10px; 
            margin: 20px 0;
        }
    </style>
</head>
<body>
    <h1>Product Gallery</h1>
    <p>Our featured products are displayed below:</p>
    
    <div class='no-break image-container'>
        <img src='product1.jpg' alt='Product 1' />
        <p>Product 1 Description</p>
    </div>
    
    <div class='no-break image-container'>
        <img src='product2.jpg' alt='Product 2' />
        <p>Product 2 Description</p>
    </div>
</body>
</html>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlWithProtectedImage);
pdf.SaveAs("ProductGallery.pdf");
Imports IronPdf

' Example showing how to prevent image breaks in a more complex layout
Const htmlWithProtectedImage As String = "
<html>
<head>
    <style>
        .no-break { page-break-inside: avoid; }
        .image-container { 
            border: 2px solid #333; 
            padding: 10px; 
            margin: 20px 0;
        }
    </style>
</head>
<body>
    <h1>Product Gallery</h1>
    <p>Our featured products are displayed below:</p>
    
    <div class='no-break image-container'>
        <img src='product1.jpg' alt='Product 1' />
        <p>Product 1 Description</p>
    </div>
    
    <div class='no-break image-container'>
        <img src='product2.jpg' alt='Product 2' />
        <p>Product 2 Description</p>
    </div>
</body>
</html>"

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlWithProtectedImage)
pdf.SaveAs("ProductGallery.pdf")
$vbLabelText   $csharpLabel
Icon Quote related to Jakie są powszechne problemy z zalamaniami stron obrazów?

Moją ulubioną biblioteką tego typu jest IronPDF. Umożliwia ona szybkie i efektywne manipulowanie plikami PDF. Posiada także wiele cennych funkcji, takich jak eksport do formatu PDF/A i cyfrowe podpisywanie dokumentów PDF.

Milan Jovanovic related to Jakie są powszechne problemy z zalamaniami stron obrazów?

Milan Jovanovic

Microsoft MVP

Zobacz studium przypadku
Icon Quote related to Jakie są powszechne problemy z zalamaniami stron obrazów?

IronOCR pozwala nam oszczędzić 40 000 USD rocznie na ręcznym przetwarzaniu, jednocześnie zwiększając produktywność i uwalniając zasoby do zadań o wysokim wpływie. Gorąco polecam.

Brent Matzelle related to Jakie są powszechne problemy z zalamaniami stron obrazów?

Brent Matzelle

Dyrektor technologiczny, OPYN

Zobacz studium przypadku
Icon Quote related to Jakie są powszechne problemy z zalamaniami stron obrazów?

IronSuite odgrywa kluczową rolę w naszej działalności. Są to narzędzia zwiększające wydajność w całej firmie, w tym tworzenie planów pięter i poprawa zarządzania zapasami.

David Jones related to Jakie są powszechne problemy z zalamaniami stron obrazów?

David Jones

Główny inżynier oprogramowania, Agorus Build

Zobacz studium przypadku

Jak unikać zalamań stron w tabelach?

Jak pokazano powyżej, przerwy stron w tabelach można unikać przy użyciu CSS avoid. Lepiej zastosować to do opakowania div niż do samej tabeli, aby styl został zastosowany do węzła HTML o poziomie bloku. Tworząc kompleksowe samouczki HTML do PDF, odpowiednie formatowanie tabel jest kluczowe dla czytelności.

Kiedy powinienem używać thead dla nagłówków tabeli?

Aby powielić nagłówki i stopki tabel na każdej stronie dużej tabeli HTML rozciągającej się na kilka stron PDF, użyj grupy thead wewnątrz tabeli:

<thead>
    <tr>
        <th>C Sharp</th><th>VB</th>
    </tr>
</thead>
<thead>
    <tr>
        <th>C Sharp</th><th>VB</th>
    </tr>
</thead>
HTML

Element zapewnia, że nagłówki tabel powtarzają się na każdej stronie, gdy tabela rozciąga się na wiele stron. Jest to szczególnie przydatne w raportach finansowych, listingach danych i każdym dokumencie, gdzie kontekst na każdej stronie jest potrzebny. Do początkowej konfiguracji i zarysu instalacji, IronPDF automatycznie obsługuje te standardy HTML.

Dlaczego opakowanie tabel w DIVy ma znaczenie?

Opakowanie tabel w elementy div z kontrolą przerw stron przynosi kilka korzyści:

  • Zapewnia, że cała tabela przenosi się jako całość na następną stronę, jeśli jest to konieczne
  • Zapobiega oddzielaniu nagłówków od wierszy danych
  • Pozwala na dodatkowe style i kontrolę odstępów
  • Ułatwia dodawanie podpisów lub opisów, które pozostają z tabelą

Jakie zaawansowane ustawienia CSS3 kontrolują zalamania stron?

Aby uzyskać większą kontrolę, użyj CSS3 oprócz swojej grupy thead:

<style type="text/css">
    table { page-break-inside:auto }
    tr { page-break-inside:avoid; page-break-after:auto }
    thead { display:table-header-group }
    tfoot { display:table-footer-group }
</style>
<style type="text/css">
    table { page-break-inside:auto }
    tr { page-break-inside:avoid; page-break-after:auto }
    thead { display:table-header-group }
    tfoot { display:table-footer-group }
</style>
HTML

Jakie właściwości CSS działają najlepiej dla złożonych układów?

Dla złożonych układów, połącz wiele właściwości CSS:

  • page-break-inside - Zapobiega dzieleniu się elementów
  • page-break-after - Wymusza przerwę po elemencie
  • page-break-before - Wymusza przerwę przed elementem
  • orphans i widows - Kontroluje minimalne linie na przerwach stron
  • break-inside, break-after, break-before - Nowoczesne alternatywy CSS3

Te właściwości współdziałają tworząc profesjonalnie wyglądające PDFy z odpowiednim przepływem i czytelnością.

Jak rozwiązywać problemy z zalamaniami stron?

Gdy zalamania stron nie działają zgodnie z oczekiwaniami:

  1. Zweryfikuj, czy struktura HTML jest prawidłowa
  2. Sprawdź, czy style są zastosowane do elementów blokowych
  3. Testuj najpierw proste przykłady, a potem dodawaj złożoność
  4. Użyj narzędzi deweloperskich przeglądarki do inspekcji obliczonych stylów
  5. Rozważ użycie opcji renderowania IronPDF dla dodatkowej kontroli

Pamiętaj, że różne renderery PDF mogą różnie obsługiwać zalamania stron, dlatego testowanie z twoim konkretnym przypadkiem użycia jest ważne dla osiągnięcia spójnych wyników we wszystkich scenariuszach.

Często Zadawane Pytania

Jak dodac przerwe strony przy konwersji HTML na PDF w C#?

Aby dodać podział strony przy użyciu IronPDF, wstaw <div style="page-break-after: always;"></div> w swoim kodzie HTML w miejscu, gdzie ma nastąpić podział. ChromePdfRenderer IronPDF rozpozna tę właściwość CSS i utworzy nową stronę w tym miejscu w dokumencie PDF.

Jaka wlasciwosc CSS jest najbardziej niezawodna do kontrolowania przerw stron w konwersji PDF?

Właściwość CSS page-break-after: always; jest najbardziej niezawodną metodą podczas korzystania z IronPDF. Dostarcza ona spójnych wyników w różnych silnikach renderujących i zapewnia przewidywalne paginowanie w Twoich konwertowanych dokumentach PDF.

Jak moge uniknac przerw stron wewnatrz tabeli lub obrazow?

Aby zapobiec niepożądanym podziałom stron w tabelach lub obrazach, użyj właściwości CSS page-break-inside: avoid;. Podczas konwertowania HTML na PDF z użyciem IronPDF ten styl zapewnia, że Twoje tabele i obrazy pozostaną nienaruszone na jednej stronie, zamiast być podzielone na kilka stron.

Ktore elementy HTML najlepiej wspolpracuja ze stylami przerwy stron?

Podziały stron działają najbardziej efektywnie z elementami blokowymi, takimi jak <div>, <table> oraz <section>. IronPDF zaleca opakowanie treści w dedykowanym elemencie

z stylem dzielenia stron dla najbardziej niezawodnych wyników podczas konwertowania HTML na PDF.

Czy moge kontrolowac przerwy stron na poziomie CSS zamiast inline style?

Tak, mozesz ustawic style przerwy stron na poziomie CSS zamiast uzywac inline style. Silnik renderowania IronPDF w pelni obsługuje arkusze stylow CSS, pozwalajac ci zdefiniowac reguly przerwy stron w swoim pliku CSS i utrzymywac czystszy, latwiejszy do utrzymania kod HTML.

Dlaczego powinienem uzywac page-break-after zamiast page-break-before?

Właściwość page-break-after dostarcza bardziej spójne wyniki w różnych silnikach renderujących w porównaniu do page-break-before. Podczas używania IronPDF do tworzenia plików PDF o skomplikowanych układach, page-break-after zapewnia bardziej przewidywalne i niezawodne zachowanie paginacji.

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 19,936,792 | Wersja: 2026.7 właśnie wydany
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.