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

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

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

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()
:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/quickstart.js

如何安装 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。

:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-to-png.js

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");

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

:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-to-jpeg-imagetype.js

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

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

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

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

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

Icon Quote related to DPI设置如何影响输出质量?

我最喜欢的这种库是 IronPDF。它允许快速高效地操作 PDF 文件。它还具有许多有价值的功能,比如导出为 PDF/A 格式和数字签名 PDF 文档。

Milan Jovanovic related to DPI设置如何影响输出质量?

Milan Jovanovic

微软MVP

查看案例研究
Icon Quote related to DPI设置如何影响输出质量?

IronOCR 意味着我们每年可以节省 $40,000 的人工处理成本,同时提高生产力,并释放资源用于高影响任务。我强烈推荐它。

Brent Matzelle related to DPI设置如何影响输出质量?

Brent Matzelle

首席技术官,OPYN

查看案例研究
Icon Quote related to DPI设置如何影响输出质量?

Iron Suite 在我们的运营中起着至关重要的作用。这些工具提高了业务各方面的效率,包括创建平面图和改善库存管理。

David Jones related to DPI设置如何影响输出质量?

David Jones

首席软件工程师,Agorus Build

查看案例研究

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

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

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

:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-multipage.js

由上述两页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文档提供了额外的页面级操作。

:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-selective-pages.js

四个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.pngreport-page_2.pngreport-page_3.png。在调用该方法之前,输出目录必须存在。

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

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

Darrius Serrant
全栈软件工程师(WebOps)

Darrius Serrant 拥有迈阿密大学的计算机科学学士学位,目前在 Iron Software 担任全栈 WebOps 市场工程师。从小就被编码吸引,他认为计算机既神秘又易于接触,使其成为创意和问题解决的理想媒介。

在 Iron Software,Darrius 喜欢创造新事物,并简化复杂概念以使其更易理解。作为我们常驻的开发者之一,他还自愿教授学生,与下一代分享他的专业知识。

对于 Darrius 来说,他的工作令人满意,因为它被重视并产生真正的影响。

准备开始了吗?
版本: 2026.6 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据?
运行示例看着你的HTML代码变成PDF文件。