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

Cómo migrar de PDFSharp a IronPDF en C#

Migrar dePDFSharpa IronPDF: Guía completa de migración a C

La migración dePDFSharpaIronPDFtransforma su flujo de trabajo de generación de PDF de dibujo manual basado en coordenadas a plantillas HTML/CSS modernas. Esta guía proporciona una ruta de migración completa, paso a paso, que sustituye el tedioso posicionamiento de estilo GDI+ por tecnologías web, reduciendo drásticamente el tiempo de desarrollo y haciendo que la generación de PDF se pueda mantener mediante conocimientos estándar de HTML/CSS.

Por qué migrar dePDFSharpa IronPDF

Entender PDFSharp

PDFSharp es conocida como una biblioteca de creación de PDF de bajo nivel, que permite a los desarrolladores generar documentos PDF mediante un enfoque programático. Publicado bajo la licencia MIT,PDFSharpconcede a la comunidad de desarrolladores libertad de uso y modificación.PDFSharpfunciona principalmente como una herramienta para dibujar y compilar archivos PDF desde cero, lo que puede ser beneficioso o restrictivo en función de la naturaleza del proyecto.

A veces se piensa erróneamente quePDFSharpes un conversor de HTML a PDF, pero no es así. Su finalidad está dedicada exclusivamente a la creación programática de documentos PDF. Si bien existe un complemento, HtmlRenderer.PdfSharp, destinado a proporcionar capacidades de renderizado HTML, sólo es compatible con CSS 2.1, sin soporte para características CSS modernas como flexbox y grid.

El problema del cálculo de coordenadas

El enfoque GDI+ dePDFSharpsignifica que debe:

  • Calcular posiciones X,Y exactas para cada elemento
  • Seguimiento manual de la altura del contenido para el desbordamiento de la página
  • Maneje usted mismo el ajuste de líneas y la medición de texto
  • Dibujar tablas celda por celda con cálculos de bordes
  • Gestión de documentos de varias páginas con saltos de página manuales

La arquitectura dePDFSharprequiere un profundo conocimiento del posicionamiento mediante coordenadas, lo que a menudo plantea problemas a la hora de crear diseños complejos.

Comparación entrePDFSharpe IronPDF

CaracterísticaPDFSharpIronPDF
LicenciaMIT (gratuito)Comercial
Soporte HTML a PDFNoSí (compatible con HTML5/CSS3)
Soporte CSS modernoNo (sólo CSS 2.1)Sí (CSS3 completo)
Creación de documentosDibujo por coordenadasPlantillas HTML/CSS
Sistema de diseñoPosicionamiento manual X,YCSS Flow/Flexbox/Grid
Saltos de páginaCálculo manualControl automático + CSS
TablasDibujar celdas individualmenteHTML <código></código>
EstilizaciónFuentes/colores basados en códigoHojas de estilo CSS
Document APINivel bajo (requiere coordenadas)Alto nivel (API simplificada)
ActualizacionesPoco frecuenteRegular

IronPDF destaca en situaciones en las que es necesario convertir documentos HTML a PDF con total fidelidad. Esta biblioteca .NET es compatible con HTML5 y CSS3, lo que garantiza el cumplimiento de los estándares web modernos. Sus capacidades nativas de HTML a PDF permiten a los desarrolladores aprovechar el contenido web existente o las plantillas diseñadas con herramientas web contemporáneas.

Para los equipos que planifican la adopción de .NET 10 y C# 14 hasta 2025 y 2026,IronPDFofrece un enfoque moderno que elimina los cálculos de coordenadas a la vez que aprovecha las habilidades de desarrollo web.


Antes de empezar

Prerrequisitos

  1. <Entorno .NET: .NET Framework 4.6.2+ o .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Acceso a NuGet: Capacidad para instalar paquetes NuGet
  3. Licencia IronPDF: Obtenga su clave de licencia en ironpdf.com

Cambios en el paquete NuGet

# Remove PDFSharp
dotnet remove package PdfSharp
dotnet remove package PdfSharp-wpf
dotnet remove package PdfSharp.Charting

# Add IronPDF
dotnet add package IronPdf
# Remove PDFSharp
dotnet remove package PdfSharp
dotnet remove package PdfSharp-wpf
dotnet remove package PdfSharp.Charting

# Add IronPDF
dotnet add package IronPdf
SHELL

Configuración de licencias

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Identificar el uso de PDFSharp

# Find allPDFSharpusages in your codebase
grep -r "PdfSharp\|XGraphics\|XFont\|XBrush\|XPen" --include="*.cs" .
# Find allPDFSharpusages in your codebase
grep -r "PdfSharp\|XGraphics\|XFont\|XBrush\|XPen" --include="*.cs" .
SHELL

Referencia completa de la API

Cambios en el espacio de nombres

// Before: PDFSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;

// After: IronPDF
using IronPdf;
using IronPdf.Editing;
// Before: PDFSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;

// After: IronPDF
using IronPdf;
using IronPdf.Editing;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Core API Mappings

API PDFSharpAPI de IronPDFNotas
nuevo PdfDocument()<código>ChromePdfRenderer.RenderHtmlAsPdf()</códigoCrear a partir de HTML
document.AddPage()AutomáticoPáginas creadas a partir de contenido HTML
<código>XGraphics.FromPdfPage()</códigoNo es necesarioUso de elementos HTML
<código>XGraphics.DrawString()</códigoHTML <p>, <h1>, etc.Posición con CSS
<código>XGraphics.DrawImage()</códigoEtiqueta HTML <img>Posición con CSS
XFontCSS font-family, font-sizeCSS estándar
XBrush, XPenColores y bordes CSScolor, color de fondo
document.Save()<código>pdf.SaveAs()</códigoFunciones similares
<código>PdfReader.Open()</código<código>PdfDocument.FromFile()</códigoAbrir PDF existente

Ejemplos de migración de código

Ejemplo 1: Conversión de HTML a PDF

Antes (PDFSharp):

// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        //PDFSharpdoes not have built-in HTML a PDFconversion
        // You need to manually parse HTML and render content
        PdfDocument document = new PdfDocument();
        PdfPage page = document.AddPage();
        XGraphics gfx = XGraphics.FromPdfPage(page);
        XFont font = new XFont("Arial", 12);

        // Manualtext rendering (no HTML support)
        gfx.DrawString("Hello from PDFSharp", font, XBrushes.Black,
            new XRect(0, 0, page.Width, page.Height),
            XStringFormats.TopLeft);

        document.Save("output.pdf");
    }
}
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        //PDFSharpdoes not have built-in HTML a PDFconversion
        // You need to manually parse HTML and render content
        PdfDocument document = new PdfDocument();
        PdfPage page = document.AddPage();
        XGraphics gfx = XGraphics.FromPdfPage(page);
        XFont font = new XFont("Arial", 12);

        // Manualtext rendering (no HTML support)
        gfx.DrawString("Hello from PDFSharp", font, XBrushes.Black,
            new XRect(0, 0, page.Width, page.Height),
            XStringFormats.TopLeft);

        document.Save("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Después (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        //IronPDFhas native HTML a PDFrendering
        var renderer = new ChromePdfRenderer();

        string html = "<h1>Hello from IronPDF</h1><p>Easy HTML a PDFconversion</p>";
        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        //IronPDFhas native HTML a PDFrendering
        var renderer = new ChromePdfRenderer();

        string html = "<h1>Hello from IronPDF</h1><p>Easy HTML a PDFconversion</p>";
        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Este ejemplo pone de relieve la diferencia más significativa entre las dos bibliotecas.PDFSharpafirma explícitamente que "no tiene integrada la conversión de HTML a PDF"; debe crear manualmente un PdfDocument, añadir una PdfPage, obtener un objeto XGraphics, crear una XFonty utilizar DrawString() con coordenadas XRect.

IronPDF proporciona renderizado nativo de HTML a PDF a través de ChromePdfRenderer. El método RenderHtmlAsPdf() acepta cadenas HTML y las convierte utilizando internamente un motor Chromium.IronPDFconvierte fácilmente archivos HTML a PDF, preservando todos los estilos definidos en HTML5 y CSS3, eliminando la necesidad de cálculos de coordenadas. Consulte la documentación HTML a PDF para ver ejemplos completos.

Ejemplo 2: Añadir texto/marca de agua a un PDF existente

Antes (PDFSharp):

// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        // Open existing PDF
        PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);
        PdfPage page = document.Pages[0];

        // Get graphics object
        XGraphics gfx = XGraphics.FromPdfPage(page);
        XFont font = new XFont("Arial", 20, XFontStyle.Bold);

        // Draw text at specific position
        gfx.DrawString("Watermark Text", font, XBrushes.Red,
            new XPoint(200, 400));

        document.Save("modified.pdf");
    }
}
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        // Open existing PDF
        PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);
        PdfPage page = document.Pages[0];

        // Get graphics object
        XGraphics gfx = XGraphics.FromPdfPage(page);
        XFont font = new XFont("Arial", 20, XFontStyle.Bold);

        // Draw text at specific position
        gfx.DrawString("Watermark Text", font, XBrushes.Red,
            new XPoint(200, 400));

        document.Save("modified.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Después (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;

class Program
{
    static void Main()
    {
        // Open existing PDF
        var pdf = PdfDocument.FromFile("existing.pdf");

        // Add text stamp/watermark
        var textStamper = new TextStamper()
        {
            Text = "Watermark Text",
            FontSize = 20,
            Color = IronSoftware.Drawing.Color.Red,
            VerticalAlignment = VerticalAlignment.Middle,
            HorizontalAlignment = HorizontalAlignment.Center
        };

        pdf.ApplyStamp(textStamper);
        pdf.SaveAs("modified.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;

class Program
{
    static void Main()
    {
        // Open existing PDF
        var pdf = PdfDocument.FromFile("existing.pdf");

        // Add text stamp/watermark
        var textStamper = new TextStamper()
        {
            Text = "Watermark Text",
            FontSize = 20,
            Color = IronSoftware.Drawing.Color.Red,
            VerticalAlignment = VerticalAlignment.Middle,
            HorizontalAlignment = HorizontalAlignment.Center
        };

        pdf.ApplyStamp(textStamper);
        pdf.SaveAs("modified.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFSharp requiere abrir el PDF con <código>PdfReader.Open()</códigoespecificando PdfDocumentOpenMode.Modify, acceder a una página, crear un objeto XGraphics, crear una XFontcon estilo y usar DrawString() con un XPoint especificando coordenadas X,Y exactas (200, 400).

IronPDF simplifica esta tarea con PdfDocument.FromFile(), un objeto TextStamper con propiedades declarativas (Text, FontSize, Color, VerticalAlignment, HorizontalAlignment) y ApplyStamp(). No es necesario calcular coordenadas: basta con especificar la alineación para queIronPDFse encargue del posicionamiento. Tenga en cuenta que el espacio de nombres IronPdf.Editing es necesario para la funcionalidad de estampado.

Ejemplo 3: Creación de PDF con imágenes

Antes (PDFSharp):

// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        // Create new PDF document
        PdfDocument document = new PdfDocument();
        PdfPage page = document.AddPage();
        XGraphics gfx = XGraphics.FromPdfPage(page);

        // Load and draw image
        XImage image = XImage.FromFile("image.jpg");

        // Calculate size to fit page
        double width = 200;
        double height = 200;

        gfx.DrawImage(image, 50, 50, width, height);

        // Add text
        XFont font = new XFont("Arial", 16);
        gfx.DrawString("Image in PDF", font, XBrushes.Black,
            new XPoint(50, 270));

        document.Save("output.pdf");
    }
}
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        // Create new PDF document
        PdfDocument document = new PdfDocument();
        PdfPage page = document.AddPage();
        XGraphics gfx = XGraphics.FromPdfPage(page);

        // Load and draw image
        XImage image = XImage.FromFile("image.jpg");

        // Calculate size to fit page
        double width = 200;
        double height = 200;

        gfx.DrawImage(image, 50, 50, width, height);

        // Add text
        XFont font = new XFont("Arial", 16);
        gfx.DrawString("Image in PDF", font, XBrushes.Black,
            new XPoint(50, 270));

        document.Save("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Después (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create PDF from HTML with image
        var renderer = new ChromePdfRenderer();

        string html = @"
            <h1>Image in PDF</h1>
            <img src='image.jpg' style='width:200px; height:200px;' />
            <p>Easy image embedding with HTML</p>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");

        // Alternative: Add image to existing PDF
        var existingPdf = new ChromePdfRenderer().RenderHtmlAsPdf("<h1>Document</h1>");
        var imageStamper = new IronPdf.Editing.ImageStamper(new Uri("image.jpg"))
        {
            VerticalAlignment = IronPdf.Editing.VerticalAlignment.Top
        };
        existingPdf.ApplyStamp(imageStamper);
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create PDF from HTML with image
        var renderer = new ChromePdfRenderer();

        string html = @"
            <h1>Image in PDF</h1>
            <img src='image.jpg' style='width:200px; height:200px;' />
            <p>Easy image embedding with HTML</p>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");

        // Alternative: Add image to existing PDF
        var existingPdf = new ChromePdfRenderer().RenderHtmlAsPdf("<h1>Document</h1>");
        var imageStamper = new IronPdf.Editing.ImageStamper(new Uri("image.jpg"))
        {
            VerticalAlignment = IronPdf.Editing.VerticalAlignment.Top
        };
        existingPdf.ApplyStamp(imageStamper);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFSharp requiere crear un nuevo PdfDocument, añadir una PdfPage, obtener XGraphics, cargar una XImage desde un archivo, calcular la anchura y la altura, utilizar DrawImage() con coordenadas exactas (50, 50, 200, 200) y, a continuación, añadir texto por separado con DrawString().

IronPDF utiliza HTML estándar con una etiqueta <img> y estilo CSS (style='width:200px; height:200px;'). No se necesitan cálculos de coordenadas: CSS se encarga del diseño.IronPDFtambién proporciona ImageStamper para añadir imágenes a PDF existentes con propiedades de alineación declarativas. Más información en nuestros tutoriales.


Notas de migración críticas

Cambio de paradigma: Coordenadas a HTML/CSS

El cambio más significativo es el paso del dibujo por coordenadas al HTML/CSS:

// PDFSharp: Manualpositioning nightmare
gfx.DrawString("Invoice", titleFont, XBrushes.Black, new XPoint(50, 50));
gfx.DrawString("Customer: John", bodyFont, XBrushes.Black, new XPoint(50, 80));

// IronPDF: Let CSS handle layout
var html = @"
<div style='padding: 50px;'>
    <h1>Invoice</h1>
    <p>Customer: John</p>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
// PDFSharp: Manualpositioning nightmare
gfx.DrawString("Invoice", titleFont, XBrushes.Black, new XPoint(50, 50));
gfx.DrawString("Customer: John", bodyFont, XBrushes.Black, new XPoint(50, 80));

// IronPDF: Let CSS handle layout
var html = @"
<div style='padding: 50px;'>
    <h1>Invoice</h1>
    <p>Customer: John</p>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Migración de fuentes

// PDFSharp: XFont objects
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Times New Roman", 12);

// IronPDF: CSS font properties
var html = @"
<style>
    h1 { font-family: Arial, sans-serif; font-size: 24px; font-weight: bold; }
    p { font-family: 'Times New Roman', serif; font-size: 12px; }
</style>";
// PDFSharp: XFont objects
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Times New Roman", 12);

// IronPDF: CSS font properties
var html = @"
<style>
    h1 { font-family: Arial, sans-serif; font-size: 24px; font-weight: bold; }
    p { font-family: 'Times New Roman', serif; font-size: 12px; }
</style>";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cambio de carga del documento

// PDFSharp: PdfReader.Open()
PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);

// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("existing.pdf");
// PDFSharp: PdfReader.Open()
PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);

// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("existing.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cambio de método de guardado

// PDFSharp: document.Save()
document.Save("output.pdf");

// IronPDF: pdf.SaveAs()
pdf.SaveAs("output.pdf");
// PDFSharp: document.Save()
document.Save("output.pdf");

// IronPDF: pdf.SaveAs()
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cambio de acceso a la página

// PDFSharp: document.Pages[0]
PdfPage page = document.Pages[0];

// IronPDF: Automáticopage handling or pdf.Pages[0]
// Pages are created automatically from HTML content
// PDFSharp: document.Pages[0]
PdfPage page = document.Pages[0];

// IronPDF: Automáticopage handling or pdf.Pages[0]
// Pages are created automatically from HTML content
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nuevas capacidades tras la migración

Después de migrar a IronPDF, se obtienen capacidades quePDFSharpno puede proporcionar:

De HTML nativo a PDF

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Modern Web Content</h1>");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Modern Web Content</h1>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

URL a PDF

var pdf = renderer.RenderUrlAsPdf("https://example.com");
var pdf = renderer.RenderUrlAsPdf("https://example.com");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Fusión de PDF

var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Marcas de agua con HTML

pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resumen comparativo de características

CaracterísticaPDFSharpIronPDF
Dibujo por coordenadas✗(utilice HTML)
HTML a PDF
Compatibilidad con CSS3
Diseño Flexbox/Grid
Estampación de textoManualXGraphicsTextStamper
Estampación de imágenesManualXImageImageStamper
Fusionar PDFManual
URL a PDF
Renderizado web modernoMotor Chromium
Saltos de página automáticos

Lista de comprobación de la migración

Pre-Migración

  • [ ] Inventario del uso dePDFSharpen el código base
  • [ ] Identificar los tipos de documentos generados (informes, facturas, certificados)
  • [ ] Tenga en cuenta cualquier gráfico personalizado u operación de dibujo
  • [ ] Planificar el almacenamiento de la clave de licencia deIronPDF(se recomiendan variables de entorno)
  • [ ] Pruebe primero con la licencia de prueba de IronPDF

Cambios en el paquete

  • [ ] Eliminar el paquete NuGet PdfSharp
  • [ ] Eliminar el paquete NuGet PdfSharp-wpf si se utiliza
  • [ ] Eliminar el paquete NuGet PdfSharp.Charting si se utiliza
  • [Instale el paquete NuGet IronPdf: dotnet add package IronPdf

Cambios de código

  • [ ] Actualizar las importaciones de espacios de nombres (using PdfSharp.Pdf;using IronPDF;)
  • [ ] Añada usando IronPdf.Editing; para la funcionalidad de estampado
  • [ ] Convertir diseños basados en coordenadas a HTML/CSS
  • [ ] Sustituir XFontpor propiedades de fuente CSS
  • [ ] Sustituir XBrush/XPen por colores/bordes CSS
  • [ ] Sustituir <código>XGraphics.DrawString()</códigopor elementos de texto HTML
  • [ ] Sustituir <código>XGraphics.DrawImage()</códigopor etiquetas HTML <img>
  • [Reemplace <código>PdfReader.Open()</códigopor PdfDocument.FromFile()
  • [Reemplace document.Save()por pdf.SaveAs()
  • [ ] Convertir código de dibujo de tablas en tablas HTML

Posmigración

  • [ ] Comparación visual de los PDF generados
  • [ ] Prueba de documentos de varias páginas
  • [ ] Verificar la representación de fuentes
  • [ ] Añadir nuevas funciones (HTML a PDF, fusión, marcas de agua) según sea necesario

Conclusión

PDFSharp eIronPDFsatisfacen diferentes necesidades en el ámbito de la generación de PDF para C#.PDFSharpes adecuado para proyectos que requieren un control preciso de la renderización de documentos sin dependencias adicionales y en los que las limitaciones presupuestarias son un factor a tener en cuenta. Sin embargo, se queda corta para proyectos que requieren estándares web modernos o contenidos dinámicos transmitidos mediante HTML.

Los cambios clave en esta migración son:

  1. Paradigma: Dibujo basado en coordenadas → Plantillas HTML/CSS
  2. Soporte HTML: No disponible → Renderizado nativo en Chromium
  3. Diseño: Posicionamiento manual X,Y → CSS Flow/Flexbox/Grid
  4. Fonts: objetos XFont→ CSS font-family, font-size
  5. Colores: XBrush, XPen→ CSS color, color de fondo, borde
  6. Imágenes: XImage.FromFile() + DrawImage() → HTML <img> o ImageStamper
  7. Estampado de texto: <código>XGraphics.DrawString()</código→ TextStamper
  8. Carga de documentos: <código>PdfReader.Open()</código→ PdfDocument.FromFile()
  9. Guardar: document.Save()pdf.SaveAs()
  10. Nuevas funciones: Fusión de PDF, URL a PDF, compatibilidad con CSS moderno y mucho más

IronPDF supera aPDFSharpen situaciones que requieren una conversión moderna de HTML a PDF, gracias a sus sólidas funciones y capacidades compatibles con CSS3, HTML5 y la manipulación de documentos de alto nivel. Aunque se trata de una licencia de pago, el aumento de la productividad y las modernas funciones suelen justificar la inversión.

Explore la documentación completa de IronPDF, tutoriales y referencia de API para acelerar su migración a PDFSharp.

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