跳過到頁腳內容
PDF工具

如何在Mac和Windows上將網頁保存為PDF文件

下載網頁是離線使用網站內容的便利方式。 以 PDF 格式保存網頁有助於保留頁面的結構,並使其易於與他人共享。

有許多工具可以將網頁保存為 PDF,包括瀏覽器本身,但有時您需要對文件進行更多的控制。 在此指南中,我們將解釋如何使用我們功能豐富的 C# 庫 IronPDF 將網頁轉換為 PDF 格式,並推薦幾種提供基本功能的替代工具。

將網頁保存為 PDF - 入門

在 Visual Studio 中創建您的項目

首先,打開 Visual Studio,然後轉到文件 -> 新建項目 -> 控制台應用程序。 輸入您的項目名稱,選擇您要保存的位置,然後按“下一步”按鈕。 選擇最新的 .NET Framework 然後創建。 一旦你的項目運行,它就可以加載我們的庫了。

安裝 IronPDF 標簽庫

IronPDF 使用簡便,安裝更加容易。 有幾種方法可以安裝:

方法 1:NuGet 套件管理控制台

在 Visual Studio 中,在解決方案資源管理器中右鍵單擊參考,然後單擊管理 NuGet 包。 點擊瀏覽並搜尋 'IronPDF',然後安裝最新版。 如果你看到這個,表示它在運行:

如何在 Mac 和 Windows 上將網頁保存為 PDF 文件:圖 1

您還可以轉到工具 -> NuGet 包管理器 -> 包管理控制台,然後在包管理選項卡中輸入以下行:

Install-Package IronPdf

最後,你可以從 NuGet 的官方網站 直接獲取 IronPDF。 從平台右側的菜單中選擇下載方案選項,雙擊下載以自動安裝,然後重新加載解決方案以在您的項目中開始使用。

沒有效果? 您可以在我們的高級 NuGet 安裝指南上找到平台特定的幫助。

方法 2:使用 DLL 文件

你還可以直接從我們這裡獲取 IronPDF DLL 文件並手動添加到 Visual Studio 中。 有關 Windows、macOS 和 Linux DLL 套件的完整說明和鏈接,請查看我們的IronPDF 安裝指南

添加 IronPDF 命名空間

請務必像這樣使用 IronPDF 命名空間開始編寫代碼:

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

如何使用 IronPDF 將網頁保存為 PDF

在 Visual Studio 打開並添加了 IronPDF 庫後,我們首先實例化 ChromePdfRenderer,它提供定制 URL 捕捉的選項,包括頁面佈局、邊距和 PDF 頁面的方向。 然後,IronPDF 使用 RenderUrlAsPdf 方法將網頁捕捉為 PDF。

這就是它的樣子:

using IronPdf;

// Instantiate the Chrome PDF Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer()
{
    RenderingOptions = new ChromePdfRenderOptions
    {
        CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen, // Set how CSS is rendered
        PrintHtmlBackgrounds = true, // Enable printing background colors and images
        EnableJavaScript = true, // Enable JavaScript execution
        GrayScale = false, // Render in color
        PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait, // Page orientation
        PaperSize = IronPdf.Rendering.PdfPaperSize.A4, // Set paper size
        MarginTop = 0,
        MarginBottom = 0,
        MarginLeft = 0,
        MarginRight = 0,
        UseMarginsOnHeaderAndFooter = IronPdf.UseMargins.None // Control header/footer margins
    }
};

// Use Chrome Default Rendering for sizing content
renderer.RenderingOptions.PaperFit.UseChromeDefaultRendering();

// Convert the webpage to a PDF
var pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/");
using IronPdf;

// Instantiate the Chrome PDF Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer()
{
    RenderingOptions = new ChromePdfRenderOptions
    {
        CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen, // Set how CSS is rendered
        PrintHtmlBackgrounds = true, // Enable printing background colors and images
        EnableJavaScript = true, // Enable JavaScript execution
        GrayScale = false, // Render in color
        PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait, // Page orientation
        PaperSize = IronPdf.Rendering.PdfPaperSize.A4, // Set paper size
        MarginTop = 0,
        MarginBottom = 0,
        MarginLeft = 0,
        MarginRight = 0,
        UseMarginsOnHeaderAndFooter = IronPdf.UseMargins.None // Control header/footer margins
    }
};

// Use Chrome Default Rendering for sizing content
renderer.RenderingOptions.PaperFit.UseChromeDefaultRendering();

// Convert the webpage to a PDF
var pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/");
Imports IronPdf

' Instantiate the Chrome PDF Renderer
Private renderer As New ChromePdfRenderer() With {
	.RenderingOptions = New ChromePdfRenderOptions With {
		.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen,
		.PrintHtmlBackgrounds = True,
		.EnableJavaScript = True,
		.GrayScale = False,
		.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait,
		.PaperSize = IronPdf.Rendering.PdfPaperSize.A4,
		.MarginTop = 0,
		.MarginBottom = 0,
		.MarginLeft = 0,
		.MarginRight = 0,
		.UseMarginsOnHeaderAndFooter = IronPdf.UseMargins.None
	}
}

' Use Chrome Default Rendering for sizing content
renderer.RenderingOptions.PaperFit.UseChromeDefaultRendering()

' Convert the webpage to a PDF
Dim pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/")
$vbLabelText   $csharpLabel

然後,使用 SaveAs 方法,您可以輕鬆地將渲染的 URL 網頁保存為 PDF。

// Save the rendered PDF to a file
pdf.SaveAs("example.pdf");
// Save the rendered PDF to a file
pdf.SaveAs("example.pdf");
' Save the rendered PDF to a file
pdf.SaveAs("example.pdf")
$vbLabelText   $csharpLabel

讓我們看看結果。 這就是 IronPDF 首頁 在 Chrome 中的樣子:

如何在 Mac 和 Windows 上將網頁保存為 PDF 文件:圖 2

這是我們的輸出 PDF 文件。您可以看到,儘管方向從橫向變為縱向,但網站的結構仍然完整且仍然可讀:

如何在 Mac 和 Windows 上將網頁保存為 PDF 文件:圖 3

添加水印、密碼和標題到 PDF 文檔

然而,IronPDF 的功能不僅限於此——使用我們功能齊全的庫,您可以微調和自定義演示。

如何使用 IronPDF 添加水印到 PDF

本節顯示如何使用 ApplyStamp 方法文檔在 PDF 中作為蓋章圖像添加水印。

// Add a watermark using an online image
pdf.ApplyStamp(new ImageStamper("https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg"));
// Add a watermark using an online image
pdf.ApplyStamp(new ImageStamper("https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg"));
' Add a watermark using an online image
pdf.ApplyStamp(New ImageStamper("https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg"))
$vbLabelText   $csharpLabel

如何使用 IronPDF 添加密碼保護到 PDF

向 PDF 添加密碼可以防止未經授權的訪問。 您可以為用戶和管理員設置不同的密碼,以允許自定義訪問。

// Set a password for the PDF
pdf.Password = "EasyPassword";
// Set a password for the PDF
pdf.Password = "EasyPassword";
' Set a password for the PDF
pdf.Password = "EasyPassword"
$vbLabelText   $csharpLabel

如何使用 IronPDF 添加 HTML 標題到 PDF

使用 HtmlHeaderFooter 對象為您的演示添加最後的修飾。

// Add an HTML-based header to the PDF
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
   MaxHeight = 20, // Maximum height in millimeters
   HtmlFragment = "<h1>Headers are easy with IronPDF!</h1>", // Header HTML content
};
// Add an HTML-based header to the PDF
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
   MaxHeight = 20, // Maximum height in millimeters
   HtmlFragment = "<h1>Headers are easy with IronPDF!</h1>", // Header HTML content
};
' Add an HTML-based header to the PDF
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
	.MaxHeight = 20,
	.HtmlFragment = "<h1>Headers are easy with IronPDF!</h1>"
}
$vbLabelText   $csharpLabel

網頁轉 PDF 的替代工具

使用網頁瀏覽器保存頁面就像使用內置打印菜單一樣簡單——您只需在它們的菜單中選擇打印,或按鍵盤上的打印按鈕快捷鍵。 某些在線工具在選擇保存文件時提供 PDF 選項。

然而,這些選項留下了很多遺憾——通常會破壞網頁的結構或完全缺少背景圖形。 此外,當您保存為 PDF 時,沒有像使用 IronPDF 一樣的自定義選項。

Google Chrome

Chrome 是目前全球最受歡迎的網頁瀏覽器,預計擁有 35 億用戶。它擁有許多功能,而將網頁導出為 PDF 是其中之一。

保存頁面為 PDF 時,Chrome 提供了一些基本選項,例如只保存奇數、偶數或多個頁面,更改紙張大小,以及在縱向和橫向之間切換佈局。 然而,它可能難以保留網站的結構,經常完全改變頁面的外觀並使其難以閱讀,如下圖所示:

如何在 Mac 和 Windows 上將網頁保存為 PDF 文件:圖 4

網頁在 Chrome 中的外觀

如何在 Mac 和 Windows 上將網頁保存為 PDF 文件:圖 5

Chrome 將網頁渲染為 PDF 的效果

如何使用 Google Chrome 將網頁轉換為 PDF

  • 點擊右上角的三個點打開 Google Chrome 下拉菜單
  • 點擊打印…以打開彈出屏幕
  • 確認目的地為 '保存為 PDF',然後選擇保存

Microsoft Edge

作為微軟經典的 IE 瀏覽器繼任者,Edge 於 2018 年更新為 Chromium 引擎運行——使其與 Google 的 Chrome 瀏覽器非常相似。 因此,將網頁轉換為 PDF 幾乎是一樣的過程——具有同樣的限制。

如何使用 Microsoft Edge 將網頁保存為 PDF

  • 點擊右上角的三個點打開 Edge 下拉菜單
  • 點擊打印…並選擇 '保存到 PDF' 作為打印機
  • 選擇保存以將網頁導出為 PDF

Mozilla Firefox

Firefox 是一個專注於安全性和用戶隱私的替代瀏覽器。 它的特色是運行在自己的專用引擎而不是 Chromium 上。 然而,在將網頁保存為 PDF 方面,它的工作方式與 Chrome 和 Edge 非常相似。 如同這些瀏覽器,它在一些頁面的佈局上表現不佳,使得內容無法閱讀。

如何使用 Mozilla Firefox 將網頁保存為 PDF

  • 點擊右上角的漢堡菜單按鈕(三條水平線)打開 Firefox 下拉菜單
  • 點擊打印…並在目的地菜單中選擇 '保存到 PDF'
  • 選擇保存以下載您的 PDF

Apple Safari

像 Mozilla 一樣,Apple 使用自己的專用引擎來運行其瀏覽器,其與其他選項相比的些許不同。 在我們的測試中,Safari 生成的 PDF 文件最為準確,但缺乏自定義頁面打印選擇等功能。

如何使用 Apple Safari 將網頁保存為 PDF

  • 打開頁面頂部的文件菜單並點擊導出為 PDF…
  • 選擇文件保存目的地並點擊保存

Soda PDF

Soda PDF 是一款免費的在線工具,可讓您將網頁轉換為 PDF,以及許多其他功能。 在我們的測試中,它比大多數其他瀏覽器更為準確,但未能從網頁加載幾張圖片。

如何使用 Soda PDF 轉換器將 PPT 轉換為 PDF

  • 前往Soda PDF 的在線轉換工具並輸入您所需網頁的 URL
  • 等待工具生成您的 PDF
  • 彈出窗口將出現 - 選擇文件的目的地並點擊保存

結論

網頁瀏覽器和在線工具易於使用並提供一系列的基本編輯功能。 然而,為更強大的網頁轉 PDF 轉換工具,IronPDF 提供無與倫比的靈活性。

而網頁轉 PDF 轉換只是開始 - 擁有 PDF 格式設定,內置安全性和合規性功能等,IronPDF 是您所有 PDF 文檔需求的首選工具。

準備好試用 IronPDF 嗎? 您可以開始使用我們IronPDF 的 30 天免費試用。 它的開發用途完全免費,因此您可以真正看到它的作用。 如果您喜歡您看到的內容,IronPDF 的起價僅為$799的實惠價格。 要獲得更多的節省,請查看Iron Suite 套件,您可以以兩個價格獲得所有九個 Iron Software 工具。 祝您編程愉快!

如何在 Mac 和 Windows 上將網頁保存為 PDF 文件:圖 6

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。