Text Control frente a IronPDF: Guía de comparación técnica
TextControl vs IronPDF: Una comparación técnica para la generación de PDF .NET
Cuando los desarrolladores de .NET evalúan las bibliotecas de generación de PDF, dos soluciones surgen con frecuencia en los debates empresariales: Control de texto TXe IronPDF. Aunque ambas pueden producir archivos PDF, representan filosofías arquitectónicas fundamentalmente diferentes. Esta comparación técnica examina ambas bibliotecas para ayudar a arquitectos y desarrolladores a tomar decisiones informadas para sus aplicaciones .NET.
Entendiendo TX Text Control
TX Text Control es un completo componente editor de documentos que hace hincapié en las capacidades de edición DOCX con controles de interfaz de usuario integrados. La generación de PDF es una función secundaria dentro de su arquitectura más amplia de procesamiento de documentos. La plataforma ofrece amplias funciones de edición de documentos, por lo que es adecuada para aplicaciones que requieren interfaces de edición de texto enriquecido.
Sin embargo, esta naturaleza exhaustiva introduce consideraciones que los equipos de desarrollo deben evaluar cuidadosamente:
- Licencia cara: Control de texto TXfunciona con una licencia comercial a partir de 3.398 $ por desarrollador, con renovaciones anuales obligatorias del 40 % para mantener el acceso a las actualizaciones
- PDF como función secundaria: La arquitectura central da prioridad al procesamiento de textos sobre la generación de PDF, tratando la salida de PDF como una capacidad adicional
- Problemas de hardware conocidos: Los errores documentados de renderización de gráficos Intel Iris Xe que afectan a los procesadores Intel de 11ª generación requieren soluciones de registro
- Dependencias flotantes: incluye componentes de interfaz de usuario de edición de documentos que pueden ser innecesarios para flujos de trabajo centrados en PDF
- API compleja: Requiere la gestión del contexto ServerTextControl y patrones de modelo de selección
Entendiendo IronPDF
IronPDF adopta un enfoque fundamentalmente diferente al centrarse principalmente en la generación de PDF sin superponer componentes de interfaz de usuario ni herramientas de edición DOCX. La biblioteca destaca por su diseño esbelto y adaptado, optimizado específicamente para la generación y manipulación de PDF, lo que la convierte en una herramienta de arquitectura PDF-first muy eficaz.
Las principales características de IronPDF son:
- Arquitectura PDF-First: Diseñada desde cero para la generación de PDF, ofrece sólidas capacidades de creación y renderización de documentos
- Motor de renderizado Chromium: Aprovecha los modernos estándares HTML5 y CSS3 con total compatibilidad con la ejecución de JavaScript
- Eficiencia de costes: El modelo de licencia única elimina los costes continuos de suscripción
- Estabilidad probada: Fiabilidad documentada en diversas configuraciones de hardware, evitando problemas de renderización específicos de cada plataforma
- Integración sencilla: No requiere gestión de contextos ni complejos patrones de inicialización
Comparación de precios
Las estructuras de licencias entre TextControl eIronPDFrevelan importantes diferencias de costes a lo largo del tiempo:
| Aspecto | Control de texto TX | IronPDF |
|---|---|---|
| Licencia base | $3,398+ por desarrollador | 749 $ una sola vez por desarrollador |
| Renovación anual | 40% obligatorio | Asistencia opcional |
| Equipo de 4 personas (Año 1) | ~$6,749 | ~$2,996 |
| Coste total de 3 años | más de 5.750 $ por desarrollador | 749 $ por desarrollador |
| Componentes de interfaz de usuario | Paquetes (hinchazón potencial) | Sólo para PDF |
| Tiempo de ejecución del servidor | Licencias adicionales | Se incluye |
Comparación de características
La siguiente tabla destaca las diferencias técnicas entre TextControl eIronPDFen las dimensiones clave:
| Característica | Control de texto TX | IronPDF |
|---|---|---|
| Enfoque principal | Edición DOCX | Generación de PDF |
| Calidad del PDF | Función básica y complementaria | Funciones principales |
| HTML a PDF | Sí (secundario) | Sí (principal) |
| Soporte CSS | Limitado | CSS3 completo |
| Ejecución de JavaScript | Limitado | ES2024 completo |
| URL a PDF | Requiere una configuración compleja | Soporte nativo |
| Cabeceras/Pies de página | API complejas | Basado en HTML sencillo |
| Mail Merge | Sistema propietario | Plantillas HTML |
| Cumplimiento de PDF/A | Sí | Sí |
| Protección de contraseñas | Sí | Sí |
| Firmas digitales | Sí | Sí |
| Fusionar PDF | Limitado | Soporte completo |
| Dividir PDF | Limitado | Soporte completo |
| Marcas de agua | Implementación compleja | HTML/CSS sencillo |
| Compatibilidad de hardware | Problemas conocidos de Intel Iris | Estable en todos los dispositivos |
| Gestión de contextos | Requerido | No es necesario |
| Traducción multiplataforma | Centrado en Windows | Sí |
Diferencias en la arquitectura de las API
Una diferencia fundamental entre TextControl eIronPDFradica en sus filosofías de diseño de API y patrones de inicialización.
Enfoque de TextControl
TextControl requiere una gestión explícita del contexto a través de la clase ServerTextControl. Cada operación debe ocurrir dentro de un bloque using después de llamar a Create():
// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
textControl.Load(html, StreamType.HTMLFormat);
textControl.Save("output.pdf", StreamType.AdobePDF);
}
}
}
}// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
textControl.Load(html, StreamType.HTMLFormat);
textControl.Save("output.pdf", StreamType.AdobePDF);
}
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comEste patrón requiere comprender las clases específicas de TextControl, los tipos de flujo y el ciclo de vida del contexto.
Enfoque IronPDF
IronPDF elimina por completo la gestión del contexto. La clase ChromePdfRenderer proporciona una API sin estado que los desarrolladores pueden utilizar inmediatamente:
// NuGet: Install-Package IronPdf
using IronPdf;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
}// NuGet: Install-Package IronPdf
using IronPdf;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comPara obtener una orientación completa sobre las capacidades de conversión de HTML, consulte el Tutorial de HTML a PDF.
Referencia de mapeo de API
Los equipos que evalúen una transición de TextControl aIronPDFencontrarán útil este mapeo para comprender las equivalencias de conceptos:
| Control de texto TX | IronPDF | Notas |
|---|---|---|
| <código>ServerTextControl.Create()</código | <código>new ChromePdfRenderer()</código | No es necesario gestionar el contexto |
| <código>tx.Load(html, StreamType.HTMLFormat)</código | renderer.RenderHtmlAsPdf(html) | Traducción directa |
| <código>tx.Load(url, StreamType.HTMLFormat)</código | <código>renderer.RenderUrlAsPdf(url)</código | Compatibilidad con URL nativas |
| <código>tx.Save(path, StreamType.AdobePDF)</código | <código>pdf.SaveAs(ruta)</código | Operación de guardado sencilla |
| <código>SaveSettings.PDFAConformance</código | <código>RenderingOptions.PdfAFormat</código | Conformidad con PDF/A |
| <código>DocumentServer.MailMerge</código | Plantillas HTML + Razor | Fusión de plantillas |
| <código>DocumentTarget.HeadersAndFooters</código | <código>HtmlHeaderFooter</código | Encabezados/pies de página |
Configuración de carga | <código>RenderingOptions</código | Configuración |
Tipo de flujo.AdobePDF | Resultados por defecto | El formato principal es PDF |
Fusión de documentos PDF
La fusión de documentos representa un requisito común en el que la complejidad de la implementación difiere entre las dos bibliotecas.
Implementación de TextControl
TextControl requiere la carga secuencial de documentos con banderas explícitas de modo append:
// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
byte[] pdf1 = File.ReadAllBytes("document1.pdf");
textControl.Load(pdf1, StreamType.AdobePDF);
byte[] pdf2 = File.ReadAllBytes("document2.pdf");
textControl.Load(pdf2, StreamType.AdobePDF, LoadAppendMode.Append);
textControl.Save("merged.pdf", StreamType.AdobePDF);
}
}
}
}// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
byte[] pdf1 = File.ReadAllBytes("document1.pdf");
textControl.Load(pdf1, StreamType.AdobePDF);
byte[] pdf2 = File.ReadAllBytes("document2.pdf");
textControl.Load(pdf2, StreamType.AdobePDF, LoadAppendMode.Append);
textControl.Save("merged.pdf", StreamType.AdobePDF);
}
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comImplementación de IronPDF
IronPDF proporciona un método estático dedicado para la fusión que acepta múltiples documentos:
// NuGet: Install-Package IronPdf
using IronPdf;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}
}// NuGet: Install-Package IronPdf
using IronPdf;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comEl método PdfDocument.Merge acepta cualquier número de documentos y devuelve un nuevo PDF combinado sin necesidad de gestión de contexto ni de manipulación manual de matrices de bytes.
Cabeceras, pies de página y numeración de páginas
La adición de encabezados y pies de página con números de página dinámicos demuestra diferencias significativas en la complejidad de las API.
Implementación de TextControl
TextControl requiere una manipulación de encabezado/pie de página basada en secciones con declaraciones de tipo explícitas:
// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";
textControl.Load(html, StreamType.HTMLFormat);
HeaderFooter header = new HeaderFooter(HeaderFooterType.Header);
header.Text = "Document Header";
textControl.Sections[0].HeadersAndFooters.Add(header);
HeaderFooter footer = new HeaderFooter(HeaderFooterType.Footer);
footer.Text = "Page {page} of {numpages}";
textControl.Sections[0].HeadersAndFooters.Add(footer);
textControl.Save("output.pdf", StreamType.AdobePDF);
}
}
}
}// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";
textControl.Load(html, StreamType.HTMLFormat);
HeaderFooter header = new HeaderFooter(HeaderFooterType.Header);
header.Text = "Document Header";
textControl.Sections[0].HeadersAndFooters.Add(header);
HeaderFooter footer = new HeaderFooter(HeaderFooterType.Footer);
footer.Text = "Page {page} of {numpages}";
textControl.Sections[0].HeadersAndFooters.Add(footer);
textControl.Save("output.pdf", StreamType.AdobePDF);
}
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comImplementación de IronPDF
IronPDF ofrece métodos simplificados para añadir encabezados y pies de página basados en texto:
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.AddTextHeader("Document Header");
pdf.AddTextFooter("Page {page} of {total-pages}");
pdf.SaveAs("output.pdf");
}
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.AddTextHeader("Document Header");
pdf.AddTextFooter("Page {page} of {total-pages}");
pdf.SaveAs("output.pdf");
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comPara diseños de encabezado más complejos,IronPDFtambién admite la clase HtmlHeaderFooter que acepta estilos HTML y CSS completos:
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
HtmlFragment = @"
<div style='width: 100%; text-align: center; font-size: 12pt;'>
Company Report
</div>",
MaxHeight = 30
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = @"
<div style='width: 100%; text-align: right; font-size: 10pt;'>
Page {page} of {total-pages}
</div>",
MaxHeight = 25
};renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
HtmlFragment = @"
<div style='width: 100%; text-align: center; font-size: 12pt;'>
Company Report
</div>",
MaxHeight = 30
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = @"
<div style='width: 100%; text-align: right; font-size: 10pt;'>
Page {page} of {total-pages}
</div>",
MaxHeight = 25
};IRON VB CONVERTER ERROR developers@ironsoftware.comConversión de URL a PDF
La conversión de páginas web en PDF revela diferencias arquitectónicas en la forma en que cada biblioteca gestiona el contenido web.
Enfoque de TextControl
TextControl requiere la carga manual de URL a través de su manejador de formato HTML, que proporciona un soporte limitado de CSS y JavaScript:
using (ServerTextControl tx = new ServerTextControl())
{
tx.Create();
LoadSettings loadSettings = new LoadSettings();
loadSettings.ApplicationFieldFormat = ApplicationFieldFormat.MSWord;
tx.Load("https://example.com/invoice", StreamType.HTMLFormat, loadSettings);
SaveSettings saveSettings = new SaveSettings();
saveSettings.PDFAConformance = PDFAConformance.PDFa1b;
tx.Save("output.pdf", StreamType.AdobePDF, saveSettings);
}using (ServerTextControl tx = new ServerTextControl())
{
tx.Create();
LoadSettings loadSettings = new LoadSettings();
loadSettings.ApplicationFieldFormat = ApplicationFieldFormat.MSWord;
tx.Load("https://example.com/invoice", StreamType.HTMLFormat, loadSettings);
SaveSettings saveSettings = new SaveSettings();
saveSettings.PDFAConformance = PDFAConformance.PDFa1b;
tx.Save("output.pdf", StreamType.AdobePDF, saveSettings);
}IRON VB CONVERTER ERROR developers@ironsoftware.comEnfoque IronPDF
IronPDF proporciona renderizado nativo de URL a través de su motor Chromium, ejecutando JavaScript y aplicando todos los estilos:
var renderer = new ChromePdfRenderer();
// Conformidad con PDF/A- simple property
renderer.RenderingOptions.PdfAFormat = PdfAVersions.PdfA1B;
var pdf = renderer.RenderUrlAsPdf("https://example.com/invoice");
pdf.SaveAs("output.pdf");var renderer = new ChromePdfRenderer();
// Conformidad con PDF/A- simple property
renderer.RenderingOptions.PdfAFormat = PdfAVersions.PdfA1B;
var pdf = renderer.RenderUrlAsPdf("https://example.com/invoice");
pdf.SaveAs("output.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comEl método RenderUrlAsPdf captura la página renderizada completa, incluido el contenido generado dinámicamente, por lo que es ideal para aplicaciones web modernas creadas con marcos como React, Angular o Vue.js.
Ajustes y configuración de la página
Configurar las dimensiones, los márgenes y la orientación de las páginas muestra distintos enfoques de la configuración de los documentos.
Implementación de TextControl
TextControl utiliza ajustes de página basados en secciones con medidas en TWIPS:
using (ServerTextControl tx = new ServerTextControl())
{
tx.Create();
tx.Load(html, StreamType.HTMLFormat);
// Complex page settings through sections
foreach (Section section in tx.Sections)
{
section.Format.PageSize = PageSize.A4;
section.Format.PageMargins = new PageMargins(
1440, 1440, 1440, 1440); // TWIPS
section.Format.Landscape = true;
}
tx.Save("output.pdf", StreamType.AdobePDF);
}using (ServerTextControl tx = new ServerTextControl())
{
tx.Create();
tx.Load(html, StreamType.HTMLFormat);
// Complex page settings through sections
foreach (Section section in tx.Sections)
{
section.Format.PageSize = PageSize.A4;
section.Format.PageMargins = new PageMargins(
1440, 1440, 1440, 1440); // TWIPS
section.Format.Landscape = true;
}
tx.Save("output.pdf", StreamType.AdobePDF);
}IRON VB CONVERTER ERROR developers@ironsoftware.comImplementación de IronPDF
IronPDF centraliza los ajustes de página en las RenderingOptions con mediciones intuitivas basadas en milímetros:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 25; // mm
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 25;
renderer.RenderingOptions.MarginRight = 25;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 25; // mm
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 25;
renderer.RenderingOptions.MarginRight = 25;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comProtección y seguridad de contraseñas
Ambas bibliotecas admiten funciones de seguridad de PDF, pero con diferentes patrones de API.
Implementación de TextControl
using (ServerTextControl tx = new ServerTextControl())
{
tx.Create();
tx.Load(html, StreamType.HTMLFormat);
SaveSettings saveSettings = new SaveSettings();
saveSettings.UserPassword = "user123";
saveSettings.MasterPassword = "owner456";
tx.Save("protected.pdf", StreamType.AdobePDF, saveSettings);
}using (ServerTextControl tx = new ServerTextControl())
{
tx.Create();
tx.Load(html, StreamType.HTMLFormat);
SaveSettings saveSettings = new SaveSettings();
saveSettings.UserPassword = "user123";
saveSettings.MasterPassword = "owner456";
tx.Save("protected.pdf", StreamType.AdobePDF, saveSettings);
}IRON VB CONVERTER ERROR developers@ironsoftware.comImplementación de IronPDF
IronPDF proporciona un control de seguridad granular a través de la propiedad SecuritySettings:
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("protected.pdf");var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("protected.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comCuándo los equipos consideran alternativas a TextControl
Hay varias situaciones que suelen llevar a los equipos de desarrollo a evaluar alternativas a TextControl:
Optimización de costes
Con una licencia de TextControl a partir de 3.398 $ por desarrollador y renovaciones anuales obligatorias del 40 %, el coste total de propiedad de tres años asciende a 5.750 $ por desarrollador. Los equipos centrados principalmente en la generación de PDF a menudo encuentran este precio difícil de justificar cuando existen alternativas a puntos de coste significativamente más bajos.
Preocupaciones de compatibilidad de hardware
El error documentado de los gráficos Intel Iris Xe que afecta a la 11ª generación de procesadores Intel requiere soluciones de registro para las implementaciones de TextControl. El renderizado basado en Chromium deIronPDFelimina por completo estos problemas de renderizado específicos del hardware.
Requisitos para PDF-First
Cuando el caso de uso principal es la generación de PDF en lugar de la edición de documentos, la arquitectura del procesador de textos de TextControl introduce una complejidad innecesaria. Las aplicaciones que no requieren funciones de edición de DOCX ni controles de interfaz de usuario integrados se benefician del diseño centrado en PDF de IronPDF.
Integración de tecnología web moderna
La limitada compatibilidad de TextControl con CSS y JavaScript plantea problemas a las aplicaciones que utilizan marcos de trabajo frontales contemporáneos. La compatibilidad total deIronPDFcon HTML5, CSS3 y JavaScript ES2024 garantiza una representación precisa del contenido web moderno.
Despliegue simplificado
La gestión del contexto ServerTextControl de TextControl y las dependencias de los componentes de la interfaz de usuario aumentan la complejidad de la implementación.IronPDFfunciona como un paquete NuGet autónomo sin dependencias externas ni complejos patrones de inicialización.
Alternativas a las plantillas y a la combinación de correspondencia
El sistema de combinación de correspondencia de TextControl utiliza plantillas DOCX con campos de combinación.IronPDFsustituye esto por enfoques de plantillas HTML estándar:
// Use standard C# string interpolation
var data = new { CustomerName = "John Doe", InvoiceNumber = "12345", Total = "$1,500.00" };
var html = $@"
<html>
<head>
<style>
body {{ font-family: Arial; padding: 40px; }}
h1 {{ color: #333; }}
.total {{ font-size: 24px; color: green; }}
</style>
</head>
<body>
<h1>Invoice #{data.InvoiceNumber}</h1>
<p>Customer: {data.CustomerName}</p>
<p class='total'>Total: {data.Total}</p>
</body>
</html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");// Use standard C# string interpolation
var data = new { CustomerName = "John Doe", InvoiceNumber = "12345", Total = "$1,500.00" };
var html = $@"
<html>
<head>
<style>
body {{ font-family: Arial; padding: 40px; }}
h1 {{ color: #333; }}
.total {{ font-size: 24px; color: green; }}
</style>
</head>
<body>
<h1>Invoice #{data.InvoiceNumber}</h1>
<p>Customer: {data.CustomerName}</p>
<p class='total'>Total: {data.Total}</p>
</body>
</html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comPara escenarios de creación de plantillas más complejos,IronPDFse integra con motores Razor y otros marcos de creación de plantillas. Consulte la Guía de integración de plantillas Razor para obtener patrones de implementación detallados.
Compatibilidad con .NET y preparación para el futuro
Ambas bibliotecas son compatibles con las implementaciones actuales de .NET.IronPDFmantiene un desarrollo activo con actualizaciones periódicas, garantizando la compatibilidad con .NET 8, .NET 9 y futuras versiones, incluida .NET 10, prevista para 2026. La compatibilidad de la biblioteca con async/await en toda su API se ajusta a las prácticas modernas de desarrollo de C#, incluidas las funciones disponibles en C# 13 y las capacidades previstas de C# 14.
Funciones adicionales de PDF
Además de la generación,IronPDFofrece funciones de manipulación de documentos que amplían su utilidad:
- Fusión de PDF: Combina varios documentos en un único archivo
- Dividir documentos: Extraer intervalos de páginas en PDF separados
- Firmas digitales: Aplicar firmas criptográficas para la autenticidad de los documentos
- Marcas de agua: Añade marcas de agua de texto o imagen a través de HTML/CSS
- Cumplimiento de PDF/A: Genere documentos con estándares de archivo
- Relleno de formularios: Rellenar campos de formularios PDF de forma programática
Conclusión
TX Text Control eIronPDFtienen objetivos diferentes, aunque ambos producen archivos PDF. TextControl destaca como editor de documentos completo con manipulación DOCX y controles de interfaz de usuario integrados, ideal para aplicaciones que requieren interfaces de edición de texto enriquecidas junto con funciones de exportación de documentos.
IronPDF se centra específicamente en la generación de PDF a partir de HTML y contenido web, proporcionando una solución racionalizada para los desarrolladores que necesitan convertir HTML, URL o contenido generado dinámicamente a PDF sin la sobrecarga de una infraestructura completa de edición de documentos. Su renderizado basado en Chromium garantiza un resultado perfecto en cuanto a píxeles que coincide con la visualización del navegador, mientras que el diseño de su API prioriza la simplicidad y la integración con los flujos de trabajo de desarrollo web estándar.
La elección entre ellas depende de los requisitos del proyecto: TextControl se decanta por la edición completa de documentos con exportación a PDF, mientras queIronPDFes más adecuado para la generación directa de PDF a partir de contenido web. Para los equipos que actualmente utilizan TextControl principalmente para la generación de PDF, la evaluación deIronPDFpuede revelar oportunidades para una reducción significativa de costes y una implementación simplificada sin sacrificar la calidad del PDF.
Para obtener más información sobre la implementación, consulte la documentación de IronPDF y los tutoriales que cubren casos de uso específicos y funciones avanzadas.