PDF para PNG com tom vermelho no macOS no IronPDF for Node.js
Ao rasterizar um PDF para PNG no macOS usando IronPDF for Node.js, a imagem de saída tem cores incorretas. Um código QR que aparece preto no PDF de origem é renderizado em vermelho no PNG exportado.
Um erro no mapeamento de canal de cores na linha de rasterização de PDF para imagem no macOS faz com que a saída use uma ordem de canais incorreta, produzindo o tom vermelho.
Solução
Rasterize para JPG em vez de PNG, depois use sharp para converter o JPG em um PNG em tons de cinza. Isso evita o problema de mapeamento de canal de cores do macOS.
Install sharp:
npm install sharp
npm install sharp
Rasterize para JPG, depois converta para 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 o valor de threshold entre 120 e 200 com base no contraste do código QR no seu PDF. Esta etapa de pós-processamento é segura para códigos QR porque eles são binários: células pretas em um fundo branco. Uma conversão em tons de cinza não perde nada para códigos QR.

