在IronPDF for Node.js中於macOS上將PDF轉為紅色色調的PNG

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

當在macOS上使用IronPDF for Node.js將PDF光柵化為PNG時,輸出圖像顏色不正確。 在源PDF中顯示為黑色的QR碼在導出的PNG中顯示為紅色。

macOS的PDF到圖像光柵化管道中的色彩通道映射錯誤導致輸出使用不正確的通道順序,產生紅色色調。

解決方案

光柵化為JPG而不是PNG,然後使用sharp將JPG轉換為灰階PNG。 這繞過了macOS的色彩通道映射問題。

安裝sharp:

npm install sharp
npm install sharp
SHELL

光柵化為JPG,然後轉換為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();

根據您PDF中QR碼的對比度將threshold值調整在120和200之間。 這個後處理步驟對QR碼是安全的,因為它們是二進位的:白色背景上的黑色單元。 灰階轉換對QR碼沒有損失。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備好開始了嗎?
版本: 2026.6 剛剛發布
Still Scrolling Icon

還在滾動嗎?

想要快速的證據嗎?
運行範例觀看您的HTML變為PDF。