Saltar al pie de página
GUíAS DE MIGRACIóN

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 manually
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF 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.com
$vbLabelText   $csharpLabel

IronPDFvs 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ísticaVectSharpIronPDF
Uso principalGráficos vectorialesCreación de documentos
Resultado PDF
Soporte HTMLNo
LicenciasLGPLComercial
Código abiertoParcialmente (características comerciales)
Mejor paraVisualizaciones científicasDocumentos PDF generales
PersonalizaciónLimitado a gráficosAmplia documentación
HTML a PDFNoChromium completo
URL a PDFNo
Soporte CSSNoCSS3 completo
JavaScriptNoES2024 completo
Diseño automáticoNo
Saltos de página automáticosNo
Envoltura de textoManualAutomático
Fusionar PDFNo
Dividir PDFNo
Protección de contraseñasNo
Firmas digitalesNo
Curva de aprendizajeAlto (coordenadas)Bajo (HTML/CSS)
Verbosidad del códigoMuy altoBajo

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.PDF
SHELL

Instalar IronPDF:

# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
SHELL

Paso 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.com
$vbLabelText   $csharpLabel

Paso 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"
$vbLabelText   $csharpLabel

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.com
$vbLabelText   $csharpLabel

Enfoque 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.com
$vbLabelText   $csharpLabel

VectSharp 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.com
$vbLabelText   $csharpLabel

Enfoque 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.com
$vbLabelText   $csharpLabel

VectSharp 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.com
$vbLabelText   $csharpLabel

Enfoque 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.com
$vbLabelText   $csharpLabel

VectSharp 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:

VectSharpIronPDFNotas
Documento<código>ChromePdfRenderer</códigoCrear renderizador
<código>Página</códigoAutomáticoPáginas creadas a partir de HTML
GráficosHTML/CSSMarcado declarativo
<código>graphics.FillRectangle()</códigoCSS color de fondo en <div>Cuadros HTML
<código>graphics.StrokeRectangle()</códigoCSS 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 CSSTrazados vectoriales
RutaGráficaElemento SVG <path>Formas complejas
Color.FromRgb()Valores de color CSSrgb(), #hex, named
Font / FamiliaFontCSS familyFuentes web compatibles
<código>doc.SaveAsPDF()</código<código>pdf.SaveAs()</códigoGuardar en archivo
Tamaño de página manual<código>RenderingOptions.PaperSize</códigoO 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.com
$vbLabelText   $csharpLabel

Estrategia 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.com
$vbLabelText   $csharpLabel

Estrategia 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.com
$vbLabelText   $csharpLabel

Problemas 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>
HTML

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>
HTML

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" .
SHELL

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

  1. Eliminar paquetes NuGet de VectSharp
  2. Instalación del paquete IronPdf NuGet
  3. Actualización de las sentencias de uso de VectSharp a IronPDF
  4. Convertir las llamadas de FillRectangle en cuadros CSS con background-color
  5. Convertir llamadas FillText en elementos de texto HTML con estilo CSS
  6. Convertir operaciones RutaGráficaen elementos SVG <path>
  7. Sustituya la gestión manual de páginas por RenderingOptions.PaperSize
  8. 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.

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