Convertir archivo PDF a imágenes en C#
- Convertidor de PDF a imagen
- Convierta archivos PDF a imágenes en C# usando el paquete PDFium
- Convierta archivos PDF a imágenes en C# utilizando el paquete Syncfusion
- Convierta archivos PDF a imágenes en C# usando PDFRasterizer
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:
- PDFio
- 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. -
Haga clic en la pestaña
Proyecto
y seleccioneAdministrar paquetes NuGet
, o haga clic en la pestañaHerramientas
, seleccioneAdministrador de paquetes NuGet
y seleccioneAdministrar paquetes NuGet para la solución
. -
Seleccione la pestaña
Examinar
y configure elFuente del paquete
comonuget.org
. -
Suponga que no encuentra
nuget.org
en la ventanaFuente del paquete
; añádelo haciendo clic en la pestañaConfiguración
. Haga clic en el icono+
y escriba el nombre y la fuente que se muestra en la imagen. -
Escribe
PDFium
en la barra de búsqueda. Instale PdfiumViewer, PdfiumViewer.Native.x86.v8-xfa y PDFium.x86. -
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 llamadaMuestras
y coloque el archivo PDF que desea convertir en esta carpeta. -
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 hastaFramework
y seleccioneSystem.Drawing
. -
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 enConstruir
, seleccione la pestañaProyecto
, seleccione las propiedades del proyecto y busque el objetivo de la plataforma enConstruir
.
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. -
Agregue referencias a
System.Drawing
ySystem.Windows.Forms
siguiendo el paso 6 mencionado anteriormente. -
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 buclefor
. -
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.