Jak generować pliki PDF w skali szarości w języku C#

Jak wygenerować PDF w skali szarości w C

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

IronPDF umożliwia renderowanie PDF-ów w skali szarości poprzez ustawienie właściwości GrayScale na true w RenderingOptions, przekształcając zawartość kolorową w odcienie szarości dla bardziej ekonomicznego drukowania i poprawionej czytelności.

Szybki start: Konwersja kolorowych PDF-ów na skalę szarości przy użyciu IronPDF

Przekształć kolorowe PDF-y w skalę szarości przy użyciu IronPDF za pomocą kilku linii kodu. Ustaw właściwość GrayScale w RenderingOptions, aby renderować strony internetowe lub zawartość HTML w skalę szarości w formacie PDF. Ten przewodnik pokazuje, jak generować dokumenty w skali szarości dla spójnej wizualizacji.

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf
  2. Skopiuj i uruchom ten fragment kodu.

    var renderer = new IronPdf.ChromePdfRenderer();
    renderer.RenderingOptions.GrayScale = true;
    var pdf = renderer.RenderUrlAsPdf("https://example.com");
    pdf.SaveAs("grayscale.pdf");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer


Jak wygenerować PDF w skali szarości?

Aby wygenerować PDF w skali szarości, ustaw właściwość GrayScale w RenderingOptions na true. Ta funkcja jest częścią kompleksowych opcji renderowania IronPDF, które dają dokładną kontrolę nad wyjściem PDF.

W dostarczonym fragmencie kodu funkcja skali szarości jest włączana po zainicjowaniu ChromePdfRenderer. Następnie renderuje stronę internetową za pomocą metody RenderUrlAsPdf. Kod również wyodrębnia tylko pierwszą stronę zrenderowanego PDF-a i zapisuje ją lokalnie. Jeśli jesteś nowy w IronPDF, zapoznaj się z naszym przewodnikiem szybkiego startu, aby zapoznać się z podstawami.

Dlaczego ustawienie GrayScale na True konwertuje kolory?

PDF w skali szarości to dokument, w którym wszystkie kolory i odcienie są reprezentowane za pomocą odcieni szarości zamiast pełnego spektrum kolorów. Kiedy włączasz opcję skali szarości, silnik renderujący Chrome IronPDF automatycznie konwertuje wszystkie wartości kolorów RGB na ich odpowiedniki w skali szarości za pomocą standardowych obliczeń luminancji. To zapewnia, że hierarchia wizualna i kontrast oryginalnego dokumentu są zachowane przy jednoczesnym usunięciu wszystkich informacji o kolorze.

Kiedy należy używać PDF-ów w skali szarości?

IronPDF renderuje dokumenty PDF w skali szarości zamiast koloru. Drukowanie dokumentów PDF w skali szarości jest bardziej ekonomiczne przy druku dużych partii. Renderowanie w skali szarości poprawia czytelność, gdy oryginalne kolory są nadmiernie jasne lub jaskrawe. PDF-y w skali szarości mają zwiększoną kompatybilność na różnych urządzeniach, oprogramowaniu i platformach, zapewniając spójne wrażenia podczas oglądania i drukowania.

Typowe zastosowania dla PDF-ów w skali szarości obejmują:

  • Raporty biznesowe: Dokumenty finansowe często wyglądają bardziej profesjonalnie w skali szarości
  • Dokumenty prawne: Akta sądowe i pisma procesowe zazwyczaj wymagają formatowania w skali szarości
  • Prace akademickie: Prace badawcze i rozprawy często drukuje się w skali szarości
  • Drukowanie wielko-skalowe: Skala szarości obniża koszty przy drukowaniu setek stron
  • Dokumenty archiwalne: Idealne do długoterminowego przechowywania i zgodności z PDF/A

Co dzieje się z tekstem podczas konwersji na skalę szarości?

Obecna implementacja funkcji skali szarości konwertuje tekst w zrenderowanym dokumencie PDF na obraz, co skutkuje tym, że metoda ExtractAllImages nie generuje żadnego tekstu.

Obecnie ta funkcjonalność jest dostępna tylko podczas renderowania PDF-ów. Przyszłe aktualizacje mogą obejmować możliwość konwersji istniejących dokumentów PDF na skalę szarości. Więcej informacji o pracy z wyodrębnianiem tekstu znajdziesz w naszym przewodniku Wyodrębnianie tekstu i obrazów.

: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

Zaawansowane przykłady generowania PDF-ów w skali szarości

Konwersja plików HTML na PDF-y w skali szarości

Pracując z lokalnymi plikami HTML, można je konwertować na PDF-y w skali szarości. Jest to przydatne, gdy dostępne są wcześniej zaprojektowane szablony lub raporty, które wymagają renderowania bez koloru. Dowiedz się więcej o konwersji plików HTML na 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

Tworzenie PDF-ów w skali szarości z ciągów HTML

Dla dynamicznego generowania treści, konwertuj ciągi HTML bezpośrednio na PDF-y w skali szarości. Podejście to dobrze działa przy generowaniu faktur, rachunków lub dowolnych dokumentów, gdzie treść jest tworzona programowo. Więcej szczegółów można znaleźć w naszym przewodniku o konwersji ciągów HTML na 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

Kwestie związane z wydajnością

Tworząc PDF-y w skali szarości, należy wziąć pod uwagę następujące czynniki wydajności:

  1. Rozmiar pliku: PDF-y w skali szarości są mniejsze niż wersje kolorowe, idealne jako załączniki do e-maili i do pobrań z sieci
  2. Szybkość renderowania: Konwersja na skalę szarości dodaje minimalne obciążenie do czasu renderowania
  3. Użycie pamięci: Renderowanie w skali szarości wykorzystuje mniej pamięci niż renderowanie pełnokolorowe, co jest korzystne dla dużych dokumentów

Dla lepszej wydajności przy generowaniu wielu PDF-ów w skali szarości użyj technik asynchronicznych i wielowątkowych.

Integracja z innymi funkcjami IronPDF

Połącz PDF-y w skali szarości z innymi funkcjami IronPDF dla kompleksowego przetwarzania dokumentów:

  • Nagłówki i stopki: Dodaj profesjonalne nagłówki i stopki do swoich dokumentów w skali szarości, korzystając z naszego przewodnika nagłówki i stopki
  • Numery stron: Dodaj numerację stron w swoich PDF-ach w skali szarości, postępując zgodnie z naszym samouczkiem o numerach stron
  • Znak wodny: Zastosuj znaki wodne do PDF-ów w skali szarości dla branding lub bezpieczeństwa
  • Kompresja PDF: Zmniejsz rozmiar plików jeszcze bardziej, łącząc renderowanie w skali szarości z kompresją PDF

Najlepsze praktyki generowania PDF-ów w skali szarości

  1. Testuj kontrast kolorów: Zapewnij wystarczający kontrast między elementami przed konwersją
  2. Używaj semantycznego HTML: Dobrze zbudowany HTML zapewnia lepsze wyniki konwersji na skalę szarości
  3. Zastanów się nad dostępnością: PDF-y w skali szarości mogą poprawić czytelność dla niektórych zaburzeń wzroku
  4. Podgląd przed produkcją: Zawsze dokonuj podglądu wyjścia w skali szarości przed generowaniem dużych partii

Rozwiązywanie typowych problemów

Jeśli napotkasz problemy z generowaniem PDF-ów w skali szarości:

  1. Tekst wygląda na rozmyty: Użyj odpowiednich ustawień DPI w opcjach renderowania
  2. Obrazy wyglądają na wyprane: Dostosuj kontrast źródłowego obrazu przed konwersją
  3. Problemy z wydajnością: Zastosuj buforowanie dla często generowanych PDF-ów w skali szarości

Aby uzyskać szczegółowe informacje na temat rozwiązywania problemów, odwiedź nasz kompleksowy przewodnik rozwiązywania problemów.

Zapoznaj się z naszą stroną z samouczkami: Konwersja PDF-ów

Często Zadawane Pytania

How do I convert a color PDF to grayscale in C#?

To convert a color PDF to grayscale using IronPDF, instantiate a ChromePdfRenderer object and set the GrayScale property in RenderingOptions to true. Then use methods like RenderUrlAsPdf, RenderHtmlAsPdf, or RenderHtmlFileAsPdf to generate your grayscale PDF document.

What is the purpose of the GrayScale property in RenderingOptions?

The GrayScale property in IronPDF's RenderingOptions converts all colors in your PDF to shades of gray. When set to true, IronPDF's Chrome rendering engine automatically calculates the luminance values of RGB colors and converts them to their grayscale equivalents while preserving visual hierarchy and contrast.

Why should I use grayscale PDFs instead of color PDFs?

IronPDF's grayscale rendering is ideal for cost-effective printing, especially for large batch operations. Grayscale PDFs also enhance readability when original colors are too bright, ensure better compatibility across different devices and platforms, and provide consistent viewing experiences.

Can I convert specific pages to grayscale while keeping others in color?

With IronPDF, you can render documents in grayscale and then extract specific pages using methods like CopyPage. While the entire document is rendered in grayscale when the GrayScale property is enabled, you can combine different rendering passes to create mixed color and grayscale documents.

What types of content can be converted to grayscale PDFs?

IronPDF can convert various content types to grayscale PDFs including web pages via RenderUrlAsPdf, HTML strings through RenderHtmlAsPdf, and HTML files using RenderHtmlFileAsPdf. All content types support the same GrayScale rendering option for consistent results.

Hairil Hasyimi Bin Omar
Inżynier oprogramowania
Jak wszyscy wielcy inżynierowie, Hairil jest zapalonym uczniem. Doskonali swoją wiedzę na temat C#, Pythona i Javy, wykorzystując tę wiedzę, aby dodawać wartości członkom zespołu Iron Software. Hairil dołączył do zespołu Iron Software z Universiti Teknologi MARA w Malezji, gdzie uzyskał tytuł licencjata ...
Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,135,201 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.