PDF a PNG con Tinte Rojo en macOS en IronPDF for Node.js

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

Al rasterizar un PDF a PNG en macOS usando IronPDF for Node.js, la imagen de salida tiene colores incorrectos. Un código QR que aparece negro en el PDF fuente se renderiza en rojo en el PNG exportado.

Un error de mapeo de canal de color en la canalización de rasterización de PDF a imagen de macOS hace que la salida use un orden de canales incorrecto, produciendo el tinte rojo.

Solución

Rasteriza a JPG en lugar de PNG, luego usa sharp para convertir el JPG a un PNG en escala de grises. Esto evita el problema de mapeo de canales de color en macOS.

Install sharp:

npm install sharp
npm install sharp
SHELL

Rasterizar a JPG, luego convertir a 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();

Ajuste el valor threshold entre 120 y 200 según el contraste del código QR en su PDF. Este paso de post-procesamiento es seguro para códigos QR porque son binarios: celdas negras sobre un fondo blanco. Una conversión a escala de grises no pierde nada para los códigos QR.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Versión: 2026.6 recién publicada
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida?
ejecutar una muestra Mira cómo tu HTML se convierte en PDF.