Cómo migrar de VectSharp a IronPDF en C#
Migración de VectSharpa IronPDF: Una guía completa para desarrolladores de C
VectSharp se ha consolidado como una potente biblioteca de gráficos vectoriales en el ecosistema .NET, especialmente valorada para la visualización científica y las ilustraciones técnicas. Sin embargo, cuando los equipos de desarrollo necesitan generar documentos comerciales, informes, facturas o cualquier contenido basado en HTML, el paradigma de VectSharp, que da prioridad a los gráficos, crea una fricción significativa. La biblioteca está diseñada para científicos que crean figuras y gráficos, no para desarrolladores que generan documentos.
Esta guía proporciona una ruta de migración completa de VectSharpa IronPDF, con instrucciones paso a paso, comparaciones de código y ejemplos prácticos para desarrolladores .NET profesionales que estén evaluando esta transición.
Por qué migrar de VectSharp
VectSharp es una biblioteca de visualización científica y gráficos vectoriales diseñada para crear diagramas, gráficos e ilustraciones técnicas. No está diseñado para generar documentos, sino que es una biblioteca de dibujo que produce PDF. Entre las principales razones por las que los equipos de desarrollo se plantean la migración se incluyen:
Enfoque científico únicamente: VectSharpestá diseñado para la visualización y el trazado de datos, no para documentos comerciales como facturas, informes o certificados.
Sin soporte HTML: VectSharpno puede convertir HTML o CSS a PDF. Cada elemento debe dibujarse manualmente utilizando comandos de gráficos vectoriales.
API basada en coordenadas: Cada elemento debe posicionarse con coordenadas X,Y exactas. No hay maquetación automática, flujo ni ajuste de texto.
Sin estilos CSS: Todo el estilo es programático a través de llamadas a métodos. Los desarrolladores web no pueden aprovechar sus conocimientos de CSS.
Sin JavaScript: VectSharpno puede renderizar contenido web dinámico, gráficos interactivos o visualizaciones basadas en JavaScript.
Sin maquetación de texto: El ajuste automático de texto, la paginación y el diseño de flujo no están disponibles. Los desarrolladores deben calcular manualmente las posiciones del texto y los saltos de página.
Paradigma Gráfico: La biblioteca está diseñada para diagramas, no para informes o facturas. La generación de documentos requiere mucho trabajo manual.
El problema principal: biblioteca de gráficos frente a generador de documentos
VectSharp requiere el dibujo manual de vectores para cada elemento:
// VectSharp: Manualvector drawing for every element
Page page = new Page(595, 842);
Graphics graphics = page.Graphics;
graphics.FillRectangle(50, 50, 200, 100, Colour.FromRgb(0, 0, 255));
graphics.FillText(60, 70, "Invoice", new Font(new FontFamily("Arial"), 20), Colours.White);
// ... continue drawing every single element manually// VectSharp: Manualvector drawing for every element
Page page = new Page(595, 842);
Graphics graphics = page.Graphics;
graphics.FillRectangle(50, 50, 200, 100, Colour.FromRgb(0, 0, 255));
graphics.FillText(60, 70, "Invoice", new Font(new FontFamily("Arial"), 20), Colours.White);
// ... continue drawing every single element manuallyIRON VB CONVERTER ERROR developers@ironsoftware.comIronPDF utiliza HTML, el formato de documento universal:
// IronPDF: Declarative HTML for document creation
var html = "<h1>Invoice</h1><p>Customer: Acme Corp</p>";
var pdf = renderer.RenderHtmlAsPdf(html);// IronPDF: Declarative HTML for document creation
var html = "<h1>Invoice</h1><p>Customer: Acme Corp</p>";
var pdf = renderer.RenderHtmlAsPdf(html);IRON VB CONVERTER ERROR developers@ironsoftware.comIronPDFvs VectSharp: Comparación de características
Comprender las diferencias arquitectónicas ayuda a los responsables técnicos a evaluar la inversión en migración:
| Característica | VectSharp | IronPDF |
|---|---|---|
| Uso principal | Gráficos vectoriales | Creación de documentos |
| Resultado PDF | Sí | Sí |
| Soporte HTML | No | Sí |
| Licencias | LGPL | Comercial |
| Código abierto | Sí | Parcialmente (características comerciales) |
| Mejor para | Visualizaciones científicas | Documentos PDF generales |
| Personalización | Limitado a gráficos | Amplia documentación |
| HTML a PDF | No | Chromium completo |
| URL a PDF | No | Sí |
| Soporte CSS | No | CSS3 completo |
| JavaScript | No | ES2024 completo |
| Diseño automático | No | Sí |
| Saltos de página automáticos | No | Sí |
| Envoltura de texto | Manual | Automático |
| Fusionar PDF | No | Sí |
| Dividir PDF | No | Sí |
| Protección de contraseñas | No | Sí |
| Firmas digitales | No | Sí |
| Curva de aprendizaje | Alto (coordenadas) | Bajo (HTML/CSS) |
| Verbosidad del código | Muy alto | Bajo |
Inicio rápido: Migración de VectSharpa IronPDF
La migración puede comenzar inmediatamente con estos pasos básicos.
Paso 1: Sustituir paquetes NuGet
Eliminar todos los paquetes de VectSharp:
# Remove VectSharppackages
dotnet remove package VectSharp
dotnet remove package VectSharp.PDF# Remove VectSharppackages
dotnet remove package VectSharp
dotnet remove package VectSharp.PDFInstalar IronPDF:
# Install IronPDF
dotnet add package IronPdf# Install IronPDF
dotnet add package IronPdfPaso 2: Actualizar los espacios de nombres
Sustituya los espacios de nombres VectSharppor el espacio de nombres IronPdf:
// Before (VectSharp)
using VectSharp;
using VectSharp.PDF;
// After (IronPDF)
using IronPdf;// Before (VectSharp)
using VectSharp;
using VectSharp.PDF;
// After (IronPDF)
using IronPdf;IRON VB CONVERTER ERROR developers@ironsoftware.comPaso 3: Inicializar licencia
Añadir inicialización de licencia al inicio de la aplicación:
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"Ejemplos de migración de código
Convertir HTML a PDF
VectSharp no admite la conversión de HTML a PDF. Esta diferencia fundamental de capacidades impulsa muchas decisiones de migración.
Enfoque de VectSharp:
// NuGet: Install-Package VectSharp.PDF
using VectSharp;
using VectSharp.PDF;
using VectSharp.SVG;
using System.IO;
class Program
{
static void Main()
{
// VectSharpdoesn't directly support HTML to PDF
// It requires manual creation of graphics objects
Document doc = new Document();
Page page = new Page(595, 842); // A4 size
Graphics graphics = page.Graphics;
graphics.FillText(100, 100, "Hello from VectSharp",
new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 24));
doc.Pages.Add(page);
doc.SaveAsPDF("output.pdf");
}
}// NuGet: Install-Package VectSharp.PDF
using VectSharp;
using VectSharp.PDF;
using VectSharp.SVG;
using System.IO;
class Program
{
static void Main()
{
// VectSharpdoesn't directly support HTML to PDF
// It requires manual creation of graphics objects
Document doc = new Document();
Page page = new Page(595, 842); // A4 size
Graphics graphics = page.Graphics;
graphics.FillText(100, 100, "Hello from VectSharp",
new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 24));
doc.Pages.Add(page);
doc.SaveAsPDF("output.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comEnfoque IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF</h1><p>This is HTML content.</p>");
pdf.SaveAs("output.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF</h1><p>This is HTML content.</p>");
pdf.SaveAs("output.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comVectSharp requiere la creación de un objeto Document, <código>Página</códigoy Gráficosy, a continuación, el posicionamiento manual del texto con coordenadas exactas y objetos de fuente.IronPDFrenderiza HTML directamente con soporte completo de estilos CSS.
Para situaciones avanzadas de conversión de HTML a PDF, consulte la Guía de conversión de HTML a PDF.
Creación de documentos de varias páginas
Los documentos de varias páginas revelan las diferencias arquitectónicas entre estas bibliotecas .NET PDF.
Enfoque de VectSharp:
// NuGet: Install-Package VectSharp.PDF
using VectSharp;
using VectSharp.PDF;
using System;
class Program
{
static void Main()
{
Document doc = new Document();
// Page 1
Page page1 = new Page(595, 842);
Graphics g1 = page1.Graphics;
g1.FillText(50, 50, "Page 1",
new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 24));
g1.FillText(50, 100, "First page content",
new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 14));
doc.Pages.Add(page1);
// Page 2
Page page2 = new Page(595, 842);
Graphics g2 = page2.Graphics;
g2.FillText(50, 50, "Page 2",
new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 24));
g2.FillText(50, 100, "Second page content",
new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 14));
doc.Pages.Add(page2);
doc.SaveAsPDF("multipage.pdf");
}
}// NuGet: Install-Package VectSharp.PDF
using VectSharp;
using VectSharp.PDF;
using System;
class Program
{
static void Main()
{
Document doc = new Document();
// Page 1
Page page1 = new Page(595, 842);
Graphics g1 = page1.Graphics;
g1.FillText(50, 50, "Page 1",
new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 24));
g1.FillText(50, 100, "First page content",
new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 14));
doc.Pages.Add(page1);
// Page 2
Page page2 = new Page(595, 842);
Graphics g2 = page2.Graphics;
g2.FillText(50, 50, "Page 2",
new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 24));
g2.FillText(50, 100, "Second page content",
new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 14));
doc.Pages.Add(page2);
doc.SaveAsPDF("multipage.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comEnfoque IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = @"
<h1>Page 1</h1>
<p>First page content</p>
<div style='page-break-after: always;'></div>
<h1>Page 2</h1>
<p>Second page content</p>
";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("multipage.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = @"
<h1>Page 1</h1>
<p>First page content</p>
<div style='page-break-after: always;'></div>
<h1>Page 2</h1>
<p>Second page content</p>
";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("multipage.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comVectSharp requiere crear objetos <código>Página</códigoindependientes, contextos Gráficosindependientes y posicionar manualmente cada elemento de texto con coordenadas y objetos de fuente para cada página.IronPDFutiliza una única cadena HTML con CSS page-break-after: always para crear automáticamente documentos de varias páginas.
Dibujar formas y texto
Las capacidades gráficas muestran dónde sobresale VectSharp, pero también dónde los estándares web proporcionan una funcionalidad equivalente con menos código.
Enfoque de VectSharp:
// NuGet: Install-Package VectSharp.PDF
using VectSharp;
using VectSharp.PDF;
using System;
class Program
{
static void Main()
{
Document doc = new Document();
Page page = new Page(595, 842);
Graphics graphics = page.Graphics;
// Draw rectangle
graphics.FillRectangle(50, 50, 200, 100, Colour.FromRgb(0, 0, 255));
// Draw circle
GraphicsPath circle = new GraphicsPath();
circle.Arc(400, 100, 50, 0, 2 * Math.PI);
graphics.FillPath(circle, Colour.FromRgb(255, 0, 0));
// Add text
graphics.FillText(50, 200, "VectSharp Graphics",
new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 20));
doc.Pages.Add(page);
doc.SaveAsPDF("shapes.pdf");
}
}// NuGet: Install-Package VectSharp.PDF
using VectSharp;
using VectSharp.PDF;
using System;
class Program
{
static void Main()
{
Document doc = new Document();
Page page = new Page(595, 842);
Graphics graphics = page.Graphics;
// Draw rectangle
graphics.FillRectangle(50, 50, 200, 100, Colour.FromRgb(0, 0, 255));
// Draw circle
GraphicsPath circle = new GraphicsPath();
circle.Arc(400, 100, 50, 0, 2 * Math.PI);
graphics.FillPath(circle, Colour.FromRgb(255, 0, 0));
// Add text
graphics.FillText(50, 200, "VectSharp Graphics",
new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 20));
doc.Pages.Add(page);
doc.SaveAsPDF("shapes.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comEnfoque IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = @"
<div style='width: 200px; height: 100px; background-color: blue; margin: 50px;'></div>
<div style='width: 100px; height: 100px; background-color: red;
border-radius: 50%; margin-left: 350px; margin-top: -50px;'></div>
<h2 style='margin-left: 50px;'>IronPDF Graphics</h2>
";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("shapes.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = @"
<div style='width: 200px; height: 100px; background-color: blue; margin: 50px;'></div>
<div style='width: 100px; height: 100px; background-color: red;
border-radius: 50%; margin-left: 350px; margin-top: -50px;'></div>
<h2 style='margin-left: 50px;'>IronPDF Graphics</h2>
";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("shapes.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comVectSharp requiere crear objetos GraphicsPath, llamar a Arc() con parámetros matemáticos precisos y gestionar colores mediante Colour.FromRgb().IronPDFutiliza propiedades CSS conocidas: color de fondo, borde-radio: 50% para los círculos y márgenes estándar.
Referencia de la API de VectSharpa IronPDF
Este mapeo acelera la migración al mostrar los equivalentes directos de las API:
| VectSharp | IronPDF | Notas |
|---|---|---|
Documento | <código>ChromePdfRenderer</código | Crear renderizador |
| <código>Página</código | Automático | Páginas creadas a partir de HTML |
Gráficos | HTML/CSS | Marcado declarativo |
| <código>graphics.FillRectangle()</código | CSS color de fondo en <div> | Cuadros HTML |
| <código>graphics.StrokeRectangle()</código | CSS border en <div> | Fronteras |
| <código>graphics.FillText()</código> | Elementos de texto HTML | <p>, <h1>, <span> |
| <código>graphics.StrokePath()</código> | Bordes SVG o CSS | Trazados vectoriales |
RutaGráfica | Elemento SVG <path> | Formas complejas |
Color.FromRgb() | Valores de color CSS | rgb(), #hex, named |
Font / FamiliaFont | CSS family | Fuentes web compatibles |
| <código>doc.SaveAsPDF()</código | <código>pdf.SaveAs()</código | Guardar en archivo |
| Tamaño de página manual | <código>RenderingOptions.PaperSize</código | O CSS @page |
Estrategias de migración
Estrategia 1: Convertir el código de dibujo a HTML/CSS
Sustituir el dibujo basado en coordenadas por elementos HTML:
// VectSharp
graphics.FillRectangle(100, 50, 300, 80, Colour.FromRgb(0, 102, 204));
graphics.FillText(110, 80, "Header", font, Colours.White);
//IronPDFHTML equivalent
<div style="
position: absolute;
left: 100px;
top: 50px;
width: 300px;
height: 80px;
background: rgb(0, 102, 204);
color: white;
padding: 10px;
">Header</div>// VectSharp
graphics.FillRectangle(100, 50, 300, 80, Colour.FromRgb(0, 102, 204));
graphics.FillText(110, 80, "Header", font, Colours.White);
//IronPDFHTML equivalent
<div style="
position: absolute;
left: 100px;
top: 50px;
width: 300px;
height: 80px;
background: rgb(0, 102, 204);
color: white;
padding: 10px;
">Header</div>IRON VB CONVERTER ERROR developers@ironsoftware.comEstrategia 2: Utilizar SVG para gráficos vectoriales
Para formas complejas, utilice SVG en línea en su HTML:
// VectSharppath
GraphicsPath path = new GraphicsPath();
path.MoveTo(100, 100);
path.LineTo(200, 50);
path.LineTo(300, 100);
path.Close();
graphics.FillPath(path, Colours.Blue);
//IronPDFSVG equivalent
<svg><polygon points="100,100 200,50 300,100" fill="blue"/></svg>// VectSharppath
GraphicsPath path = new GraphicsPath();
path.MoveTo(100, 100);
path.LineTo(200, 50);
path.LineTo(300, 100);
path.Close();
graphics.FillPath(path, Colours.Blue);
//IronPDFSVG equivalent
<svg><polygon points="100,100 200,50 300,100" fill="blue"/></svg>IRON VB CONVERTER ERROR developers@ironsoftware.comEstrategia 3: Utilizar bibliotecas de gráficos JavaScript
Para las visualizaciones científicas, la especialidad de VectSharp,IronPDFpuede aprovechar potentes bibliotecas de JavaScript como Chart.js, D3.js o Plotly:
var html = @"
<script src='https://cdn.plot.ly/plotly-latest.min.js'></script>
<div id='chart'></div>
<script>
Plotly.newPlot('chart', [{
x: [1, 2, 3, 4],
y: [10, 15, 13, 17],
type: 'scatter'
}]);
</script>";
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
var pdf = renderer.RenderHtmlAsPdf(html);var html = @"
<script src='https://cdn.plot.ly/plotly-latest.min.js'></script>
<div id='chart'></div>
<script>
Plotly.newPlot('chart', [{
x: [1, 2, 3, 4],
y: [10, 15, 13, 17],
type: 'scatter'
}]);
</script>";
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
var pdf = renderer.RenderHtmlAsPdf(html);IRON VB CONVERTER ERROR developers@ironsoftware.comProblemas comunes de migración y soluciones
Tema 1: Diferencias en los sistemas de coordenadas
VectSharp utiliza puntos desde el origen superior izquierdo con posicionamiento manual.
Solución: Utilizar posicionamiento CSS:
.element {
position: absolute;
top: 50px;
left: 100px;
}Número 2: Objetos de fuentes
VectSharp crea objetos Font y FontFamily mediante programación.
Solución: Utilizar CSS font-family:
<style>
body { font-family: Arial, sans-serif; font-size: 12pt; }
</style><style>
body { font-family: Arial, sans-serif; font-size: 12pt; }
</style>Número 3: Manejo del color
VectSharp utiliza llamadas al método Colour.FromRgb().
Solución: Utilizar colores CSS:
.header { color: rgb(0, 102, 204); background-color: #f0f0f0; }Número 4: Trayectorias gráficas
VectSharp utiliza la compleja API RutaGráficacon los métodos MoveTo, LineTo, Arc.
Solución: Utilizar SVG para gráficos vectoriales:
<svg>
<path d="M 100 100 L 200 50 L 300 100 Z" fill="blue"/>
</svg><svg>
<path d="M 100 100 L 200 50 L 300 100 Z" fill="blue"/>
</svg>Lista de comprobación de la migración a VectSharp
Tareas previas a la migración
Audite su código base para identificar todo el uso de VectSharp:
grep -r "using VectSharp" --include="*.cs" .
grep -r "Graphics\|FillRectangle\|FillText" --include="*.cs" .grep -r "using VectSharp" --include="*.cs" .
grep -r "Graphics\|FillRectangle\|FillText" --include="*.cs" .Tamaños de página de documentos (los patrones new Page(595, 842)). Tenga en cuenta los esquemas de color utilizando Colour.FromRgb(). Identificar las configuraciones de fuentes. Mapear gráficos vectoriales complejos utilizando RutaGráficapara la conversión a SVG.
Tareas de actualización de código
- Eliminar paquetes NuGet de VectSharp
- Instalación del paquete IronPdf NuGet
- Actualización de las sentencias de uso de
VectSharpaIronPDF - Convertir las llamadas de
FillRectangleen cuadros CSS conbackground-color - Convertir llamadas
FillTexten elementos de texto HTML con estilo CSS - Convertir operaciones
RutaGráficaen elementos SVG<path> - Sustituya la gestión manual de páginas por
RenderingOptions.PaperSize - Añadir inicialización de licencia al inicio
Pruebas posteriores a la migración
Tras la migración, verifique estos aspectos:
- Comparar el resultado visual entre las versiones de VectSharpy IronPDF
- Verificar que los colores coinciden utilizando los equivalentes CSS de los valores
Colour.FromRgb() - Comprobar la precisión de posicionamiento de los elementos convertidos a partir de la colocación basada en coordenadas
- Prueba de saltos de página en documentos de varias páginas
- Verificar que los gráficos vectoriales se renderizan correctamente mediante SVG
Beneficios clave de migrar a IronPDF
El paso de VectSharpaIronPDFofrece varias ventajas para la generación de documentos:
Contenido basado en HTML: Los desarrolladores web pueden aprovechar sus conocimientos de HTML y CSS. No es necesario aprender las API de dibujo basadas en coordenadas.
Diseño automático: El ajuste de texto, la paginación y el diseño de flujo se realizan automáticamente. Sin cálculo manual de las posiciones de los elementos.
Soporte CSS moderno: CSS3 completo, incluidos los diseños Flexbox y Grid. Los diseños responsivos se traducen directamente a PDF.
Ejecución de JavaScript: Los gráficos interactivos con Chart.js, D3.js o Plotly se muestran correctamente. El contenido dinámico funciona como se espera.
URL a PDF: Capture cualquier página web como un PDF-funcionalidad que no es posible con VectSharp.
Operaciones PDF: Fusionar, dividir, añadir marcas de agua, protección por contraseña y firmas digitales son funciones integradas.
Verbosidad del código: HTML/CSSes declarativo y legible. El mismo documento requiere mucho menos código que el enfoque de dibujo imperativo de VectSharp.
Desarrollo Activo: A medida que aumenta la adopción de .NET 10 y C# 14 hasta 2026, las actualizaciones periódicas deIronPDFgarantizan la compatibilidad con las versiones actuales y futuras de .NET.
Conclusión
VectSharp destaca como biblioteca de visualización científica para crear diagramas precisos e ilustraciones técnicas. Sin embargo, para los equipos de desarrollo cuyos requisitos se han ampliado más allá de los gráficos vectoriales para incluir documentos empresariales, informes, facturas o cualquier contenido basado en HTML, el paradigma de VectSharp, que da prioridad a los gráficos, crea una complejidad innecesaria.
IronPDF proporciona generación de documentos con un enfoque de estándares web. HTML y CSS sustituyen al dibujo por coordenadas. La maquetación automática sustituye a la manual. Los gráficos de JavaScript sustituyen a la construcción programática de rutas. La ruta de migración es sencilla: sustituir los paquetes NuGet, convertir el código de dibujo a HTML/CSSo SVG y aprovechar toda la potencia de las modernas tecnologías web para la generación de PDF.
Comience su migración hoy mismo con una prueba gratuita de IronPDF y experimente la sencillez de la generación de documentos basada en HTML.
Para una guía de implementación completa, explore la documentación de IronPDF y tutoriales.






