Cómo convertir un PDF a un archivo de imagen en Node.js

Cómo convertir un PDF a un archivo de imagen en Node.js

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

IronPDF for Node.js convierte páginas de PDF en imágenes con una sola llamada de método. El método rasterizeToImageFiles produce formatos PNG, JPG, GIF, BMP y otros a partir de cualquier PDF -- de una sola página o de múltiples páginas -- con control directo sobre la resolución de salida y la selección de páginas.

El método detecta automáticamente el formato de salida a partir de la extensión del archivo que proporcione, por lo que cambiar entre formatos no requiere cambios de configuración. Para entornos donde la extensión no se puede cambiar, un valor enum explícito ImageType anula la detección basada en la extensión. La documentación de IronPDF for Node.js cubre todo el rango de fuentes de entrada admitidas, incluyendo rutas de archivos, buffers de bytes y cadenas HTML convertidas a PDF antes de la rasterización.

Inicio rápido: Convertir PDF a PNG

  1. Instale IronPDF: npm install @ironsoftware/ironpdf
  2. Importe PdfDocument del paquete
  3. Cargue su PDF con PdfDocument.fromFile()
  4. Llame a rasterizeToImageFiles() con la ruta de salida
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/quickstart.js
import { PdfDocument } from "@ironsoftware/ironpdf";

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

¿Cómo instalo IronPDF for Node.js?

npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
SHELL

Instale el paquete de Node.js de IronPDF desde npm para convertir PDFs en formatos de imagen PNG, JPG, GIF, BMP y otros.

Antes de convertir PDFs a imágenes en producción, configure su clave de licencia. El paquete también requiere que se instale IronPDF Engine en su sistema; este binario maneja todas las operaciones de representación de PDF y debe estar presente para que la conversión funcione.

¿Cuáles son los requisitos del sistema?

Se requiere Node.js 12 o posterior. El binario de IronPDF Engine se descarga automáticamente la primera vez que se carga el paquete, pero también puede instalarlo manualmente si su entorno de despliegue restringe el acceso a la red externa. El paquete @ironsoftware/ironpdf está disponible en el registro de npm y no requiere un paso de compilación de módulo nativo, lo que mantiene las canalizaciones de CI sencillas.

Por favor notaNo se requiere una clave de licencia durante el desarrollo. Se produce una salida con marcas de agua en modo sin licencia. Las marcas de agua se eliminan una vez que se configura una clave válida.

¿Cómo convierto un PDF en una imagen?

El método rasterizeToImageFiles lee un documento PDF y escribe un archivo de imagen por página en la ruta de salida que usted proporciona. Para los PDFs de una sola página, produce exactamente una imagen. Para PDFs de múltiples páginas, agrega un sufijo de número de página a cada nombre de archivo automáticamente.

El siguiente ejemplo carga un PDF de muestra de Learning Container y lo convierte en un archivo PNG.

Visor de PDF mostrando un documento de muestra de una página de Lorem Ipsum utilizado como entrada antes de la conversión de PDF a imagen El archivo PDF de muestra abierto en un visor. Descargue este archivo y otros PDFs de prueba desde Learning Container.

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

PdfDocument.fromFile carga el PDF y devuelve una Promesa que resuelve a un objeto PdfDocument. El callback .then recibe el documento resuelto y llama a rasterizeToImageFiles con la ruta de destino. La extensión del archivo en la ruta — .png aquí — indica a IronPDF qué formato producir. El bloque .catch maneja cualquier error de lectura o conversión.

Archivo de salida PNG convertido mostrando el contenido del documento Lorem Ipsum renderizado como una imagen PNG El PNG generado a partir del PDF de muestra anterior. IronPDF convierte el documento en tres líneas de código.

Para ejemplos más detallados de las opciones de este método, consulte la página de ejemplo de código de PDF a Imágenes.

¿Cómo convierto un PDF en formato JPEG?

La selección de formato es automática: cualquier extensión que pase a rasterizeToImageFiles determina el formato de salida. Para producir un JPEG en lugar de un PNG, cambie la extensión en la ruta de destino:

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

Cuando no se puede controlar el nombre del archivo de salida — por ejemplo, en canalizaciones automatizadas con esquemas de nombres fijos — pase un valor ImageType en el objeto de opciones para anular la detección basada en la extensión:

//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-to-jpeg-imagetype.js
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;
});

La propiedad type en el objeto de opciones tiene prioridad sobre la extensión del nombre del archivo. En el ejemplo anterior, rasterizeToImageFiles produce un archivo JPEG aunque la ruta de destino termine con .png. El mismo patrón se aplica a las salidas GIF y BMP.

¿Cómo afectan los ajustes de DPI la calidad de salida?

La propiedad dpi en el objeto de opciones controla la densidad de píxeles de la salida rasterizada. Valores más altos producen archivos más grandes con más detalle; valores más bajos reducen el tamaño del archivo a costa de la nitidez.

ConsejosEstablecer dpi: 300 produce imágenes de calidad de impresión adecuadas para impresión de alta resolución o archivado. Para visualización en pantalla o generación de miniaturas, dpi: 96 reduce el tamaño del archivo mientras mantiene una claridad adecuada para el uso web.

Un DPI de 150 es un valor predeterminado razonable para la mayoría de los escenarios de archivo o vista previa: la salida es lo suficientemente nítida para su lectura en pantalla y el tamaño de los archivos sigue siendo manejable. Para contenido que se imprimirá o se someterá a procesamiento OCR después de la conversión, se prefiere 300 DPI o más.

¿Cómo convierto un PDF de múltiples páginas en imágenes?

Para documentos con más de una página, rasterizeToImageFiles crea una imagen por página. IronPDF añade un índice de página basado en cero a cada nombre de archivo de salida, manteniendo la salida organizada sin código adicional de su parte.

Un documento PDF de dos páginas abierto en un visor, mostrando dos páginas de contenido de muestra antes de la conversión de imagen Un PDF de muestra de dos páginas. IronPDF crea un archivo de imagen por página durante la conversión.

//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-multipage.js
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");
});

Dos archivos de salida PNG — multipage-pdf-page_1.png y multipage-pdf-page_2.png — creados a partir del PDF de dos páginas anterior Los dos archivos PNG producidos a partir del PDF de dos páginas. IronPDF nombra cada archivo de salida con su número de página.

Este comportamiento automático de división de páginas funciona con todos los formatos de imagen compatibles. Combínelo con la opción fromPages en la siguiente sección para convertir solo páginas específicas de documentos grandes. Para trabajar en la dirección opuesta, el ejemplo de imagen a PDF muestra cómo combinar múltiples archivos de imagen en un solo documento PDF.

¿Cómo se estructuran los nombres de archivo de salida?

El patrón de nombres de archivo utiliza un número de página basado en uno agregado antes de la extensión del archivo. Si la ruta de salida es ./images/report-page.png, un PDF de tres páginas produce report-page_1.png, report-page_2.png, y report-page_3.png. El directorio de salida debe existir antes de llamar a rasterizeToImageFiles — el método no crea directorios faltantes automáticamente.

ImportanteCree el directorio de salida antes de llamar a rasterizeToImageFiles. El método lanza un error si el directorio de destino no existe. Use fs.mkdirSync('./images/output', { recursive: true }) de Node.js para crearlo con anticipación.

¿Cómo convierto solo páginas específicas?

La propiedad fromPages en el objeto de opciones acepta un array de índices de página basados en cero. Solo se rasterizan las páginas especificadas; todas las demás se omiten. Esto es útil al trabajar con PDFs grandes donde solo se necesita un subconjunto de páginas, por ejemplo, para extraer las páginas de portada y de inicio de sección para una vista previa del documento. Cuando necesita trabajar con páginas individuales antes de convertirlas, la referencia de API de Node.js para PdfDocument documenta operaciones adicionales a nivel de página.

//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-selective-pages.js
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);
});

Cuatro archivos de salida BMP etiquetados como multipage-pdf-page_1, page_4, page_7, y page_9 producidos a partir de un PDF grande IronPDF solo rasterizó las cuatro páginas especificadas en el array fromPages. Las otras páginas no fueron procesadas.

Los índices de página en fromPages están basados en cero, por lo que [0, 3, 5, 8] apunta a la primera, cuarta, sexta y novena páginas. El valor de DPI de 150 equilibra la calidad de salida y el tamaño del archivo, adecuado para casos de uso de archivo o vista previa. La conversión selectiva es compatible con todos los tipos de imagen admitidos.

Por favor notaDescargue el PDF de muestra con imágenes utilizado en el ejemplo anterior de Learning Container.

¿Cuál es la diferencia entre números de página basados en cero y basados en uno?

fromPages usa indexación basada en cero, coincidiendo con la convención estándar de arrays de JavaScript. La página 1 del documento corresponde al índice 0, la página 2 al índice 1, y así sucesivamente. Esto difiere de los números de página basados en uno que aparecen en los visores de PDF. Al traducir números de página del visor a índices fromPages, reste uno de cada número de página.

ConsejosPara convertir la última página de cualquier PDF sin conocer el conteo total de páginas con anticipación, lea el conteo de páginas usando pdf.pageCount() de la API PdfDocument y use [pdf.pageCount() - 1] como valor de fromPages.

¿Cuáles son los siguientes pasos para la conversión de PDF a imagen?

El método rasterizeToImageFiles de IronPDF maneja la selección de formato, división de múltiples páginas, y conversión selectiva de páginas en una API consistente. El objeto de opciones es el único punto de extensión para anular el formato, controlar el DPI y filtrar las páginas.

Para ir más allá, la referencia de API de IronPDF Node.js documenta todos los parámetros disponibles en rasterizeToImageFiles y la clase PdfDocument. El ejemplo de código de PDF a Imágenes muestra rasterizeToImageFiles utilizado con configuración adicional. Para trabajar en la dirección opuesta, vea convertir imágenes a archivos PDF o convertir archivos TIFF de múltiples marcos a PDF.

Comience su prueba gratuita de IronPDF for Node.js para probar la conversión de PDF a imagen en su propio proyecto. Vea las opciones de licencia para encontrar el plan que se adapte a su equipo.

¿Listo para ver qué más puede hacer IronPDF? Consulte el tutorial completo de Node.js aquí: HTML a PDF en Node.js

Preguntas Frecuentes

¿Cómo convierto un PDF en una imagen en Node.js?

Usa el método rasterizeToImageFiles de IronPDF. Instala el paquete con npm install @ironsoftware/ironpdf, carga tu PDF usando PdfDocument.fromFile(), luego llama a rasterizeToImageFiles() con la ruta de salida. La extensión del archivo determina el formato de salida automáticamente.

¿Qué formatos de imagen soporta rasterizeToImageFiles?

IronPDF soporta salida en PNG, JPG, GIF, y BMP. El formato se detecta desde la extensión del archivo en la ruta de salida. Para anular esto, pasa un valor enum ImageType en el objeto de opciones: por ejemplo, { type: ImageType.JPG } fuerza la salida JPEG sin importar la extensión del nombre del archivo.

¿Cómo convierto solo páginas específicas de un PDF a imágenes?

Pasa un arreglo fromPages en el objeto de opciones. El arreglo acepta índices de página de base cero, así que fromPages: [0, 2, 4] convierte la primera, tercera, y quinta páginas. Las páginas no listadas en el arreglo se omiten.

¿Qué DPI debo usar para la conversión de PDF a imagen?

Configura la propiedad dpi en el objeto de opciones. Usa dpi: 96 para exhibición en pantalla y miniaturas, dpi: 150 para casos de uso de archivo y vista previa, y dpi: 300 para salida de calidad de impresión o contenido que será procesado por OCR después de la conversión.

¿Cuáles son los requisitos de instalación para IronPDF en Node.js?

Se requiere Node.js 12 o posterior. Instala el paquete con npm install @ironsoftware/ironpdf. El binario IronPDF Engine se descarga automáticamente en el primer uso y maneja todo el renderizado de PDF. Para uso en producción, configura una clave de licencia para eliminar marcas de agua de la salida.

¿Cómo se estructuran los nombres de archivo de salida para PDFs de varias páginas?

IronPDF añade un número de página de base uno antes de la extensión del archivo. Si la ruta de salida es report-page.png, un PDF de tres páginas produce report-page_1.png, report-page_2.png, y report-page_3.png. El directorio de salida debe existir antes de llamar al método.

¿La conversión de PDF a imagen es asincrónica en Node.js?

Sí. Tanto PdfDocument.fromFile() como rasterizeToImageFiles() devuelven Promesas. Encadena .then() para la ruta de éxito y .catch() para manejar errores de conversión. También puedes usar la sintaxis async/await con estos métodos.

Darrius Serrant
Ingeniero de Software Full Stack (WebOps)

Darrius Serrant tiene una licenciatura en Ciencias de la Computación de la Universidad de Miami y trabaja como Ingeniero de Marketing WebOps Full Stack en Iron Software. Atraído por la programación desde joven, vio la computación como algo misterioso y accesible, convirtiéndolo en el ...

Leer más
¿Listo para empezar?
Versión: 2026.5 just released
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida?
ejecutar una muestra Mira cómo tu HTML se convierte en PDF.