如何在 C# 中產生灰階 PDF 檔案

如何在 C# 中產生灰階 PDF

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

IronPDF 允許您透過在 RenderingOptions 中將 GrayScale 屬性設定為 true,將 PDF 渲染為灰階,將彩色內容轉換為不同深淺的灰色,以實現經濟實惠的 PRINT 並提升可讀性。

快速入門:使用 IronPDF 將彩色 PDF 轉換為灰階

只需幾行程式碼,即可使用 IronPDF 將彩色 PDF 轉換為灰階。 在 RenderingOptions 中設定 GrayScale 屬性,即可將網頁或 HTML 內容渲染為灰階 PDF 檔案。 本指南將向您展示如何生成灰階文件,以確保顯示效果的一致性。

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 請複製並執行此程式碼片段。

    var renderer = new IronPdf.ChromePdfRenderer();
    renderer.RenderingOptions.GrayScale = true;
    var pdf = renderer.RenderUrlAsPdf("https://example.com");
    pdf.SaveAs("grayscale.pdf");
  3. 部署至您的生產環境進行測試

    立即透過免費試用,在您的專案中開始使用 IronPDF

    arrow pointer


如何產生灰階 PDF?

若要產生灰階 PDF,請將 GrayScaleRenderingOptions 屬性設定為 true。 此功能是 IronPDF 全面渲染選項的一部分,讓您能精細控制 PDF 輸出效果。

在提供的程式碼片段中,啟用 ChromePdfRenderer 實例化後,即會啟用灰階功能。 接著,它會使用 RenderUrlAsPdf 方法渲染網頁。 該程式碼僅會擷取渲染後 PDF 的第一頁,並將其儲存至本地端。 如果您是 IronPDF 的新手,請參閱我們的《快速入門指南》,以掌握基礎操作。

為何將 GrayScale 設為 True 會轉換顏色?

灰階 PDF 是一種將所有顏色與色調皆以灰色階調呈現,而非使用全色譜的文件。 當您啟用 GrayScale 選項時,IronPDF 的 Chrome 渲染引擎會使用業界標準的亮度計算方法,自動將所有 RGB 色彩值轉換為對應的灰階等效值。 這可確保在移除所有色彩資訊的同時,仍能保留原始文件的視覺層級與對比度。

何時該使用灰階 PDF?

IronPDF 會將 PDF 文件以灰階而非彩色呈現。 以灰階模式列印 PDF 文件,對於大量批次列印而言相當經濟實惠。 當原始色彩過於明亮或鮮豔時,採用灰階呈現可提升可讀性。 灰階 PDF 檔案在各類裝置、軟體及平台間的相容性已大幅提升,確保瀏覽與列印體驗的一致性。

灰階 PDF 的常見應用情境包括:

  • 商業報告:財務文件採用灰階呈現時,通常看起來更顯專業
  • 法律文件:法院文件及法律簡報通常需要灰階格式
  • 學術論文:研究論文與學位論文通常以灰階列印
  • 大量列印:列印數百頁時,使用灰階可降低成本
  • 歸檔文件:非常適合長期儲存,並符合 PDF/A 標準

文字轉換為灰階時會發生什麼變化?

目前"灰階"功能的實作會將渲染後 PDF 文件中的文字轉換為圖像,導致 ExtractAllImages 方法無法輸出任何文字。

目前,此功能僅在渲染 PDF 時可用。 未來的更新可能包含將現有 PDF 文件轉換為灰階的功能。 如需更多關於文字擷取的相關資訊,請參閱我們的《擷取文字與圖片》指南。

:path=/static-assets/pdf/content-code-examples/how-to/color-grayscale-grayscale.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Set GrayScale to true
renderer.RenderingOptions.GrayScale = true;

PdfDocument pdf = renderer.RenderUrlAsPdf("https://ironsoftware.com/");
pdf.CopyPage(0).SaveAs("test.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Set GrayScale to true
renderer.RenderingOptions.GrayScale = True

Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://ironsoftware.com/")
pdf.CopyPage(0).SaveAs("test.pdf")
$vbLabelText   $csharpLabel

進階灰階 PDF 生成範例

將 HTML 檔案轉換為灰階 PDF

處理本地 HTML 檔案時,您可以將其轉換為灰階 PDF 檔案。 當您擁有預先設計的範本或報告,且需要以無色彩方式呈現時,此功能便十分實用。 進一步了解如何將 HTML 檔案轉換為 PDF

using IronPdf;

// Create a renderer with grayscale enabled
var renderer = new ChromePdfRenderer()
{
    RenderingOptions = new ChromePdfRenderOptions()
    {
        GrayScale = true,
        MarginTop = 50,
        MarginBottom = 50,
        MarginLeft = 20,
        MarginRight = 20
    }
};

// Render an HTML file to grayscale PDF
var pdf = renderer.RenderHtmlFileAsPdf(@"C:\Reports\MonthlyReport.html");
pdf.SaveAs(@"C:\Reports\MonthlyReport_Grayscale.pdf");
using IronPdf;

// Create a renderer with grayscale enabled
var renderer = new ChromePdfRenderer()
{
    RenderingOptions = new ChromePdfRenderOptions()
    {
        GrayScale = true,
        MarginTop = 50,
        MarginBottom = 50,
        MarginLeft = 20,
        MarginRight = 20
    }
};

// Render an HTML file to grayscale PDF
var pdf = renderer.RenderHtmlFileAsPdf(@"C:\Reports\MonthlyReport.html");
pdf.SaveAs(@"C:\Reports\MonthlyReport_Grayscale.pdf");
Imports IronPdf

' Create a renderer with grayscale enabled
Dim renderer = New ChromePdfRenderer() With {
    .RenderingOptions = New ChromePdfRenderOptions() With {
        .GrayScale = True,
        .MarginTop = 50,
        .MarginBottom = 50,
        .MarginLeft = 20,
        .MarginRight = 20
    }
}

' Render an HTML file to grayscale PDF
Dim pdf = renderer.RenderHtmlFileAsPdf("C:\Reports\MonthlyReport.html")
pdf.SaveAs("C:\Reports\MonthlyReport_Grayscale.pdf")
$vbLabelText   $csharpLabel

從 HTML 字串建立灰階 PDF

針對動態內容生成,請將 HTML 字串直接轉換為灰階 PDF 檔案。 此方法非常適合用於生成發票、收據,或任何透過程式碼生成內容的文件。 如需更多詳細資訊,請參閱我們的 HTML 字串轉 PDF 指南。

using IronPdf;

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.GrayScale = true;

// HTML content with inline CSS
string htmlContent = @"
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; }
            .header { background-color: #4CAF50; color: white; padding: 20px; }
            .content { padding: 20px; }
            .highlight { background-color: #ffeb3b; padding: 5px; }
        </style>
    </head>
    <body>
        <div class='header'>
            <h1>Invoice #12345</h1>
        </div>
        <div class='content'>
            <p>This colorful invoice will be rendered in grayscale.</p>
            <p class='highlight'>Highlighted sections maintain contrast in grayscale.</p>
        </div>
    </body>
    </html>";

var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("invoice_grayscale.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.GrayScale = true;

// HTML content with inline CSS
string htmlContent = @"
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; }
            .header { background-color: #4CAF50; color: white; padding: 20px; }
            .content { padding: 20px; }
            .highlight { background-color: #ffeb3b; padding: 5px; }
        </style>
    </head>
    <body>
        <div class='header'>
            <h1>Invoice #12345</h1>
        </div>
        <div class='content'>
            <p>This colorful invoice will be rendered in grayscale.</p>
            <p class='highlight'>Highlighted sections maintain contrast in grayscale.</p>
        </div>
    </body>
    </html>";

var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("invoice_grayscale.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.GrayScale = True

' HTML content with inline CSS
Dim htmlContent As String = "
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; }
            .header { background-color: #4CAF50; color: white; padding: 20px; }
            .content { padding: 20px; }
            .highlight { background-color: #ffeb3b; padding: 5px; }
        </style>
    </head>
    <body>
        <div class='header'>
            <h1>Invoice #12345</h1>
        </div>
        <div class='content'>
            <p>This colorful invoice will be rendered in grayscale.</p>
            <p class='highlight'>Highlighted sections maintain contrast in grayscale.</p>
        </div>
    </body>
    </html>"

Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("invoice_grayscale.pdf")
$vbLabelText   $csharpLabel

效能考量

在產生灰階 PDF 時,請考量以下效能因素:

  1. 檔案大小:灰階 PDF 檔案比彩色版本更小,非常適合用作電子郵件附件或網頁下載
  2. 渲染速度:灰階轉換對渲染時間造成的額外負擔極小
  3. 記憶體使用量:灰階渲染比全彩渲染佔用更少的記憶體,對於大型文件特別有利

若需在生成多個灰階 PDF 時獲得更佳效能,請採用非同步與多執行緒技術

與其他 IronPDF 功能的整合

結合灰階 PDF 與其他 IronPDF 功能,實現全面的文件處理:

  • 頁首與頁尾:請參閱我們的頁首與頁尾指南,為您的灰階文件添加 Professional 頁首與頁尾
  • 頁碼:請參閱我們的頁碼教學指南,在您的灰階 PDF 中加入頁碼
  • 水印:為灰階 PDF 檔案套用水印,以達成品牌識別或安全防護目的
  • PDF 壓縮:透過結合灰階渲染與 PDF 壓縮,進一步縮小檔案大小

生成灰階 PDF 的最佳實踐

  1. 測試色彩對比度:轉換前請確保各元素之間具有足夠的對比度
  2. 使用語義化 HTML:結構良好的 HTML 可產生更佳的灰階轉換效果
  3. 考量無障礙性:灰階 PDF 可提升部分視力障礙者的閱讀體驗
  4. 正式產出前預覽:在生成大量批次前,務必先預覽灰階輸出

常見問題排除

若您在生成灰階 PDF 時遇到問題:

  1. 文字顯示模糊:請在渲染選項中使用適當的 DPI 設定
  2. 圖片色澤淡薄:轉換前請調整原始圖片的對比度
  3. 效能問題:針對頻繁產生的灰階 PDF 實作快取機制

如需詳細的疑難排解資訊,請參閱我們的完整疑難排解指南

準備好探索更多可能性了嗎? 請點此查看我們的教學頁面:PDF 轉換

常見問題

如何在 C# 中將彩色 PDF 轉換為灰階?

若要使用 IronPDF 將彩色 PDF 轉換為灰階,請建立 ChromePdfRenderer 物件,並將 RenderingOptions 中的 GrayScale 屬性設為 true。接著使用 RenderUrlAsPdf、RenderHtmlAsPdf 或 RenderHtmlFileAsPdf 等方法來產生您的灰階 PDF 文件。

RenderingOptions 中的 GrayScale 屬性有何用途?

IronPDF 的 RenderingOptions 中的 GrayScale 屬性會將 PDF 中的所有顏色轉換為灰階。當設定為 true 時,IronPDF 的 Chrome 渲染引擎會自動計算 RGB 顏色的亮度值,並將其轉換為對應的灰階值,同時保留視覺層級與對比度。

為什麼應該使用灰階 PDF 而不是彩色 PDF?

IronPDF 的灰階渲染功能非常適合經濟實惠的列印需求,特別適用於大量批次作業。當原始色彩過於鮮豔時,灰階 PDF 還能提升可讀性,確保在不同裝置與平台間擁有更好的相容性,並提供一致的檢視體驗。

我能否將特定頁面轉換為灰階,同時保留其他頁面的彩色顯示?

透過 IronPDF,您可以將文件渲染為灰階,然後使用 CopyPage 等方法擷取特定頁面。雖然啟用 GrayScale 屬性時整個文件會以灰階渲染,但您可以結合不同的渲染階段,來建立混合彩色與灰階的文件。

哪些類型的內容可以轉換為灰階 PDF?

IronPDF 可將各種內容類型轉換為灰階 PDF,包括透過 RenderUrlAsPdf 轉換網頁、透過 RenderHtmlAsPdf 轉換 HTML 字串,以及使用 RenderHtmlFileAsPdf 轉換 HTML 檔案。所有內容類型均支援相同的 GrayScale 渲染選項,以確保結果的一致性。

Hairil Hasyimi Bin Omar
軟體工程師
如同所有傑出的工程師,Hairil 是一位熱衷學習的人。他正不斷精進自己在 C#、Python 和 Java 方面的知識,並運用這些知識為 Iron Software 的團隊成員創造價值。Hairil 從馬來西亞馬拉科技大學(Universiti Teknologi MARA)加入 Iron Software 團隊,他在該校取得化學與製程工程學士學位。
準備開始了嗎?
Nuget 下載 19,014,616 | 版本: 2026.5 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎? PM > Install-Package IronPdf
執行範例 觀看您的 HTML 轉為 PDF。