IRONSOFTWAREHOME

Zmniejsz rozmiar pliku używając nagłówków i stopek obrazów Base64

Curtis Chau
Curtis Chau
Updated: 3 lipca 2026

Dodanie obrazu Base64 do nagłówka lub stopki w dużym wielostronicowym pliku PDF może znacznie zwiększyć rozmiar wyjściowego pliku. Rozwiązanie polega na osadzeniu obrazu raz zamiast na każdej stronie, jednocześnie umożliwiając normalne renderowanie tekstu na stronę, takiego jak {page}.

Nadmierny rozrost rozmiaru występuje ze względu na to, jak renderer obsługuje połączony fragment. Gdy pojedynczy fragment zawiera zarówno obraz, jak i dynamiczną zawartość, taką jak {page}, silnik traktuje cały kod HTML jako dynamiczny i ponownie osadza obraz Base64 na każdej stronie. Podzielenie pracy na dwa etapy utrzymuje obraz statyczny, a warstwę numeracji stron małą.

Rozwiązanie

1. Podziel nagłówek lub stopkę na dwa fragmenty

Podziel zawartość na fragment statyczny i dynamiczny. Umieść obraz i wszelki tekst, który nigdy się nie zmienia, w fragmencie statycznym. Umieść zawartość na stronę, taką jak {page}, w fragmencie dynamicznym. Nadaj obu fragmentom ten sam układ tabeli i szerokości komórek, aby dynamiczny tekst dobrze pasował do warstwy statycznej.

2. Najpierw dodaj fragment statyczny

Wywołaj AddHtmlHeadersAndFooters jedynie z fragmentem statycznym. Obraz Base64 jest renderowany i osadzany tylko raz.

3. Dodaj fragment dynamiczny w drugim przebiegu

Wywołaj AddHtmlHeadersAndFooters ponownie jedynie z fragmentem dynamicznym. Ponieważ ten przebieg nie zawiera obrazu, zawartość na stronę pozostaje mała.

using IronPdf;

var pdf = PdfDocument.FromFile("input.pdf");

// Static layer: holds the Base64 image. The page-number cell is left empty.
string staticFooter = @"
<table style='width:100%; table-layout:fixed;'>
  <tr>
    <td style='width:20%;'>
      <img src='data:image/png;base64,iVBORw0KGg...' style='width:150px;' />
    </td>
    <td style='width:80%; text-align:right;'></td>
  </tr>
</table>";

// Dynamic layer: holds only {page}. Same layout, but no image.
string dynamicFooter = $@"
<table style='width:100%; table-layout:fixed;'>
  <tr>
    <td style='width:20%;'></td>
    <td style='width:80%; text-align:right; font-size:10px;'>Page {{page}} of {pdf.PageCount}</td>
  </tr>
</table>";

// Pass 1: add the static image footer (image embedded once).
pdf.AddHtmlHeadersAndFooters(new ChromePdfRenderOptions
{
    HtmlFooter = new HtmlHeaderFooter { HtmlFragment = staticFooter, MaxHeight = 40 }
});

// Pass 2: add the dynamic page-number footer (no image, stays small).
pdf.AddHtmlHeadersAndFooters(new ChromePdfRenderOptions
{
    HtmlFooter = new HtmlHeaderFooter { HtmlFragment = dynamicFooter, MaxHeight = 40 }
});

pdf.SaveAs("output.pdf");
C#

Oba fragmenty table-layout:fixed mają identyczne szerokości komórek, więc numer strony w drugim przebiegu znajduje się dokładnie tam, gdzie pusta komórka była w pierwszym. Ta sama technika dotyczy nagłówków: trzymaj obraz w statycznym przebiegu i umieść dynamiczny tekst nagłówka w drugim przebiegu.

Warning: Jeśli oba fragmenty nie mają tej samej struktury tabeli i szerokości komórek, dynamiczny tekst, taki jak numer strony, nie będzie się pokrywał z warstwą statyczną.

Opcja: Odwołaj się do zewnętrznego obrazu lub SVG

Jeśli nie potrzebujesz obrazu w formacie Base64, wskazanie <img> na zewnętrzny plik lub użycie SVG może jeszcze bardziej zmniejszyć rozmiar wyjściowy niż ciąg Base64.

Curtis Chau
Technical Writer

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.

...
Read More

Gotowy, aby rozpocząć?

Nuget Downloads 20,389,208Wersja:2026.7właśnie wydany

Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta

Wypróbuj IronPDF za darmo

Gotowy do pracy w 5 minut

DLL PDF dla C#

Pobierz DLL

Pobierz teraz

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”
Biblioteka C# NuGet dla plików PDF

Zainstaluj za pomocą NuGet

                  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
Key in blue circle

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

bullet_checkedNie wymaga karty kredytowej ani tworzenia konta
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge related to IronPDF Product Demo

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