Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Humanizer es una biblioteca .NET potente y flexible que simplifica y humaniza el proceso de trabajar con datos, especialmente cuando se trata de mostrar la información en un formato fácil de usar. Si necesita convertir fechas en cadenas de tiempo relativas("hace 3 días")para convertir cadenas de entrada deshumanizadas en frases, pluralizar palabras, formatear números como palabras o trabajar con enums, mostrar cadenas, convertir cadenas de entrada Pascal case en frases con descripciones personalizadas, convertir cadenas de entrada subrayadas en cadenas normales title case y truncar texto largo, Humanizer proporciona una plétora de herramientas y métodos de extensión para manejar estas tareas con elegancia en C#.NET para convertir cadenas de entrada deshumanizadas en frases.
En este artículo, vamos a discutir un tutorial detallado de Humanizer en C#. También discutiremos cómo generar documentos PDF utilizando Humanizer y IronPDF para C# PDF Library.
Para empezar a utilizar Humanizer, es necesario instalar la biblioteca a través de NuGet. En su proyecto, puede hacerlo a través de la consola del gestor de paquetes con el siguiente comando:
Install-Package Humanizer
Install-Package Humanizer
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package Humanizer
Como alternativa, si utiliza la CLI de .NET Core, puede añadir Humanizer con:
dotnet add package Humanizer
Tras la instalación, puede empezar a utilizar Humanizer incluyendo el espacio de nombres adecuado en sus archivos de C#:
using Humanizer;
using Humanizer;
Imports Humanizer
Uno de los usos más comunes de Humanizer es convertir fechas y horas en formatos legibles por humanos, intervalos de tiempo, números y cantidades utilizando el método Humanize
. Esto resulta especialmente útil para mostrar tiempos relativos, como "hace 2 horas" o "dentro de 5 días".
DateTime pastDate = DateTime.Now.AddDays(-3);
string humanizedTime = pastDate.Humanize(); // Output: "3 days ago"
DateTime futureDate = DateTime.Now.AddHours(5);
string futureHumanizedTime = futureDate.Humanize(); // Output: "in 5 hours"
DateTime pastDate = DateTime.Now.AddDays(-3);
string humanizedTime = pastDate.Humanize(); // Output: "3 days ago"
DateTime futureDate = DateTime.Now.AddHours(5);
string futureHumanizedTime = futureDate.Humanize(); // Output: "in 5 hours"
Dim pastDate As DateTime = DateTime.Now.AddDays(-3)
Dim humanizedTime As String = pastDate.Humanize() ' Output: "3 days ago"
Dim futureDate As DateTime = DateTime.Now.AddHours(5)
Dim futureHumanizedTime As String = futureDate.Humanize() ' Output: "in 5 hours"
El método de ampliación Humanizer maneja automáticamente diferentes unidades de tiempo e incluso se ajusta a la corrección gramatical.
Humanizer también puede humanizar objetos TimeSpan
, facilitando la visualización de duraciones en un formato legible.
TimeSpan timeSpan = TimeSpan.FromMinutes(123);
string humanizedTimeSpan = timeSpan.Humanize(2); // Output: "2 hours, 3 minutes"
TimeSpan timeSpan = TimeSpan.FromMinutes(123);
string humanizedTimeSpan = timeSpan.Humanize(2); // Output: "2 hours, 3 minutes"
Dim timeSpan As TimeSpan = System.TimeSpan.FromMinutes(123)
Dim humanizedTimeSpan As String = timeSpan.Humanize(2) ' Output: "2 hours, 3 minutes"
Humanizer ofrece varios métodos para convertir números en palabras legibles y para tratar números ordinales.
int number = 123;
string words = number.ToWords(); // Output: "one hundred and twenty-three"
int number = 123;
string words = number.ToWords(); // Output: "one hundred and twenty-three"
Dim number As Integer = 123
Dim words As String = number.ToWords() ' Output: "one hundred and twenty-three"
int number = 21;
string ordinal = number.ToOrdinalWords(); // Output: "twenty-first"
int number = 21;
string ordinal = number.ToOrdinalWords(); // Output: "twenty-first"
Dim number As Integer = 21
Dim ordinal As String = number.ToOrdinalWords() ' Output: "twenty-first"
Humanizer facilita la conversión de palabras entre sus formas singular y plural, lo que resulta útil para generar dinámicamente textos largos en función de la cantidad.
string singular = "car";
string plural = singular.Pluralize(); // Output: "cars"
string word = "people";
string singularForm = word.Singularize(); // Output: "person"
string singular = "car";
string plural = singular.Pluralize(); // Output: "cars"
string word = "people";
string singularForm = word.Singularize(); // Output: "person"
Dim singular As String = "car"
Dim plural As String = singular.Pluralize() ' Output: "cars"
Dim word As String = "people"
Dim singularForm As String = word.Singularize() ' Output: "person"
Humanizer maneja también pluralizaciones y singularizaciones irregulares, lo que lo hace robusto para diversos casos de uso.
Los Enums se utilizan con frecuencia en las aplicaciones de C# para representar un conjunto de constantes con nombre. Humanizer puede convertir valores enum en cadenas legibles por humanos.
MyEnum enumValue = MyEnum.FirstValue;
string humanizedEnum = enumValue.Humanize();
System.Console.WriteLine(humanizedEnum);
public enum MyEnum
{
FirstValue,
SecondValue
} // Output: "First value"
MyEnum enumValue = MyEnum.FirstValue;
string humanizedEnum = enumValue.Humanize();
System.Console.WriteLine(humanizedEnum);
public enum MyEnum
{
FirstValue,
SecondValue
} // Output: "First value"
Private enumValue As MyEnum = MyEnum.FirstValue
Private humanizedEnum As String = enumValue.Humanize()
System.Console.WriteLine(humanizedEnum)
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'public enum MyEnum
'{
' FirstValue,
' SecondValue
'} ' Output: "First value"
Este método puede ser especialmente útil para mostrar etiquetas fáciles de usar en las interfaces de usuario.
Otra función útil de Humanizer es la capacidad de humanizar los tamaños de bytes, convirtiendo los valores de bytes grandes en formatos legibles como KB, MB o GB.
long bytes = 1048576;
string humanizedBytes = bytes.Bytes().Humanize(); // Output: "1 MB"
long bytes = 1048576;
string humanizedBytes = bytes.Bytes().Humanize(); // Output: "1 MB"
Dim bytes As Long = 1048576
Dim humanizedBytes As String = bytes.Bytes().Humanize() ' Output: "1 MB"
Humanizer no se limita a los escenarios básicos descritos anteriormente. Admite una amplia gama de funciones avanzadas, como el método Truncate
y múltiples idiomas y extensiones.
Humanizer también puede manejar DateTimeOffset
, que es útil para aplicaciones que tratan con zonas horarias.
DateTimeOffset dateTimeOffset = DateTimeOffset.Now.AddDays(-2);
string humanizedDateTimeOffset = dateTimeOffset.Humanize(); // Output: "2 days ago"
DateTimeOffset dateTimeOffset = DateTimeOffset.Now.AddDays(-2);
string humanizedDateTimeOffset = dateTimeOffset.Humanize(); // Output: "2 days ago"
Dim dateTimeOffset As DateTimeOffset = System.DateTimeOffset.Now.AddDays(-2)
Dim humanizedDateTimeOffset As String = dateTimeOffset.Humanize() ' Output: "2 days ago"
Humanizer está diseñado para ser eficiente, pero como cualquier biblioteca, su rendimiento depende de cómo se utilice. Para las aplicaciones que requieren un alto rendimiento, especialmente las que tratan con grandes conjuntos de datos o procesamiento en tiempo real, es esencial tener en cuenta el impacto de las frecuentes operaciones de humanización.
IronPDF es una completa biblioteca de generación y manipulación de PDF para aplicaciones .NET. Permite a los desarrolladores crear, leer, editar y extraer contenido de archivos PDF con facilidad. IronPDF está diseñado para ser fácil de usar, ofreciendo una amplia gama de funcionalidades, incluyendo la conversión de HTML a PDF, la fusión de documentos, la adición de marcas de agua, y mucho más. Su versatilidad y sus potentes funciones lo convierten en una excelente opción para manejar documentos PDF en proyectos de C#.
Siga estos pasos para instalar IronPDF utilizando el gestor de paquetes NuGet:
Abra su proyecto en Visual Studio:
Abra el gestor de paquetes NuGet:
Haga clic con el botón derecho en su proyecto en el Explorador de soluciones.
Instalar IronPDF:
En el Gestor de paquetes NuGet, vaya a la pestaña "Examinar".
Búsqueda de IronPDF.
Seleccione el paquete IronPDF en los resultados de la búsqueda.
Siguiendo estos pasos, IronPDF estará instalado y listo para usar en su proyecto C#, permitiéndole aprovechar sus potentes capacidades de manipulación de PDF.
using Humanizer;
using IronPdf;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
List<string> content = GenerateHumanizedContent();
string htmlContent = "<h1>Humanizer Examples</h1><ul>";
// Iterate over each item in the List and add it to the HTML string
foreach (var item in content)
{
htmlContent += $"<li>{item}</li>";
}
htmlContent += "</ul>";
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Export to a file or stream
pdf.SaveAs("output.pdf");
}
static List<string> GenerateHumanizedContent()
{
List<string> content = new List<string>();
// DateTime examples
DateTime pastDate = DateTime.Now.AddDays(-3);
DateTime futureDate = DateTime.Now.AddHours(5);
content.Add($"DateTime.Now: {DateTime.Now}");
content.Add($"3 days ago: {pastDate.Humanize()}");
content.Add($"In 5 hours: {futureDate.Humanize()}");
// TimeSpan examples
TimeSpan timeSpan = TimeSpan.FromMinutes(123);
content.Add($"TimeSpan of 123 minutes: {timeSpan.Humanize()}");
// Number examples
int number = 12345;
content.Add($"Number 12345 in words: {number.ToWords()}");
content.Add($"Ordinal of 21: {21.ToOrdinalWords()}");
// Pluralization examples
string singular = "car";
content.Add($"Plural of 'car': {singular.Pluralize()}");
string plural = "children";
content.Add($"Singular of 'children': {plural.Singularize()}");
// Byte size examples
long bytes = 1048576;
content.Add($"1,048,576 bytes: {bytes.Bytes().Humanize()}");
return content;
}
}
using Humanizer;
using IronPdf;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
List<string> content = GenerateHumanizedContent();
string htmlContent = "<h1>Humanizer Examples</h1><ul>";
// Iterate over each item in the List and add it to the HTML string
foreach (var item in content)
{
htmlContent += $"<li>{item}</li>";
}
htmlContent += "</ul>";
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Export to a file or stream
pdf.SaveAs("output.pdf");
}
static List<string> GenerateHumanizedContent()
{
List<string> content = new List<string>();
// DateTime examples
DateTime pastDate = DateTime.Now.AddDays(-3);
DateTime futureDate = DateTime.Now.AddHours(5);
content.Add($"DateTime.Now: {DateTime.Now}");
content.Add($"3 days ago: {pastDate.Humanize()}");
content.Add($"In 5 hours: {futureDate.Humanize()}");
// TimeSpan examples
TimeSpan timeSpan = TimeSpan.FromMinutes(123);
content.Add($"TimeSpan of 123 minutes: {timeSpan.Humanize()}");
// Number examples
int number = 12345;
content.Add($"Number 12345 in words: {number.ToWords()}");
content.Add($"Ordinal of 21: {21.ToOrdinalWords()}");
// Pluralization examples
string singular = "car";
content.Add($"Plural of 'car': {singular.Pluralize()}");
string plural = "children";
content.Add($"Singular of 'children': {plural.Singularize()}");
// Byte size examples
long bytes = 1048576;
content.Add($"1,048,576 bytes: {bytes.Bytes().Humanize()}");
return content;
}
}
Imports Humanizer
Imports IronPdf
Imports System
Imports System.Collections.Generic
Friend Class Program
Shared Sub Main()
' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()
Dim content As List(Of String) = GenerateHumanizedContent()
Dim htmlContent As String = "<h1>Humanizer Examples</h1><ul>"
' Iterate over each item in the List and add it to the HTML string
For Each item In content
htmlContent &= $"<li>{item}</li>"
Next item
htmlContent &= "</ul>"
' Create a PDF from an HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
' Export to a file or stream
pdf.SaveAs("output.pdf")
End Sub
Private Shared Function GenerateHumanizedContent() As List(Of String)
Dim content As New List(Of String)()
' DateTime examples
Dim pastDate As DateTime = DateTime.Now.AddDays(-3)
Dim futureDate As DateTime = DateTime.Now.AddHours(5)
content.Add($"DateTime.Now: {DateTime.Now}")
content.Add($"3 days ago: {pastDate.Humanize()}")
content.Add($"In 5 hours: {futureDate.Humanize()}")
' TimeSpan examples
Dim timeSpan As TimeSpan = System.TimeSpan.FromMinutes(123)
content.Add($"TimeSpan of 123 minutes: {timeSpan.Humanize()}")
' Number examples
Dim number As Integer = 12345
content.Add($"Number 12345 in words: {number.ToWords()}")
content.Add($"Ordinal of 21: {21.ToOrdinalWords()}")
' Pluralization examples
Dim singular As String = "car"
content.Add($"Plural of 'car': {singular.Pluralize()}")
Dim plural As String = "children"
content.Add($"Singular of 'children': {plural.Singularize()}")
' Byte size examples
Dim bytes As Long = 1048576
content.Add($"1,048,576 bytes: {bytes.Bytes().Humanize()}")
Return content
End Function
End Class
Humanizer es una biblioteca indispensable para los desarrolladores .NET que deseen crear aplicaciones que presenten la información en un formato legible y fácil de usar. Su amplia gama de funciones, desde la humanización de la fecha y la hora hasta el formato de números y enumeraciones, lo convierten en una herramienta versátil para mejorar la usabilidad de las aplicaciones. Gracias a Humanizer, los desarrolladores pueden ahorrar tiempo y esfuerzo a la hora de aplicar una lógica de formato personalizada, lo que garantiza que sus aplicaciones comuniquen los datos de forma más eficaz a los usuarios finales.
Del mismo modo, IronPDF ofrece completas funciones de generación y manipulación de PDF, lo que lo convierte en una excelente opción para crear y manipular documentos PDF en proyectos C#. Juntos, Humanizer e IronPDF pueden mejorar considerablemente la funcionalidad y presentación de las aplicaciones .NET. Para obtener más información sobre las licencias de IronPDF, consulte el documentoInformación sobre licencias de IronPDF. Para saber más, consulte nuestroTutorial detallado sobre la conversión de HTML a PDF.
9 productos API .NET para sus documentos de oficina