PDF zu PNG Rot-Tönung auf macOS in IronPDF for Node.js
Beim Rasterisieren eines PDFs zu PNG auf macOS mit IronPDF for Node.js weist das Ausgabebild falsche Farben auf. Ein QR-Code, der im Quell-PDF schwarz erscheint, wird im exportierten PNG rot dargestellt.
Ein Fehler in der Zuordnung der Farbkanäle im PDF-zu-Bild-Rasterisierungspipeline auf macOS verursacht, dass die Ausgabe eine falsche Kanalreihenfolge verwendet, was zu der Rot-Tönung führt.
Lösung
Rasterisieren Sie zu JPG statt zu PNG und verwenden Sie dann sharp, um das JPG in ein Graustufen-PNG zu konvertieren. Dies umgeht das macOS-Problem mit der Farbkanal-Zuordnung.
Sharp installieren:
npm install sharp
npm install sharp
Rasterisieren Sie zu JPG und konvertieren Sie dann zu 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();
Passen Sie den threshold Wert zwischen 120 und 200 basierend auf dem QR-Code-Kontrast in Ihrem PDF an. Dieser Nachbearbeitungsschritt ist sicher für QR-Codes, weil sie binär sind: Schwarze Zellen auf einem weißen Hintergrund. Eine Graustufenumwandlung verliert nichts für QR-Codes.

