IRONSOFTWAREHOME

標題和內容不對齊

Curtis Chau
Curtis Chau
Updated: 2026年6月29日

在將HTML渲染為PDF時,頁首和頁尾可能會貼近頁面邊緣,而正文內容則向內推,更明顯地表現在左右邊距上。 即使設置了UseMarginsOnHeaderAndFooter,也可能發生這種情況。

原因是Chrome的預設樣式。 其渲染引擎會對每個頁面的<body>元素應用8像素的邊距。 這種預設對於正常的網頁內容來說沒問題,但它會在您的內容和PDF邊緣之間留下明顯的8px間隙,不論您傳遞給MarginLeft = 0是什麼。 頁首和頁尾不受影響:當邊距設為0時,它們會如預期般直接對齊頁面邊緣,因此只有正文部分偏離。

以下程式碼段再現了這個不對齊的情況:

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顯示頁首左側對齊但正文內容向內錯位

解決方案

覆蓋Chrome的預設<body>邊距,使內容與頁首和頁尾在整頁寬度上對齊。 應用負邊距來抵消內建的8px偏移:

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

負值中和了Chrome的預設填充,使頁首、正文和頁尾都對齊至同一邊緣。 內嵌應用後,校正的渲染效果如下:

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顯示頁首和正文內容對齊同一左邊緣

除錯提示

  • **建議從乾淨的基礎開始:**與其使用負邊距,不如應用CSS重置或在margin: 0來在源頭移除預設偏移。
  • **行為的範圍:**每當HTML通過無頭Chrome渲染時,包括IronPDF、Puppeteer以及Chrome DevTools Protocol,都會出現8px間隙,因此相同的修正適用於這些工具。
Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

準備開始了嗎?

Nuget Downloads 21,105,021版本:2026.9剛剛發布

立即獲取您的免費30天試用密鑰。
不需要信用卡或建立賬戶
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起

有問題嗎?聯絡我們的開發團隊。

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密。
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起