Conversion PDF en PNG avec teinte rouge sur macOS dans IronPDF for Node.js

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

Lors de la rasterisation d'un PDF en PNG sur macOS en utilisant IronPDF for Node.js, l'image de sortie a des couleurs incorrectes. Un code QR qui apparaît noir dans le PDF source rend rouge dans le PNG exporté.

Une erreur de mappage des canaux de couleur dans le pipeline de rasterisation PDF-vers-image sur macOS provoque l'utilisation d'un ordre de canaux incorrect, produisant la teinte rouge.

Solution

Rasterisez en JPG au lieu de PNG, puis utilisez sharp pour convertir le JPG en PNG en niveaux de gris. Cela évite le problème de mappage des canaux de couleur sur macOS.

Install sharp:

npm install sharp
npm install sharp
SHELL

Rasteriser en JPG, puis convertir en 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();

Ajustez la valeur threshold entre 120 et 200 en fonction du contraste du code QR dans votre PDF. Cette étape de post-traitement est sans risque pour les codes QR car ils sont binaires : cellules noires sur fond blanc. Une conversion en niveaux de gris ne perd rien pour les codes QR.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Version : 2026.6 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ?
exécuter un échantillon Regardez votre code HTML se transformer en PDF.