IRONSOFTWAREHOME

Niepowiązanie nagłówka i treści

Curtis Chau
Curtis Chau
Updated: 29 czerwca 2026

Podczas renderowania HTML na PDF, nagłówek i stopka mogą być dopasowane do krawędzi strony, podczas gdy zawartość ciała jest przesunięta do środka, najbardziej widocznie wzdłuż marginesów lewej i prawej. Dzieje się tak, nawet gdy MarginLeft = 0 jest ustawiony i UseMarginsOnHeaderAndFooter włączony.

Przyczyną jest domyślne stylizowanie Chrome'a. Jego silnik renderujący stosuje 8-pikselowy margines do elementu <body> każdej strony. Ta wartość domyślna jest odpowiednia dla normalnej zawartości internetowej, ale pozostawia widoczną 8px przerwę między zawartością a krawędzią PDF, niezależnie od MarginLeft = 0, który przekazujesz do ChromePdfRenderer.RenderingOptions. Nagłówek i stopka nie są dotknięte: przy marginesach ustawionych na 0 wyrównują się bezpośrednio do krawędzi strony zgodnie z oczekiwaniami, więc tylko korpus jest nie na miejscu.

Ten fragment reprodukuje niezgodność:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<h1>This is header</h1>"
};
renderer.RenderingOptions.MarginLeft = 0;
renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.Left;
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
C#

PDF pokazujący, że nagłówek jest wyrównany do lewej, ale zawartość ciała jest przesunięta do środka

Rozwiązanie

Zastąp domyślny margines <body> Chrome, aby zawartość wyrównała się z nagłówkiem i stopką na całej szerokości strony. Zastosuj ujemne marginesy, aby anulować wbudowany 8-pikselowy przesunięcie:

body {
margin-left: -8px;
margin-right: -8px;
}
Text

Ujemne wartości neutralizują domyślne dopełnienia Chrome, dzięki czemu nagłówek, ciało i stopka wszystkie są wyrównane do tej samej krawędzi. Zastosowane inline, poprawione renderowanie wygląda tak:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<h1>This is header</h1>"
};
renderer.RenderingOptions.MarginLeft = 0;
renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.Left;
var pdf = renderer.RenderHtmlAsPdf("<h1 style=\"margin-left: -8;\">Hello World</h1>");  //adjust margin left to -8 px to cancel out default Chrome margin
C#

PDF pokazujący, że nagłówek i zawartość ciała są wyrównane do tej samej lewej krawędzi po naprawie

Wskazówki dotyczące debugowania

  • Preferuj czysty start: zamiast negatywnych marginesów, zastosuj reset CSS lub ustaw margin: 0 jawnie na elemencie <body>, aby usunąć domyślną przesunięcie u źródła.
  • Zakres zachowania: przerwa 8 pikseli pojawia się, gdy HTML jest renderowany przez headless Chrome, w tym IronPDF, Puppeteer, oraz Chrome DevTools Protocol, więc to samo rozwiązanie ma zastosowanie w tych narzędziach.
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ęczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 21,105,021Wersja:2026.9właśnie wydany

Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz opcję Przeglądaj i wyszukaj „IronPdf”
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.9

lub pobierz instalator Windows tutaj.

  1. Pobierz i rozpakuj IronPDF do lokalizacji takiej jak ~/Libs w katalogu Solution
  2. W Eksploratorze rozwiązań programu Visual Studio kliknij prawym przyciskiem myszy opcję Odwołania. Wybierz opcję Przeglądaj, „IronPdf.dll”

Licencje od 749 USD

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

OR
bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz opcję Przeglądaj i wyszukaj „IronPdf”
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.9

lub pobierz instalator Windows tutaj.

  1. Pobierz i rozpakuj IronPDF do lokalizacji takiej jak ~/Libs w katalogu Solution
  2. W Eksploratorze rozwiązań programu Visual Studio kliknij prawym przyciskiem myszy opcję Odwołania. Wybierz opcję Przeglądaj, „IronPdf.dll”

Licencje od 749 USD