Saltar al pie de página
USANDO IRONPDF

Cómo Convertir Imagen a PDF en C# [Tutorial de Ejemplo de Código]

IronPDF ofrece una solución sencilla y gratuita para convertir imágenes a PDF en C# a través de su método ImageToPdf, lo que permite a los desarrolladores convertir imágenes individuales o múltiples con solo unas pocas líneas de código y configuraciones de página personalizables.

Numerosas bibliotecas permiten a los desarrolladores de C# convertir imágenes en PDFs. Encontrar una biblioteca gratuita, amigable para el usuario y con buen rendimiento puede ser un desafío, ya que algunas son de pago, complejas o limitadas en funcionalidad. Entre estas bibliotecas, IronPDF se destaca como una biblioteca gratuita, eficiente y fácil de implementar para C#. Viene con documentación completa y soporte dedicado.

IronPDF es una biblioteca .NET para generar, leer, editar y guardar archivos PDF en proyectos .NET. IronPDF cuenta con conversión de HTML a PDF for .NET 5, Core, Standard y Framework con soporte total de HTML a PDF, incluidos CSS3 y JS. La biblioteca aprovecha un motor de renderizado Chrome para garantizar la generación de PDF con píxeles perfectos a partir de diversas fuentes.

Veamos cómo crear un proyecto de muestra para aprender a convertir imágenes a PDF. Este tutorial lo guiará a través del proceso de instalación , conversión básica de imágenes y funciones avanzadas para manejar múltiples imágenes y diferentes formatos.

¿Cómo creo un proyecto de Visual Studio?

Para crear un nuevo proyecto, abre Microsoft Visual Studio. Se recomienda utilizar la última versión de Visual Studio. Los pasos para crear un nuevo proyecto pueden variar entre versiones, pero el resto debería ser el mismo para cada versión.

  1. Haz clic en Crear Nuevo Proyecto.
  2. Selecciona Plantilla de Proyecto, luego selecciona la plantilla de Aplicación de Consola para esta demostración. Puede utilizar cualquier plantilla según sus necesidades, incluidas aplicaciones ASP.NET Core o Blazor .
  3. Haz clic en Siguiente. Nombre el proyecto (por ejemplo, "ImageToPDFConverter").
  4. Haz clic en Siguiente y selecciona la versión del .NET Framework.
  5. Haz clic en el botón Crear.

El nuevo proyecto se creará como se muestra a continuación. La estructura del proyecto incluirá un archivo Program.cs donde escribiremos nuestro código de conversión de imágenes.

Pantalla de creación de proyecto de nueva aplicación de consola de Visual Studio que muestra opciones de selección de plantillas y configuración Crear una nueva Aplicación de Consola en Visual Studio

¿Qué versión de .NET Framework debo elegir?

IronPDF admite una amplia gama de versiones .NET , incluidas .NET Framework 4.6.2+, .NET Core 3.1+ y .NET 5/6/7/8+. Para proyectos nuevos, se recomienda utilizar la última versión LTS (Long Term Support) de .NET para obtener un rendimiento óptimo y actualizaciones de seguridad. La biblioteca también funciona sin problemas en plataformas Windows , Linux y macOS .

A continuación, instala el Paquete NuGet de IronPDF en este proyecto para usar sus funcionalidades. Lo mejor de IronPDF es que elimina la frustración de generar documentos PDF al no depender de API propietarias. El renderizado de HTML a PDF genera archivos PDF con una resolución de píxeles perfecta a partir de formatos de documentos estándar abiertos: HTML, JS, CSS, JPG, PNG, GIF y SVG. En resumen, utiliza las habilidades que los desarrolladores ya poseen.

¿Cómo instalo el paquete NuGet IronPDF ?

Para instalar el Paquete NuGet, ve a Herramientas > Administrador de Paquetes NuGet > Consola del Administrador de Paquetes. Aparecerá la siguiente ventana:

Interfaz de la consola del Administrador de paquetes en Visual Studio que muestra la interfaz de línea de comandos para la administración de paquetes NuGet IU de la Consola del Administrador de Paquetes

A continuación, escribe el siguiente comando en la Consola del Administrador de Paquetes:

Install-Package IronPdf

Presione Enter. El proceso de instalación descargará IronPDF y sus dependencias, incluidos los componentes necesarios del motor de renderizado de Chrome .

Consola del administrador de paquetes que muestra la instalación exitosa del paquete IronPDF con información de la versión y dependencias Instalar el paquete IronPdf en la Consola del Gestor de Paquetes

¿Cuáles son los métodos de instalación alternativos?

También puedes instalar IronPDF a través de:

  • Interfaz de usuario del administrador de paquetes NuGet : haga clic derecho en su proyecto, seleccione "Administrar paquetes NuGet ", busque "IronPDF" y haga clic en Instalar
  • Referencia del paquete : agregue <PackageReference Include="IronPdf" Version="*" /> a su archivo .csproj
  • Descarga directa : descargue la DLL del sitio web de IronPDF y haga referencia a ella manualmente
  • Línea de comandos : utilice dotnet add package IronPdf en la terminal

Para las implementaciones de Azure , es posible que necesite una configuración adicional. De manera similar, los entornos Docker requieren pasos de configuración específicos.

¿Cómo convierto un archivo de imagen en un documento PDF?

El siguiente paso mostrará cómo convertir la siguiente imagen a PDF. IronPDF hace que este proceso sea sencillo con su funcionalidad de conversión ImageToPdf .

¿Qué formatos de imagen se admiten?

IronPDF admite una amplia variedad de formatos de imagen para la conversión de PDF:

  • JPEG/JPG : El formato más común para fotografías
  • PNG : Ideal para imágenes con transparencia
  • GIF : Incluye GIF animados (primer fotograma utilizado)
  • BMP : formato de mapa de bits de Windows
  • TIFF : Incluye archivos TIFF de varias páginas
  • SVG : Gráficos vectoriales escalables
  • WebP : Formato de imagen web moderno

Imagen de muestra de un pájaro colorido posado en una rama, que demuestra la calidad de la imagen para la conversión a PDF La imagen de ejemplo

Para usar la biblioteca, haga referencia a la biblioteca IronPDF en el archivo program.cs. Escriba el siguiente fragmento de código al principio del archivo:

using IronPdf;
using IronPdf.Imaging;
using System.Linq;
using IronPdf;
using IronPdf.Imaging;
using System.Linq;
$vbLabelText   $csharpLabel

A continuación, escriba el siguiente código dentro de la función principal. Esto convertirá un archivo JPG en un archivo PDF:

public static void Main(string[] args)
{
    // Convert a single image to the PDF document
    PdfDocument doc = ImageToPdfConverter.ImageToPdf(@"D:\Iron Software\ImageToPDF\bird.jpg", IronPdf.Imaging.ImageBehavior.CropPage);

    // Optional: Set document properties
    doc.MetaData.Author = "IronPDF Tutorial";
    doc.MetaData.Title = "Image to PDF Conversion";
    doc.MetaData.Subject = "Converting JPG to PDF";

    // Save the resulting PDF to the specified path
    doc.SaveAs(@"D:\Iron Software\ImageToPDF\bird.pdf");

    Console.WriteLine("PDF created successfully!");
}
public static void Main(string[] args)
{
    // Convert a single image to the PDF document
    PdfDocument doc = ImageToPdfConverter.ImageToPdf(@"D:\Iron Software\ImageToPDF\bird.jpg", IronPdf.Imaging.ImageBehavior.CropPage);

    // Optional: Set document properties
    doc.MetaData.Author = "IronPDF Tutorial";
    doc.MetaData.Title = "Image to PDF Conversion";
    doc.MetaData.Subject = "Converting JPG to PDF";

    // Save the resulting PDF to the specified path
    doc.SaveAs(@"D:\Iron Software\ImageToPDF\bird.pdf");

    Console.WriteLine("PDF created successfully!");
}
$vbLabelText   $csharpLabel

¿Cómo afecta ImageBehavior a la salida?

En el ejemplo de código anterior, se utiliza la clase ImageToPdfConverter proporcionada por IronPDF para la conversión de imágenes. El método ImageToPdf se puede utilizar para crear documentos PDF a partir de imágenes. Acepta archivos de imagen y un objeto System.Drawing como entrada.

El método estático ImageToPdf convierte un solo archivo de imagen en un documento PDF idéntico con dimensiones coincidentes. Toma dos argumentos: Ruta de la Imagen y Comportamiento de la Imagen (cómo se mostrará la imagen en el papel). La enumeración ImageBehavior proporciona varias opciones:

  • CropPage : Establece el tamaño de la página PDF para que coincida con las dimensiones de la imagen
  • CenteredOnPage : Centra la imagen en la página sin cambiar su tamaño
  • FitToPage : Escala la imagen para que se ajuste a los márgenes de la página
  • FitToPageAndMaintainAspectRatio : Escala conservando la relación de aspecto

Imaging.ImageBehavior.CropPage establecerá el tamaño del papel igual al tamaño de la imagen. El tamaño de página predeterminado es A4. Puede configurarlo mediante la siguiente línea de código:

ImageToPdfConverter.PaperSize = IronPdf.Rendering.PdfPaperSize.Letter;
ImageToPdfConverter.PaperSize = IronPdf.Rendering.PdfPaperSize.Letter;
$vbLabelText   $csharpLabel

También puede configurar tamaños de página personalizados para requisitos específicos:

// Set custom page size in millimeters
ImageToPdfConverter.PaperSize = new IronPdf.Rendering.PdfPaperSize(210, 297);
// Set custom page size in millimeters
ImageToPdfConverter.PaperSize = new IronPdf.Rendering.PdfPaperSize(210, 297);
$vbLabelText   $csharpLabel

¿Qué opciones de tamaño de papel están disponibles?

Se ofrecen múltiples opciones de tamaño de página, y puedes establecerlas según tus necesidades. IronPDF admite todos los tamaños de papel estándar:

  • Serie A : A0, A1, A2, A3, A4 (predeterminado), A5, A6, A7, A8, A9, A10
  • Serie B : B0 a B10
  • Tamaños de EE. UU .: Carta, Legal, Ledger, Tabloide, Ejecutivo
  • Otros : Foolscap, Crown, Demy, Royal y más

También puede configurar la orientación de la página (vertical u horizontal) y márgenes personalizados para sus PDF.

¿Cómo convierto varias imágenes en un archivo PDF?

El siguiente ejemplo convertirá imágenes JPG en un nuevo documento. Esto es especialmente útil para crear álbumes de fotos, catálogos o combinar documentos escaneados:

public static void Main(string[] args)
{
    // Enumerate and filter JPG files from the specified directory
    var imageFiles = System.IO.Directory.EnumerateFiles(@"D:\Iron Software\ImageToPDF\")
                                        .Where(f => f.EndsWith(".jpg") || f.EndsWith(".jpeg"));

    // Sort files alphabetically (optional)
    var sortedImageFiles = imageFiles.OrderBy(f => f);

    // Convert the images to a PDF document
    PdfDocument doc = ImageToPdfConverter.ImageToPdf(sortedImageFiles);

    // Add page numbers to each page
    for (int i = 0; i < doc.PageCount; i++)
    {
        doc.AddTextFooter($"Page {i + 1} of {doc.PageCount}", 
                         FontFamily.Arial, 
                         fontSize: 10,
                         y: 25);
    }

    // Save the combined PDF
    doc.SaveAs(@"D:\Iron Software\ImageToPDF\JpgToPDF.pdf");

    Console.WriteLine($"Combined {doc.PageCount} images into a single PDF!");
}
public static void Main(string[] args)
{
    // Enumerate and filter JPG files from the specified directory
    var imageFiles = System.IO.Directory.EnumerateFiles(@"D:\Iron Software\ImageToPDF\")
                                        .Where(f => f.EndsWith(".jpg") || f.EndsWith(".jpeg"));

    // Sort files alphabetically (optional)
    var sortedImageFiles = imageFiles.OrderBy(f => f);

    // Convert the images to a PDF document
    PdfDocument doc = ImageToPdfConverter.ImageToPdf(sortedImageFiles);

    // Add page numbers to each page
    for (int i = 0; i < doc.PageCount; i++)
    {
        doc.AddTextFooter($"Page {i + 1} of {doc.PageCount}", 
                         FontFamily.Arial, 
                         fontSize: 10,
                         y: 25);
    }

    // Save the combined PDF
    doc.SaveAs(@"D:\Iron Software\ImageToPDF\JpgToPDF.pdf");

    Console.WriteLine($"Combined {doc.PageCount} images into a single PDF!");
}
$vbLabelText   $csharpLabel

¿Cómo puedo filtrar diferentes formatos de imagen?

En el código anterior, System.IO.Directory.EnumerateFiles recupera todos los archivos disponibles en la carpeta especificada. La cláusula Where filtra todas las imágenes JPG de esa carpeta y las almacena en la colección imageFiles. Si tiene PNG o cualquier otro formato de imagen, puede agregarlo a la consulta Where:

// Filter multiple image formats
var imageFiles = System.IO.Directory.EnumerateFiles(@"D:\Iron Software\ImageToPDF\")
    .Where(f => f.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase) || 
                f.EndsWith(".jpeg", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".png", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".bmp", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".gif", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".tiff", StringComparison.OrdinalIgnoreCase));
// Filter multiple image formats
var imageFiles = System.IO.Directory.EnumerateFiles(@"D:\Iron Software\ImageToPDF\")
    .Where(f => f.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase) || 
                f.EndsWith(".jpeg", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".png", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".bmp", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".gif", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".tiff", StringComparison.OrdinalIgnoreCase));
$vbLabelText   $csharpLabel

También puedes utilizar un enfoque más conciso con una serie de extensiones:

string[] imageExtensions = { ".jpg", ".jpeg", ".png", ".bmp", ".gif", ".tiff" };
var imageFiles = System.IO.Directory.EnumerateFiles(@"D:\Iron Software\ImageToPDF\")
    .Where(f => imageExtensions.Any(ext => f.EndsWith(ext, StringComparison.OrdinalIgnoreCase)));
string[] imageExtensions = { ".jpg", ".jpeg", ".png", ".bmp", ".gif", ".tiff" };
var imageFiles = System.IO.Directory.EnumerateFiles(@"D:\Iron Software\ImageToPDF\")
    .Where(f => imageExtensions.Any(ext => f.EndsWith(ext, StringComparison.OrdinalIgnoreCase)));
$vbLabelText   $csharpLabel

¿En qué orden aparecerán las imágenes en el PDF?

De forma predeterminada, las imágenes aparecen en el orden devuelto por el sistema de archivos, que puede no ser alfabético. Para controlar el orden, puedes ordenar los archivos:

  • Alfabético : imageFiles.OrderBy(f => f)
  • Por fecha de creación : imageFiles.OrderBy(f => new FileInfo(f).CreationTime)
  • Por tamaño de archivo : imageFiles.OrderBy(f => new FileInfo(f).Length)
  • Pedido personalizado : utilice una función de comparación personalizada

La siguiente línea tomará todas las imágenes y las combinará en un único documento PDF. Cada imagen se convierte en una página separada en el PDF.

¿Cómo imprimo un archivo PDF?

El siguiente fragmento de código imprimirá el documento utilizando las capacidades de impresión de IronPDF:

// Print using default printer
doc.Print();

// Print silently (without print dialog)
doc.Print(showPreview: false);

// Print to a specific printer
var printerName = "Microsoft Print to PDF";
doc.Print(printerName);
// Print using default printer
doc.Print();

// Print silently (without print dialog)
doc.Print(showPreview: false);

// Print to a specific printer
var printerName = "Microsoft Print to PDF";
doc.Print(printerName);
$vbLabelText   $csharpLabel

¿Puedo especificar la configuración de la impresora?

El método Print proporcionado por la clase PdfDocument imprimirá el documento utilizando la impresora predeterminada. También proporciona una opción para cambiar el nombre de la impresora y otras configuraciones. Para opciones de impresión avanzadas:

// Advanced printing with settings
using System.Drawing.Printing;

var printDocument = doc.GetPrintDocument();
printDocument.PrinterSettings.PrinterName = "Your Printer Name";
printDocument.PrinterSettings.Copies = 2;
printDocument.PrinterSettings.Collate = true;
printDocument.PrinterSettings.PrintRange = PrintRange.SomePages;
printDocument.PrinterSettings.FromPage = 1;
printDocument.PrinterSettings.ToPage = 3;

printDocument.Print();
// Advanced printing with settings
using System.Drawing.Printing;

var printDocument = doc.GetPrintDocument();
printDocument.PrinterSettings.PrinterName = "Your Printer Name";
printDocument.PrinterSettings.Copies = 2;
printDocument.PrinterSettings.Collate = true;
printDocument.PrinterSettings.PrintRange = PrintRange.SomePages;
printDocument.PrinterSettings.FromPage = 1;
printDocument.PrinterSettings.ToPage = 3;

printDocument.Print();
$vbLabelText   $csharpLabel

Para obtener más detalles sobre la impresión de documentos, visite este ejemplo de impresión en PDF . También puede explorar las opciones de impresión en red para entornos empresariales.

¿Cuáles son los puntos clave?

Este tutorial mostró una manera muy fácil de convertir imágenes en un archivo PDF con ejemplos de código, ya sea convirtiendo una sola imagen en un PDF o combinando múltiples imágenes en un solo archivo PDF. Además, también explicó cómo imprimir documentos con una sola línea de código.

Puntos clave tratados:

  • Instalación de IronPDF a través del Administrador de paquetes NuGet
  • Conversión de imágenes individuales a PDF con comportamiento personalizado
  • Conversión por lotes de varias imágenes a un solo PDF
  • Controlar el tamaño de la página, la orientación y los márgenes
  • Agregar metadatos y números de página a archivos PDF
  • Impresión de archivos PDF mediante programación con opciones

Además, algunas características importantes de IronPDF incluyen:

¿Dónde puedo obtener más información sobre IronPDF?

IronPDF ofrece múltiples funciones útiles. Explora estos recursos:

Para casos de uso específicos, explore:

¿Cuánto cuesta IronPDF ?

IronPDF es parte de la suite de Iron Software . Iron Suite incluye productos útiles adicionales como IronXL para operaciones de Excel, IronBarcode para la generación de códigos de barras, IronOCR para reconocimiento de texto y IronWebscraper para la extracción de datos web. Puede ahorrar hasta un 250% al comprar la suite completa de Iron, ya que actualmente puede obtener los cinco productos por el precio de solo dos. Visite la página de detalles de licencia para obtener más información.

IronPDF ofrece:

  • Licencia de desarrollo gratuita para pruebas
  • Licencias profesionales desde $749
  • Opciones de redistribución sin regalías
  • Licencias SaaS y OEM disponibles
  • Garantía de devolución de dinero de 30 días
  • Soporte y actualizaciones gratuitas durante un año

Pruebe IronPDF gratis durante 30 días con una licencia de prueba o explore las opciones de licencia para su equipo.

Preguntas Frecuentes

¿Cómo puedo convertir una imagen a un PDF en C#?

Puedes convertir una imagen a un PDF en C# usando el método ImageToPdf de IronPDF. Este método te permite especificar la ruta de la imagen y los ajustes deseados de salida en PDF.

¿Se pueden convertir múltiples imágenes en un solo archivo PDF?

Sí, IronPDF te permite convertir múltiples imágenes en un solo archivo PDF utilizando el método ImageToPdf, donde proporcionas una colección de archivos de imagen.

¿Qué formatos de imagen son compatibles con la conversión a PDF?

IronPDF soporta la conversión de varios formatos de imagen como JPG, PNG, GIF y SVG en documentos PDF.

¿Cómo establezco el tamaño de página al convertir una imagen a un PDF?

Para establecer el tamaño de página durante la conversión, usa la propiedad PaperSize dentro de la clase ImageToPdfConverter para seleccionar un tamaño estándar como Carta o A4.

¿Es posible imprimir un documento PDF creado con IronPDF?

Sí, IronPDF incluye un método Print dentro de la clase PdfDocument que te permite imprimir documentos PDF utilizando configuraciones de impresora predeterminadas o especificadas.

¿Qué características adicionales ofrece IronPDF?

IronPDF proporciona características adicionales como generar PDFs desde URLs, encriptar y desencriptar PDFs, fusionar archivos PDF y crear y editar formularios PDF.

¿Cómo instalo IronPDF en un proyecto de Visual Studio?

Para instalar IronPDF en un proyecto de Visual Studio, abre la Consola de Administrador de Paquetes y ejecuta el comando Install-Package IronPDF.

¿Cuáles son las ventajas de usar IronPDF para la generación de PDFs?

IronPDF ofrece una API simple, eficiente y bien documentada para la generación de PDFs sin depender de APIs propietarias. También proporciona soporte profesional y maneja varias tareas de PDF de manera efectiva.

¿IronPDF es compatible con .NET 10 y cómo lo uso para la conversión de imágenes a PDF en un proyecto .NET 10?

Sí. IronPDF es totalmente compatible con .NET 10 y permite convertir imágenes a PDF en proyectos .NET 10 de forma predeterminada. Para usarlo, instale el paquete NuGet IronPDF en su proyecto .NET 10 y, a continuación, invoque métodos como ImageToPdfConverter.ImageToPdf("path/to/image.png") para convertir una sola imagen, o pase un IEnumerable de rutas de imagen para convertir varias imágenes. También puede especificar opciones como ImageBehavior o de renderizado mediante ChromePdfRenderOptions para personalizarlo. Esto funciona igual que en versiones anteriores de .NET.

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me