Convertir archivo PDF a imágenes en C#

Aimen Fatima 15 febrero 2024
  1. Convertidor de PDF a imagen
  2. Convierta archivos PDF a imágenes en C# usando el paquete PDFium
  3. Convierta archivos PDF a imágenes en C# utilizando el paquete Syncfusion
  4. Convierta archivos PDF a imágenes en C# usando PDFRasterizer
Convertir archivo PDF a imágenes en C#

Este artículo demuestra la conversión de archivos PDF a imágenes en C#.

Exploraremos dos métodos para convertir archivos PDF en imágenes. Para elaborar a fondo, crearemos proyectos C# paso a paso y proporcionaremos todos los fragmentos de código.

Convertidor de PDF a imagen

Hay varias formas de convertir archivos PDF en imágenes usando C#. Puede usar ensamblajes de terceros para crear un convertidor o crear uno propio.

Haremos un convertidor para convertir archivos PDF a imágenes utilizando dos ensamblajes diferentes. Estos son:

  1. PDFio
  2. Sinfusión

Estos dos paquetes de NuGet se pueden instalar desde nuget.org en sus proyectos. Creemos un proyecto C# y una guía para instalar estos paquetes paso a paso.

Convierta archivos PDF a imágenes en C# usando el paquete PDFium

  • Cree una Aplicación de consola en Visual Studio. Recomendamos Visual Studio 2019 o posterior para instalar y trabajar con estos paquetes.

    Crear proyecto

  • Haga clic en la pestaña Proyecto y seleccione Administrar paquetes NuGet, o haga clic en la pestaña Herramientas, seleccione Administrador de paquetes NuGet y seleccione Administrar paquetes NuGet para la solución.

    Paquetes NuGet

    Paquetes NuGet 2

  • Seleccione la pestaña Examinar y configure el Fuente del paquete como nuget.org.
  • Suponga que no encuentra nuget.org en la ventana Fuente del paquete; añádelo haciendo clic en la pestaña Configuración. Haga clic en el icono + y escriba el nombre y la fuente que se muestra en la imagen.

    Configuración NuGet

  • Escribe PDFium en la barra de búsqueda. Instale PdfiumViewer, PdfiumViewer.Native.x86.v8-xfa y PDFium.x86.

    Buscar PDFium

    Paquete PDFium

  • Después de instalar estos paquetes, estará disponible una referencia a PdfiumViewer en la ventana Referencias. Cree una carpeta en el directorio de su proyecto llamada Muestras y coloque el archivo PDF que desea convertir en esta carpeta.

    Ventana de referencias

  • Agregue una referencia a System.Drawing para importar este ensamblaje a su proyecto. Haga clic derecho en la pestaña “Referencias” en la ventana “Explorador de soluciones”, seleccione “Agregar referencia”, navegue hasta Framework y seleccione System.Drawing.

    Añadir referencia

    Dibujo del sistema

  • Agregue el siguiente fragmento de código al archivo Program.cs. Puede personalizar el nombre del archivo de entrada y salida según sus necesidades.
  • Este fragmento de código convertirá documentos de una sola página y de varias páginas. Después de ejecutar el código, su archivo PDF debe convertirse en imágenes (cada página del archivo PDF como una imagen).
    using PdfiumViewer;
    using System;
    using System.Drawing.Imaging;
    using System.IO;
    using System.Linq;
    
    namespace PdfToImage {
      class Program {
        static void Main(string[] args) {
          var projectDirectory = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName;
    
          try {
            using (var document = PdfDocument.Load(projectDirectory + @"\Samples\document.pdf")) {
              var pageCount = document.PageCount;
    
              for (int i = 0; i < pageCount; i++) {
                var dpi = 300;
    
                using (var image = document.Render(i, dpi, dpi, PdfRenderFlags.CorrectFromDpi)) {
                  var encoder =
                      ImageCodecInfo.GetImageEncoders().First(c => c.FormatID == ImageFormat.Jpeg.Guid);
                  var encoderParams = new EncoderParameters(1);
                  encoderParams.Param[0] =
                      new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
    
                  image.Save(projectDirectory + @"\Samples\image_" + i + ".jpg", encoder,
                             encoderParams);
                }
              }
            }
          } catch (Exception ex) {
            Console.WriteLine(ex.Message);
          }
    
          Console.WriteLine("Pdf converted to images. Press any key to exit...");
          Console.ReadKey();
        }
      }
    }
    
  • Si se enfrenta a la excepción No se puede encontrar un punto de entrada llamado 'FPDF_AddRef' en DLL 'pdfium.dll.', debe cambiar la plataforma de destino en su configuración de compilación.
  • Vaya a la pestaña Construir y seleccione la plataforma de destino según su sistema, es decir, x86 o x64. Si no encuentra el objetivo de la plataforma en Construir, seleccione la pestaña Proyecto, seleccione las propiedades del proyecto y busque el objetivo de la plataforma en Construir.

    Propiedades del proyecto

    Pestaña Construir

Convierta archivos PDF a imágenes en C# utilizando el paquete Syncfusion

  • Cree una Aplicación de consola en Visual Studio 2019 o una versión superior siguiendo el paso 1 como se explicó anteriormente.
  • Siga los pasos 2 y 3, descritos en la sección anterior, para explorar el paquete Syncfusion desde NuGet.org.
  • Busque el paquete Syncfusion.pdfViewer.Windows e instálelo.

    Paquete de fusión sincronizada

  • Agregue referencias a System.Drawing y System.Windows.Forms siguiendo el paso 6 mencionado anteriormente.

    Referencias: dibujo del sistema y formularios de Windows del sistema

  • Copie el siguiente fragmento de código en su archivo Program.cs para convertir una sola página de un archivo PDF en una imagen. Puede personalizarlo para la conversión de varias páginas utilizando el bucle for.
  • Personalice los nombres de los archivos de entrada y salida según sus necesidades. Puede seleccionar la página específica para convertir pasando el parámetro apropiado en el método ExportAsImage().
    using Syncfusion.Pdf.Parsing;
    using Syncfusion.Windows.Forms.PdfViewer;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace PDFToJPEG {
      class Program {
        static void Main(string[] args) {
          // Initialize the PdfViewer Control
          PdfViewerControl pdfViewer = new PdfViewerControl();
    
          // Load the input PDF file
          PdfLoadedDocument document = new PdfLoadedDocument("../../Data/document.pdf");
    
          pdfViewer.Load(document);
    
          Bitmap image = pdfViewer.ExportAsImage(0);
    
          // Save the image.
          image.Save("output.jpg", ImageFormat.Jpeg);
        }
      }
    }
    

    Navegue hasta el directorio del proyecto->bin->Debug para encontrar el archivo de imagen de salida.

Convierta archivos PDF a imágenes en C# usando PDFRasterizer

PDFRasterizer es una herramienta para convertir archivos PDF a imágenes desarrolladas en C#. Proporciona la GUI utilizando el formulario de Windows.

Puede descargar el código fuente y usarlo sin ningún error. Navegue a PDFRasterizer para descargar el componente.

Artículo relacionado - Csharp PDF

Artículo relacionado - Csharp Image