IRONSOFTWAREHOME

如何在Node.js中将PDF转换为图像文件

Curtis Chau
Curtis Chau
Updated: 2026年6月29日

IronPDF for Node.js通过单一方法调用将PDF页面转换为图像。 rasterizeToImageFiles方法从任何PDF中生成PNG、JPG、GIF、BMP和其他格式——无论是单页还是多页——可以直接控制输出分辨率和页面选择。

方法自动检测您提供的文件扩展名中的输出格式,因此在格式之间切换不需要配置更改。 对于无法更改扩展名的环境,显式的ImageType枚举值可覆盖基于扩展的检测。 IronPDF Node.js文档涵盖支持的输入来源的全范围,包括文件路径、字节缓冲区、转换为PDF的HTML字符串,以及栅格化之前的。

快速入门:将PDF转换为PNG
  1. 安装 IronPDF:npm install @ironsoftware/ironpdf
  2. 从包中导入PdfDocument
  3. 使用PdfDocument.fromFile()加载您的PDF
  4. 使用输出路径调用rasterizeToImageFiles()
import { PdfDocument } from "@ironsoftware/ironpdf";

PdfDocument.fromFile("./sample.pdf").then((pdf) => {
    pdf.rasterizeToImageFiles("./output.png");
});
JavaScript

如何安装 IronPDF for Node.js?

> npm i @ironsoftware/ironpdf

从npm安装IronPDF的Node.js包以将PDF转换为PNG、JPG、GIF、BMP和其他图像格式。

在生产中将PDF转换为图像之前,配置您的许可证密钥。 该包还需要在您的系统上安装IronPDF引擎——这个二进制文件处理所有PDF渲染操作,并必须存在以进行转换。

系统要求是什么?

需要Node.js 12或更高。 IronPDF引擎二进制文件首次加载包时会自动下载,但如果您的部署环境限制出站网络访问,您也可以手动安装。 @ironsoftware/ironpdf包可以在npm注册表上获取,并且不包含本地模块编译步骤,这使得CI管道简单明了。

请注意: 在开发过程中不需要许可证密钥。 在未授权模式下会生成带水印的输出。)] 水印将在配置有效密钥后移除。)]

如何将 PDF 转换为图像?

rasterizeToImageFiles方法读取PDF文档并将每页写入一幅图像文件到您提供的输出路径。对于单页PDF,它只生成一个图像。 对于多页PDF,它会自动在每个文件名后追加页码后缀。

下面的示例加载一个来自Learning Container的示例PDF,并将其转换为PNG文件。

PDF查看器显示一个用于PDF到图像转换前的单页Lorem Ipsum示例文档 在查看器中打开的示例PDF文件。 从Learning Container下载此文件和其他测试PDF。

import { PdfDocument } from "@ironsoftware/ironpdf";

// Load the PDF and convert it to a PNG image.
// The output path determines the format — change .png to .jpg for JPEG output.
PdfDocument.fromFile("./sample-pdf-file.pdf").then((pdf) => {
    pdf.rasterizeToImageFiles("./images/sample-pdf-file.png");
    return pdf;
}).catch((error) => {
    console.error("Error converting PDF to image:", error);
});
JavaScript

PdfDocument对象。 rasterizeToImageFiles。 路径中的文件扩展名——此处为.png——告诉IronPDF应生成何种格式。 .catch块处理任何读取或转换错误。

转换后的PNG输出文件展示Lorem Ipsum文档内容被渲染为PNG图像 从上述示例PDF生成的PNG。 IronPDF仅用三行代码转换了文档。

有关此方法选项的更多详细示例,请参见PDF到图片代码示例页面。

如何将PDF转换为JPEG格式?

格式选择是自动的:无论您传递给rasterizeToImageFiles的扩展是什么都会决定输出格式。 要生成JPEG而不是PNG,请更改目标路径中的扩展名:

//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-to-jpeg-extension.js
// Switch to JPEG by changing the file extension in the output path.
pdf.rasterizeToImageFiles("./images/pdf-to-jpeg.jpg");
JavaScript

当不能控制输出文件名时——例如,在具有固定命名方案的自动化管道中——通过向选项对象传递ImageType值来覆盖基于扩展的检测:

import { PdfDocument, ImageType } from "@ironsoftware/ironpdf";

// ImageType.JPG forces JPEG output regardless of the file extension.
const options = {
    type: ImageType.JPG,
    dpi: 300
};
PdfDocument.fromFile("./sample-pdf-file.pdf").then((pdf) => {
    pdf.rasterizeToImageFiles("./images/output.png", options);
    return pdf;
});
JavaScript

选项对象中的type属性优先于文件名扩展。 在以上示例中,即使目标路径以rasterizeToImageFiles仍生成一个JPEG文件。 相同的模式适用于GIF和BMP输出。

DPI设置如何影响输出质量?

选项对象中的dpi属性控制光栅化输出的像素密度。 更高的值生成更大的文件,细节更多; 较低的值减小文件大小,但会损失清晰度。

提示: 设置dpi: 300会生成适合高分辨率打印或存档的打印质量图像。 对于屏幕显示或缩略图生成,dpi: 96在确保适用于网络使用的清晰度的同时减少了文件大小。)]

150 DPI是大多数归档或预览场景的合理默认值 - 输出足够清晰以便在屏幕上阅读,并且文件大小保持在可控范围。 对于将在转换后打印或进行OCR处理的内容,建议使用300 DPI或更高。

如何将多页PDF转换为图片?

对于多于一页的文档,rasterizeToImageFiles为每页创建一个图像。 IronPDF在每个输出文件名后面追加基于零的页索引,使输出无需额外代码即可保持有序。

在查看器中打开的两页PDF文档,显示在图像转换前的两页示例内容 一个两页的示例PDF。 IronPDF在转换过程中为每页创建一个图像文件。

import { PdfDocument } from "@ironsoftware/ironpdf";

// Each page of the PDF becomes a separate image file.
// Output filenames: multipage-pdf-page_1.png, multipage-pdf-page_2.png, etc.
PdfDocument.fromFile("./multipage-pdf.pdf").then((pdf) => {
    pdf.rasterizeToImageFiles("./images/multipage-pdf/multipage-pdf-page.png");
});
JavaScript

由上述两页PDF创建的两个PNG输出文件——multipage-pdf-page_1.png和multipage-pdf-page_2.png 从两页PDF生成的两个PNG文件。 IronPDF使用其页码命名每个输出文件。

此自动页面分割行为适用于所有支持的图像格式。 与下一节中的fromPages选项配对,只转换大型文档中的特定页面。 为了向相反方向操作,请查看图片到PDF示例以了解如何将多个图像文件合并成一个PDF文档。

输出文件名是如何构建的?

文件名模式使用基于一的页码附加在文件扩展名前。 如果输出路径是report-page_3.png。 在调用rasterizeToImageFiles之前,必须存在输出目录——方法不会自动创建缺失的目录。

重要: 在调用rasterizeToImageFiles之前创建输出目录。 如果目标目录不存在,该方法将抛出错误。使用Node.js的fs.mkdirSync('./images/output', { recursive: true })提前创建它。

如何只转换特定页面?

选项对象中的fromPages属性接受从零开始的页面索引数组。 仅提指定的页面被栅格化; 所有其他页面被跳过。 这是处理大型PDF时很有用,只需部分页面时 - 例如,为文档预览提取封面和段落起始页面。 当您需要在转换前处理单个页面时,Node.js API参考中的PdfDocument文档提供了额外的页面级操作。

import { PdfDocument, ImageType } from "@ironsoftware/ironpdf";

// Convert only pages 1, 4, 6, and 9 (zero-indexed: 0, 3, 5, 8) to BMP.
const options = {
    type: ImageType.BMP,
    fromPages: [0, 3, 5, 8],
    dpi: 150
};
PdfDocument.fromFile("./sample-pdf-with-images.pdf").then((pdf) => {
    pdf.rasterizeToImageFiles(
        "./images/multipage-selective-pdf/multipage-pdf-page.bmp",
        options
    );
}).catch((error) => {
    console.error("Failed to convert pages:", error);
});
JavaScript

四个BMP输出文件标记为multipage-pdf-page_1、page_4、page_7和page_9,由一个大PDF生成 IronPDF仅光栅化在fromPages数组中指定的四个页面。 其他页面未处理。

[0, 3, 5, 8]针对第一、第四、第六和第九页。 150的DPI值在输出质量与文件大小之间取得了平衡 - 适合归档或预览用例。 选择性转换适用于所有已支持的图像类型。

请注意: 从Learning Container下载示例PDF与图片用于上例。

零基和一基页码之间有什么区别?

fromPages使用从零开始的索引,符合JavaScript的标准数组约定。 文档的第1页对应于索引1,依此类推。 这与PDF查看器中出现的一基页码不同。 将查看器页面号码转换为fromPages索引时,每个页面数字减去一。

pdf.pageCount()从PdfDocument API读取页数,并将fromPages值。

PDF到图像转换的下一步是什么?

IronPDF的rasterizeToImageFiles方法在一致的API中处理格式选择、多页分割和选择性页面转换。 选项对象是格式覆盖、DPI控制和页面过滤的唯一扩展点。

要更进一步,IronPDF Node.js API参考文档所有可用在PdfDocument类上的参数。 从PDF到图像的代码示例展示了rasterizeToImageFiles与额外的配置一起使用。 为了相反方向的操作,请查看图片到PDF文件转换或多帧TIFF文件到PDF转换。

开始IronPDF for Node.js的免费试用,以在您自己的项目中测试PDF到图像的转换。 查看许可选项以找到适合您团队的计划。

准备看看IronPDF还能做些什么吗? 在此查看完整的Node.js教程:Node.js中的HTML到PDF转换

常见问题解答

如何在 Node.js 中将 PDF 转换为图像?

使用IronPDF的rasterizeToImageFiles方法。通过npm install @ironsoftware/ironpdf安装包,用PdfDocument.fromFile()加载您的PDF,然后用输出路径调用rasterizeToImageFiles()。文件扩展名自动确定输出格式。

rasterizeToImageFiles支持哪些图像格式?

IronPDF支持PNG、JPG、GIF和BMP输出。格式通过输出路径中的文件扩展名检测。如需覆盖此设置,在选项对象中传入ImageType枚举值,例如{ type: ImageType.JPG }强制输出JPEG格式,不论文件名扩展名为何。

如何仅转换PDF的特定页面为图像?

在选项对象中传递fromPages数组。数组接受零基页面索引,因此fromPages: [0, 2, 4]转换第一、三、五页。数组中未列出的页面将被跳过。

要进行PDF到图像转换应该使用什么DPI?

在选项对象中设置dpi属性。对于屏幕显示和缩略图使用dpi: 96,对于归档和预览使用dpi: 150,对于打印质量输出或转换后需要OCR处理的内容使用dpi: 300。

在Node.js中安装IronPDF的要求是什么?

需要Node.js 12或更高版本。通过npm install @ironsoftware/ironpdf安装包。IronPDF引擎二进制文件在首次使用时自动下载并处理所有PDF渲染。对于生产环境,需配置许可证密钥以去除输出水印。

多页PDF的输出文件名结构是怎样的?

IronPDF在文件扩展名之前添加基于一的页码。如果输出路径为report-page.png,则三页PDF将产生report-page_1.png、report-page_2.png和report-page_3.png。在调用该方法之前,输出目录必须存在。

在Node.js中PDF到图像的转换是异步的吗?

是的。PdfDocument.fromFile()和rasterizeToImageFiles()都返回Promise。用.then()链式调用处理成功路径,用.catch()处理转换错误。您也可以使用async/await语法。

What are the system requirements for using IronPDF in a Node.js environment?

You need Node.js version 12 or later, and the IronPDF package will automatically download the IronPDF Engine binary necessary for rendering PDFs upon first run.

Can IronPDF handle converting images to PDF as well?

Yes, IronPDF supports converting images to PDF files. You can learn more from their [image to PDF example](https://ironpdf.com/nodejs/examples/image-to-pdf/), complementing the PDF to image conversion process.

How does IronPDF ensure output filename structure during PDF conversion?

IronPDF appends a one-based page number to the output filenames for multi-page PDFs, maintaining organization. Ensure the output directory exists before calling the `rasterizeToImageFiles` method.

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

准备开始了吗?

版本:2026.6刚刚发布

免费获取

30天试用密钥 即刻获取。

bullet_checked无需信用卡或创建账户
bullet_test在生产环境中测试
且无水印
bullet_calendar30天完全
功能性产品
bullet_support试用期间提供
24/5技术支持
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
Node.js 模块下载用于 PDF
using npm 安装

版本: 2026.6

  1. 下载并安装 Node.js 12+。
  2. 在终端中执行上述命令。

$999 起

Key in blue circle

立即获取免费的 30 天试用版密钥。

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
Node.js 模块下载用于 PDF
using npm 安装

版本: 2026.6

  1. 下载并安装 Node.js 12+。
  2. 在终端中执行上述命令。

$999 起