Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
En las aplicaciones modernas de .NET, generar PDFs dinámicamente es un requisito común. Ya sea que estés creando informes, facturas u otros documentos, tener una forma simplificada de generar condicionalmente diferentes formatos de PDF es esencial. Ensentencia switch (también conocido como Select Case en algunos lenguajes)en C# es una herramienta poderosa para implementar tal lógica de manera eficiente. El switch case tomará algún tipo de dato.(char, int, string, etc.), y compáralo con los valores de los casos para ver si alguno coincide. Si lo hacen, se ejecutará el código dentro de ese bloque caso; de lo contrario, se ejecutará el caso por defecto si los otros patrones de caso no coinciden.
IronPDFes una robusta biblioteca de generación y manipulación de PDF para desarrolladores .NET, que le permite convertir HTML, imágenes y diversos otros contenidos en PDFs. Al aprovechar la declaración switch de C# puedes personalizar tus archivos PDF según diferentes condiciones, como la entrada del usuario o el estado de los datos.
Este artículo te guiará sobre cómo usar la declaración Switch case en C# con IronPDF para crear contenido PDF dinámico y condicional con un buen nivel de control de flujo dentro del programa, lo cual en última instancia aumentará la eficiencia y legibilidad de tus programas.
En C#, la declaración switch(no confundirse con la expresión switch)proporciona una manera limpia y estructurada de manejar la lógica condicional basada en el valor de una variable. En lugar de usar múltiples declaraciones, como declaraciones if-else, las declaraciones switch case permiten un código más fácil de leer y mantener. La instrucción switch buscará una coincidencia de patrón para la expresión de coincidencia pasada a la instrucción, antes de ejecutar el código dentro del caso por defecto si no se encuentra ninguna coincidencia.
Aquí está la estructura básica de una declaración switch en C#:
switch (variable)
{
case value1:
// action for value1
break;
case value2:
// action for value2
break;
default:
// default action if no case matches
break;
}
switch (variable)
{
case value1:
// action for value1
break;
case value2:
// action for value2
break;
default:
// default action if no case matches
break;
}
Select Case variable
Case value1
' action for value1
Case value2
' action for value2
Case Else
' default action if no case matches
End Select
Cada caso representa un posible valor para la variable, y cuando se encuentra una coincidencia, se ejecuta el código dentro de ese bloque. Esto es particularmente útil cuando tienes múltiples resultados basados en una única variable, como determinar qué tipo de documento generar en un PDF.
Imagina que estás desarrollando un sistema donde se necesiten generar diferentes tipos de documentos dependiendo de la entrada del usuario. Por ejemplo, es posible que necesites crear un informe para un usuario y una factura para otro. Con la declaración switch de C#, puedes determinar fácilmente qué tipo de PDF generar usando IronPDF.
Aquí tienes un ejemplo de escenario: Basado en la selección de un usuario, puedes usar una declaración switch para decidir qué contenido HTML renderizar en un documento PDF, comparando la elección del usuario con el mismo tipo de valor de caso.
switch (userChoice)
{
case "report":
// Code to generate a report PDF using IronPDF
break;
case "invoice":
// Code to generate an invoice PDF using IronPDF
break;
default:
// Code to generate a default PDF document using IronPDF
break;
}
switch (userChoice)
{
case "report":
// Code to generate a report PDF using IronPDF
break;
case "invoice":
// Code to generate an invoice PDF using IronPDF
break;
default:
// Code to generate a default PDF document using IronPDF
break;
}
Select Case userChoice
Case "report"
' Code to generate a report PDF using IronPDF
Case "invoice"
' Code to generate an invoice PDF using IronPDF
Case Else
' Code to generate a default PDF document using IronPDF
End Select
En este ejemplo, el sistema puede generar múltiples tipos de documentos reutilizando las potentes capacidades de renderizado PDF de IronPDF, mientras simplifica la toma de decisiones utilizando la instrucción switch.
Vamos a ver cómo integrar el switch de C# con IronPDF para generar PDFs. Para este ejemplo, gestionaremos dos tipos de documentos: Informes y Facturas.
Instalar IronPDF: Primero necesitarás instalar IronPDF para comenzar a usarlo en tus proyectos.
Cree plantillas HTML para su informe y factura. Esto permite a IronPDF renderizar estas plantillas en un PDF.
Basado en la entrada del usuario(o cualquier otra variable), utiliza la declaración switch para determinar qué plantilla HTML usar y pásala a IronPDF para la generación del PDF.
Para empezar a utilizarIronPDF, primero necesitarás instalarlo. Si ya está instalado, puede pasar a la siguiente sección, de lo contrario, los siguientes pasos cubren cómo instalar la biblioteca IronPDF.
Ainstalar IronPDFusando la Consola del Administrador de Paquetes de NuGet, abre Visual Studio y navega a la Consola del Administrador de Paquetes. Luego ejecute el siguiente comando:
Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
Abriendo Visual Studio, vaya a "herramientas -> Administrador de paquetes NuGet -> Administrar paquetes NuGet para la solución" y busque IronPDF. Desde aquí, todo lo que necesitas hacer es seleccionar tu proyecto y hacer clic en "Instalar", y IronPDF se añadirá a tu proyecto.
Una vez que hayas instalado IronPDF, todo lo que necesitas agregar para comenzar a usar IronPDF es la declaración using correcta en la parte superior de tu código:
using IronPdf;
using IronPdf;
Imports IronPdf
Echemos un vistazo más de cerca a un caso de uso del mundo real. Supongamos que estás desarrollando un sistema para una empresa que necesita generar tanto informes como facturas para sus clientes. Dependiendo de lo que seleccione el usuario, puede renderizar contenido diferente en un PDF.
Generación de informes:
Cuando el usuario selecciona "Report", el sistema genera un PDF con contenido específico del informe. Usando plantillas HTML, puedes personalizar fácilmente la estructura del contenido.
case "Report":
string reportHtml = "<h1>Monthly Report</h1><p>This report provides a detailed overview of activities.</p>";
PdfDocument reportPdf = pdfRenderer.RenderHtmlAsPdf(reportHtml);
reportPdf.SaveAs("Monthly_Report.pdf");
break;
case "Report":
string reportHtml = "<h1>Monthly Report</h1><p>This report provides a detailed overview of activities.</p>";
PdfDocument reportPdf = pdfRenderer.RenderHtmlAsPdf(reportHtml);
reportPdf.SaveAs("Monthly_Report.pdf");
break;
Case "Report"
Dim reportHtml As String = "<h1>Monthly Report</h1><p>This report provides a detailed overview of activities.</p>"
Dim reportPdf As PdfDocument = pdfRenderer.RenderHtmlAsPdf(reportHtml)
reportPdf.SaveAs("Monthly_Report.pdf")
break
Generación de Facturas:
Para las facturas, puedes incluir información de facturación y listas detalladas dentro del HTML, que IronPDF convertirá en un PDF de alta calidad.
case "Invoice":
string invoiceHtml = "<h1>Invoice #12345</h1><p>Billing details and itemized list here.</p>";
PdfDocument invoicePdf = pdfRenderer.RenderHtmlAsPdf(invoiceHtml);
invoicePdf.SaveAs("Invoice_12345.pdf");
break;
case "Invoice":
string invoiceHtml = "<h1>Invoice #12345</h1><p>Billing details and itemized list here.</p>";
PdfDocument invoicePdf = pdfRenderer.RenderHtmlAsPdf(invoiceHtml);
invoicePdf.SaveAs("Invoice_12345.pdf");
break;
Case "Invoice"
Dim invoiceHtml As String = "<h1>Invoice #12345</h1><p>Billing details and itemized list here.</p>"
Dim invoicePdf As PdfDocument = pdfRenderer.RenderHtmlAsPdf(invoiceHtml)
invoicePdf.SaveAs("Invoice_12345.pdf")
break
Este enfoque garantiza que mantengas flexibilidad y reutilización en tu base de código, ya que puedes extender fácilmente la declaración switch para manejar tipos de documentos adicionales.
En el siguiente ejemplo de código, tomaremos la entrada del usuario para pasarla a la instrucción Switch y determinar qué PDF se generará.
using IronPdf;
using System;
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("What do you want to create?");
Console.WriteLine("a. Report");
Console.WriteLine("b. Invoice");
var input = Console.ReadLine();
string docType;
if (input == "a")
{
GeneratePdf("Report");
}
else if (input == "b")
{
GeneratePdf("Invoice");
}
else
{
GeneratePdf(null);
}
}
public static void GeneratePdf(string docType)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
switch (docType)
{
case "Report":
string reportHtml = "<h1>Report</h1><p>This is a dynamically generated report.</p>";
PdfDocument reportPdf = renderer.RenderHtmlAsPdf(reportHtml);
reportPdf.SaveAs("Report.pdf");
break;
case "Invoice":
string invoiceHtml = "<h1>Invoice</h1><p>This is a dynamically generated invoice.</p>";
PdfDocument invoicePdf = renderer.RenderHtmlAsPdf(invoiceHtml);
invoicePdf.SaveAs("Invoice.pdf");
break;
default:
string defaultHtml = "<h1>Document</h1><p>This is a default PDF document.</p>";
PdfDocument defaultPdf = renderer.RenderHtmlAsPdf(defaultHtml);
defaultPdf.SaveAs("Default.pdf");
break;
}
}
}
using IronPdf;
using System;
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("What do you want to create?");
Console.WriteLine("a. Report");
Console.WriteLine("b. Invoice");
var input = Console.ReadLine();
string docType;
if (input == "a")
{
GeneratePdf("Report");
}
else if (input == "b")
{
GeneratePdf("Invoice");
}
else
{
GeneratePdf(null);
}
}
public static void GeneratePdf(string docType)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
switch (docType)
{
case "Report":
string reportHtml = "<h1>Report</h1><p>This is a dynamically generated report.</p>";
PdfDocument reportPdf = renderer.RenderHtmlAsPdf(reportHtml);
reportPdf.SaveAs("Report.pdf");
break;
case "Invoice":
string invoiceHtml = "<h1>Invoice</h1><p>This is a dynamically generated invoice.</p>";
PdfDocument invoicePdf = renderer.RenderHtmlAsPdf(invoiceHtml);
invoicePdf.SaveAs("Invoice.pdf");
break;
default:
string defaultHtml = "<h1>Document</h1><p>This is a default PDF document.</p>";
PdfDocument defaultPdf = renderer.RenderHtmlAsPdf(defaultHtml);
defaultPdf.SaveAs("Default.pdf");
break;
}
}
}
Imports IronPdf
Imports System
Public Class Program
Public Shared Sub Main(ByVal args() As String)
Console.WriteLine("What do you want to create?")
Console.WriteLine("a. Report")
Console.WriteLine("b. Invoice")
Dim input = Console.ReadLine()
Dim docType As String
If input = "a" Then
GeneratePdf("Report")
ElseIf input = "b" Then
GeneratePdf("Invoice")
Else
GeneratePdf(Nothing)
End If
End Sub
Public Shared Sub GeneratePdf(ByVal docType As String)
Dim renderer As New ChromePdfRenderer()
Select Case docType
Case "Report"
Dim reportHtml As String = "<h1>Report</h1><p>This is a dynamically generated report.</p>"
Dim reportPdf As PdfDocument = renderer.RenderHtmlAsPdf(reportHtml)
reportPdf.SaveAs("Report.pdf")
Case "Invoice"
Dim invoiceHtml As String = "<h1>Invoice</h1><p>This is a dynamically generated invoice.</p>"
Dim invoicePdf As PdfDocument = renderer.RenderHtmlAsPdf(invoiceHtml)
invoicePdf.SaveAs("Invoice.pdf")
Case Else
Dim defaultHtml As String = "<h1>Document</h1><p>This is a default PDF document.</p>"
Dim defaultPdf As PdfDocument = renderer.RenderHtmlAsPdf(defaultHtml)
defaultPdf.SaveAs("Default.pdf")
End Select
End Sub
End Class
En este ejemplo, la declaración switch controla qué tipo de documento se genera. Si el docType es "Report", se creará un PDF de informe. Si es "Invoice", se generará una factura. Si no se encuentra ninguna coincidencia, se crea un PDF predeterminado en su lugar.
IronPDF se destaca por su capacidad para renderizar HTML, CSS, JavaScript e incluso contenido dinámico de C# directamente en PDFs. Al integrarlo con la declaración switch de C#, puedes simplificar tu proceso de generación de documentos, haciéndolo más eficiente y fácil de mantener.
Algunos beneficios clave de IronPDF incluyen:
Soporte multiplataforma: Funciona en .NET Core, .NET Framework y entornos de Azure.
Para obtener más información sobre el conjunto robusto de características que ofrece IronPDF, asegúrese de consultar su útilcómodisponible, puede explorar todas sus funciones sin riesgos antes de comprometerse.
Al aprovechar la declaración switch case en C# y IronPDF, puedes crear documentos PDF dinámicos y personalizables con un esfuerzo mínimo. Ya sea que necesite generar informes, facturas u otros tipos de documentos, esta combinación ofrece flexibilidad y eficiencia. El uso de declaraciones como una declaración if funciona bien si estás procesando solo uno o dos resultados potenciales, pero las declaraciones switch pueden mejorar enormemente la claridad de tu código cuando trabajas con múltiples resultados.
Utilizar el bloque de switch para generar diferentes tipos de PDF es una excelente manera de aprovechar IronPDF a un nivel completamente nuevo. Con un amplio conjunto de funciones avanzadas, gran rendimiento y compatibilidad multiplataforma, IronPDF es una poderosa herramienta de generación de PDF para tener a tu disposición. No solo confíe en nuestra palabra—descargue el prueba gratuitahoy mismo y comprueba por ti mismo cómo puede optimizar tus flujos de trabajo de PDF!
9 productos API .NET para sus documentos de oficina