PDF a PNG con Tinte Rojo en macOS en IronPDF for Node.js
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 sharpnpm install sharpRasterizar 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.





