PDF to PNG z czerwonym odcieniem na macOS w IronPDF for Node.js

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

Podczas rastrowania PDF do PNG na macOS przy użyciu IronPDF for Node.js, obraz wynikowy ma nieprawidłowe kolory. Kod QR, który w źródłowym PDF jest czarny, w wyeksportowanym PNG wyświetla się na czerwono.

Błąd mapowania kanałów kolorów w procesie rastrowania PDF do obrazu na macOS powoduje użycie nieprawidłowej kolejności kanałów, co skutkuje czerwonym odcieniem.

Rozwiązanie

Zamiast do PNG, rastrować do JPG, a następnie użyć sharp, aby przekonwertować JPG na szary PNG. To omija problem mapowania kanałów kolorów na macOS.

Install sharp:

npm install sharp
npm install sharp
SHELL

Rastrowanie do JPG, następnie konwersja do PNG:

import { PdfDocument, ImageType } from "@ironsoftware/ironpdf";
import sharp from "sharp";

const pdf = await PdfDocument.fromFile("input.pdf");

const [jpgPage] = await pdf.rasterizeToImageBuffers({
    fromPages: 0,
    imageType: ImageType.JPG,
});

const pngBuffer = await sharp(jpgPage)
    .flatten({ background: "#ffffff" })
    .grayscale()
    .threshold(160)
    .png()
    .toBuffer();

Dostosuj wartość threshold między 120 a 200 w oparciu o kontrast kodu QR w Twoim PDF. Ten krok post-processingu jest bezpieczny dla kodów QR, ponieważ są one binarne: czarne komórki na białym tle. Konwersja na skalę szarości nie powoduje utraty niczego dla kodów QR.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Wersja: 2026.6 właśnie wydany
Still Scrolling Icon

Wciąż przewijasz?

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