Saltar al pie de página
HERRAMIENTAS PDF

Cómo Convertir PDF a Imagen en NodeJS

Convertir documentos PDF a formatos de imagen como PNG, JPG, GIF puede ser una característica valiosa en varias aplicaciones, desde sistemas de gestión de documentos hasta software de procesamiento de imágenes. En este artículo, aprenderemos cómo convertir PDF a archivos de imagen usando Node.js. Aprovecharemos el poder de un paquete popular de npm (Node Package Manager) llamado pdf-poppler para lograr esta tarea.

Requisitos previos

Primero, asegúrese de tener Node.js y npm (Node Package Manager) instalados en su máquina. Puede verificar las instalaciones de Node ejecutando los siguientes comandos en su símbolo del sistema (cmd):

node --version
npm --version
node --version
npm --version
SHELL

Si no está instalado, necesitará descargarlo desde el sitio web de Node.js.

Cómo Convertir PDF a Imagen en NodeJS: Figura 1 - Módulo de Node.js

Configuración del proyecto

Para comenzar, cree un nuevo directorio para su proyecto. Para este tutorial, llamemos a este directorio NodeJS_PDFtoImage. Luego, navegue a él en el símbolo del sistema e inicialice un nuevo proyecto de Node.js ejecutando:

npm init -y
npm init -y
SHELL

Ejecutar el comando anterior producirá un archivo package.json que nos permitirá instalar las dependencias requeridas de nuestro proyecto.

Instalación de dependencias

La dependencia que usaremos es pdf-poppler, un paquete que proporciona una API fácil de usar para convertir PDFs en imágenes.

Instálelo ejecutando el siguiente comando en Windows PowerShell o Símbolo del sistema:

npm install pdf-poppler
npm install pdf-poppler
SHELL

¡Todo listo! Escribamos la lógica para convertir PDF a imágenes.

Convertir PDF en archivo de imagen

Una vez completada la instalación, cree un nuevo archivo en el directorio raíz de nuestro proyecto y llámelo pdfToImage.js. Abra el archivo en su editor de texto preferido y agregue los módulos requeridos:

const pdfPoppler = require('pdf-poppler');

A continuación se muestra un archivo PDF de muestra de 28 páginas.

Cómo Convertir PDF a Imagen en NodeJS: Figura 2 - Archivo de Entrada

A continuación, defina una función llamada convertPdfToImage que tome la ruta al archivo PDF (pdfPath) y la ruta del directorio de salida (outputPath). Esta función convertirá nuestro documento PDF de muestra en imágenes.

async function convertPdfToImage(pdfPath, outputPath) {
  const options = {
    format: 'jpeg',  // You can choose other formats like png or tiff
    out_dir: outputPath,
    out_prefix: 'page',
    page: null  // Specify the page number here to convert a specific page, otherwise null to convert all pages
  };

  try {
    await pdfPoppler.convert(pdfPath, options);
    console.log('PDF converted to image successfully!');
  } catch (error) {
    console.error('Error converting PDF to image:', error);
  }
}

La función utiliza el paquete pdf-poppler para convertir el PDF al formato de imagen JPEG. En este caso, configuramos la opción format a 'jpeg', pero puede elegir otros formatos como 'png' o 'tiff'. La opción out_dir especifica el directorio donde se guardarán las imágenes de salida, y out_prefix establece un prefijo para los archivos de imagen de salida. La opción page le permite especificar una página en particular para convertir, o puede dejarla como nula para convertir todas las páginas.

Para convertir un archivo PDF a imágenes, puede llamar a la función convertPdfToImage con las rutas de archivo apropiadas. Por ejemplo:

const pdfPath = '/path/to/input.pdf';
const outputPath = '/path/to/output/folder';

convertPdfToImage(pdfPath, outputPath);

Nota: Reemplace el valor de pdfPath "/path/to/input.pdf" con la ruta real al archivo PDF de entrada y "/path/to/output/folder" con la ruta del directorio de salida deseado.

El código completo es el siguiente:

const pdfPoppler = require('pdf-poppler');

const pdfPath = 'C:\\Users\\hp\\Desktop\\NodeJS_PDFtoImage\\pdf_files\\input.pdf';
const outputDir = 'C:\\Users\\hp\\Desktop\\NodeJS_PDFtoImage\\pdf_images';

async function convertPdfToImage(pdfPath, outputPath) {
  const opts = {
    format: 'jpeg',      // You can choose other formats like png or tiff
    out_dir: outputPath,
    out_prefix: 'page',
    page: null           // Specify the page number here to convert a specific page, otherwise null to convert all pages
  };

  try {
    await pdfPoppler.convert(pdfPath, opts);
    console.log('PDF converted to image successfully!');
  } catch (error) {
    console.error('Error converting PDF to image:', error);
  }
}

convertPdfToImage(pdfPath, outputDir);

Ejecutar el script Node.js

Ejecute el script de Node.js ejecutando el siguiente comando:

node pdfToImage.js
node pdfToImage.js
SHELL

Esto ejecutará el script de Node.js y convertirá el PDF en archivos de imagen usando pdf-poppler.

Cómo Convertir PDF a Imagen en NodeJS: Figura 3 - Script de Node.js

Carpeta de salida

Cómo Convertir PDF a Imagen en NodeJS: Figura 4 - Salida

Rasterizar archivo PDF a imagen en C#;

IronPDF para C# .NET

IronPDF es una biblioteca versátil de .NET que permite a los desarrolladores de C# trabajar con documentos PDF sobre la marcha. Proporciona funciones completas para crear, manipular y convertir archivos PDF dentro de C#.

IronPDF ofrece una forma conveniente de convertir documentos PDF en archivos de imagen usando C#. Esta funcionalidad es particularmente útil cuando se necesita extraer imágenes o generar miniaturas de imagen a partir de archivos PDF de forma programática.

Para convertir a imágenes usando IronPDF, puede seguir los pasos en el fragmento de código a continuación:

using IronPdf;
using IronSoftware.Drawing;

var pdf = PdfDocument.FromFile("input.pdf");

// Extract all pages to a folder as image files
pdf.RasterizeToImageFiles(@"C:\image\folder\*.png");

// Dimensions and page ranges may be specified
pdf.RasterizeToImageFiles(@"C:\image\folder\example_pdf_image_*.jpg", 100, 80);

// Extract all pages as AnyBitmap objects
AnyBitmap [] pdfBitmaps = pdf.ToBitmap();
using IronPdf;
using IronSoftware.Drawing;

var pdf = PdfDocument.FromFile("input.pdf");

// Extract all pages to a folder as image files
pdf.RasterizeToImageFiles(@"C:\image\folder\*.png");

// Dimensions and page ranges may be specified
pdf.RasterizeToImageFiles(@"C:\image\folder\example_pdf_image_*.jpg", 100, 80);

// Extract all pages as AnyBitmap objects
AnyBitmap [] pdfBitmaps = pdf.ToBitmap();
Imports IronPdf
Imports IronSoftware.Drawing

Private pdf = PdfDocument.FromFile("input.pdf")

' Extract all pages to a folder as image files
pdf.RasterizeToImageFiles("C:\image\folder\*.png")

' Dimensions and page ranges may be specified
pdf.RasterizeToImageFiles("C:\image\folder\example_pdf_image_*.jpg", 100, 80)

' Extract all pages as AnyBitmap objects
Dim pdfBitmaps() As AnyBitmap = pdf.ToBitmap()
$vbLabelText   $csharpLabel

Cómo Convertir PDF a Imagen en NodeJS: Figura 5 - Salida de PDF a Imagen de Node JS

Así de fácil es convertir un archivo PDF a imagen usando IronPDF. Para obtener más detalles sobre la conversión de PDF a imagen, visite esta página de ejemplos de código.

Conclusión

En este artículo, exploramos cómo convertir archivos PDF a imágenes en Node.js usando el paquete pdf-poppler. Siguiendo los pasos descritos, puede integrar capacidades de conversión de PDF a imagen en sus aplicaciones de Node.js, lo que permite una amplia gama de posibilidades para manejar y manipular documentos PDF de forma programática.

Por otro lado, IronPDF es una poderosa biblioteca de C# que facilita las tareas de manipulación y conversión de PDF. Su capacidad para convertir PDF en imágenes ofrece una forma conveniente de extraer imágenes o generar representaciones en imagen de páginas PDF de forma programática. Al aprovechar las funciones de IronPDF, los desarrolladores pueden integrar sin problemas la funcionalidad de conversión de PDF a imagen en sus aplicaciones C#.

IronPDF es gratuito para el desarrollo y se puede licenciar para uso comercial. Además, también puede usarlo en modo comercial con una prueba gratuita.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más