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

Cómo migrar de SelectPdf a IronPDF en C#

La migración de SelectPdfaIronPDFtransforma su flujo de trabajo de generación de PDF de una solución exclusiva para Windows con un motor de renderizado obsoleto a una biblioteca moderna y multiplataforma con compatibilidad total con CSS3 y JavaScript. Esta guía proporciona una ruta de migración completa paso a paso que permite la implementación en Linux, Docker, Azure Functionsy otras plataformas en la nube que SelectPdfno puede admitir.

Por qué migrar de SelectPdfa IronPDF

Entender SelectPdf

SelectPdf es una biblioteca comercial diseñada para convertir contenido HTML en PDF utilizando C#. La biblioteca está pensada para desarrolladores que requieren una integración perfecta de la funcionalidad de generación de PDF en sus aplicaciones. El punto fuerte de SelectPdfreside en su sencilla API, que lo convierte en una opción atractiva para quienes se inician en la generación de PDF.

Sin embargo, los usuarios potenciales deben ser conscientes de sus limitaciones críticas. A pesar de anunciar su capacidad multiplataforma, SelectPdfsolo funciona en entornos Windows. Esto supone una barrera importante a la hora de considerar soluciones de implementación basadas en la nube, como Azure Functionso contenedores como Docker. Además, su versión gratuita está significativamente limitada, ya que solo permite hasta cinco páginas antes de aplicar una agresiva marca de agua. SelectPdfaprovecha una bifurcación obsoleta de Blink y una arquitectura basada en WebKit, lo que provoca problemas de compatibilidad con tecnologías web modernas como CSS Gridy flexbox avanzado.

Limitaciones críticas de SelectPdf

Problema Impacto Solución IronPDF
Sólo para Windows No se puede implementar en Linux, Docker o Azure Functions Soporte multiplataforma completo
Motor de renderizado obsoleto El CSS moderno falla, los diseños se rompen Chromium actualizado
Límite de 5 páginas de la versión gratuita Marca de agua agresiva después de 5 páginas Prueba generosa
No compatible con .NET 10 Problemas de cara al futuro Compatibilidad total con .NET 10
Despliegue en la nube bloqueado No se puede utilizar AWS Lambda, Azure Functions Nube nativa

Comparación entre SelectPdfe IronPDF

Característica SelectPdf IronPDF
Soporte de Plataforma Sólo Windows Totalmente multiplataforma, más de 10 distribuciones
Soporte de estándares web modernos Limitado (Blink anticuado) CSS3 completo, Chromium moderno
Límite máximo de páginas de la versión gratuita 5 páginas Flexible, sin límite estricto
Precios A partir de 499 Precios transparentes y flexibles
Soporte .NET 10 Ninguno Se admite
Despliegue en entornos de nube No compatible Totalmente compatible
CSS Grid Limitado Se admite
Flexbox Limitado Se admite
Variables CSS No soportado Se admite
Docker NO SE APOYA Imágenes oficiales
Azure Functions NO SE APOYA Se admite
AWS Lambda NO SE APOYA Se admite

Para los equipos que planean la adopción de .NET 10 y C# 14 hasta 2025 y 2026, SelectPdfno es compatible explícitamente con .NET 10, lo que crea problemas de preparación para el futuro.IronPDFes totalmente compatible con todas las versiones modernas de .NET.


Antes de empezar

Prerrequisitos

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

Cambios en el paquete NuGet

# Remove SelectPdf
dotnet remove package Select.HtmlToPdf

# Install IronPDF
dotnet add package IronPdf
# Remove SelectPdf
dotnet remove package Select.HtmlToPdf

# Install IronPDF
dotnet add package IronPdf
SHELL

Configuración de licencias

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Referencia completa de la API

Cambios en el espacio de nombres

// Before: SelectPdf
using SelectPdf;

// After: IronPDF
using IronPdf;
using IronPdf.Engines.Chrome;
// Before: SelectPdf
using SelectPdf;

// After: IronPDF
using IronPdf;
using IronPdf.Engines.Chrome;
' Before: SelectPdf
Imports SelectPdf

' After: IronPDF
Imports IronPdf
Imports IronPdf.Engines.Chrome
$vbLabelText   $csharpLabel

Mapeos de API principales

SelectPdf IronPDF Notas
HtmlToPdf ChromePdfRenderer Clase de convertidor principal
converter.ConvertHtmlString(html) renderer.RenderHtmlAsPdf(html) Conversión de cadenas HTML
converter.ConvertUrl(url) renderer.RenderUrlAsPdf(url) Conversión de URL
doc.Save(path) pdf.SaveAs(path) Guardar en archivo
doc.Close() No es necesario IronPDFse encarga de la limpieza
converter.Options.PdfPageSize renderer.RenderingOptions.PaperSize Tamaño del papel
converter.Options.PdfPageOrientation renderer.RenderingOptions.PaperOrientation Orientación
converter.Options.MarginTop renderer.RenderingOptions.MarginTop Margen superior
converter.Options.MarginBottom renderer.RenderingOptions.MarginBottom Margen inferior
converter.Options.MarginLeft renderer.RenderingOptions.MarginLeft Margen izquierdo
converter.Options.MarginRight renderer.RenderingOptions.MarginRight Margen derecho
PdfPageSize.A4 PdfPaperSize.A4 Enum tamaño A4
PdfPageOrientation.Portrait PdfPaperOrientation.Portrait Retrato enum
PdfPageOrientation.Landscape PdfPaperOrientation.Landscape Entorno
{page_number} {page} Marcador de posición del número de página
{total_pages} {total-pages} Total de páginas

Ejemplos de migración de código

Ejemplo 1: Conversión de cadenas HTML a PDF

Antes (SelectPdf):

// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertHtmlString(htmlContent);
        doc.Save("document.pdf");
        doc.Close();

        Console.WriteLine("PDF generated from HTML string");
    }
}
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertHtmlString(htmlContent);
        doc.Save("document.pdf");
        doc.Close();

        Console.WriteLine("PDF generated from HTML string");
    }
}
Imports SelectPdf
Imports System

Class Program
    Shared Sub Main()
        Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"

        Dim converter As New HtmlToPdf()
        Dim doc As PdfDocument = converter.ConvertHtmlString(htmlContent)
        doc.Save("document.pdf")
        doc.Close()

        Console.WriteLine("PDF generated from HTML string")
    End Sub
End Class
$vbLabelText   $csharpLabel

Después (IronPDF):

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

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");

        Console.WriteLine("PDF generated from HTML string");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");

        Console.WriteLine("PDF generated from HTML string");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"

        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
        pdf.SaveAs("document.pdf")

        Console.WriteLine("PDF generated from HTML string")
    End Sub
End Class
$vbLabelText   $csharpLabel

Este ejemplo muestra las principales diferencias entre las API. SelectPdfusa HtmlToPdf como clase de convertidor, llamando a ConvertHtmlString() para crear un PdfDocument, luego a Save() y Close() para persistir y limpiar.

IronPDF usa ChromePdfRenderer con RenderHtmlAsPdf(), devolviendo un PdfDocument que se guarda con SaveAs(). Se elimina la llamada Close():IronPDFmaneja la gestión de recursos automáticamente. Consulte la documentación HTML a PDF para ver ejemplos completos.

Ejemplo 2: Conversión de URL a PDF

Antes (SelectPdf):

// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertUrl("https://www.example.com");
        doc.Save("output.pdf");
        doc.Close();

        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertUrl("https://www.example.com");
        doc.Save("output.pdf");
        doc.Close();

        Console.WriteLine("PDF created successfully");
    }
}
Imports SelectPdf
Imports System

Class Program
    Shared Sub Main()
        Dim converter As New HtmlToPdf()
        Dim doc As PdfDocument = converter.ConvertUrl("https://www.example.com")
        doc.Save("output.pdf")
        doc.Close()

        Console.WriteLine("PDF created successfully")
    End Sub
End Class
$vbLabelText   $csharpLabel

Después (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
        pdf.SaveAs("output.pdf")

        Console.WriteLine("PDF created successfully")
    End Sub
End Class
$vbLabelText   $csharpLabel

El método ConvertUrl() de SelectPdfse asigna directamente al RenderUrlAsPdf() de IronPDF. La diferencia crítica está en el motor de renderizado: SelectPdfutiliza un fork anticuado de Blink/WebKit que tiene problemas con CSS moderno, mientras queIronPDFutiliza el último Chromium estable para soporte completo de CSS3 y JavaScript. Más información en nuestros tutoriales.

Ejemplo 3: Configuración de página personalizada y márgenes

Antes (SelectPdf):

// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();

        converter.Options.PdfPageSize = PdfPageSize.A4;
        converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait;
        converter.Options.MarginTop = 20;
        converter.Options.MarginBottom = 20;
        converter.Options.MarginLeft = 20;
        converter.Options.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        PdfDocument doc = converter.ConvertHtmlString(html);
        doc.Save("custom-settings.pdf");
        doc.Close();

        Console.WriteLine("PDF with custom settings created");
    }
}
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();

        converter.Options.PdfPageSize = PdfPageSize.A4;
        converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait;
        converter.Options.MarginTop = 20;
        converter.Options.MarginBottom = 20;
        converter.Options.MarginLeft = 20;
        converter.Options.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        PdfDocument doc = converter.ConvertHtmlString(html);
        doc.Save("custom-settings.pdf");
        doc.Close();

        Console.WriteLine("PDF with custom settings created");
    }
}
Imports SelectPdf
Imports System

Module Program
    Sub Main()
        Dim converter As New HtmlToPdf()

        converter.Options.PdfPageSize = PdfPageSize.A4
        converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait
        converter.Options.MarginTop = 20
        converter.Options.MarginBottom = 20
        converter.Options.MarginLeft = 20
        converter.Options.MarginRight = 20

        Dim html As String = "<html><body><h1>Custom Page Settings</h1></body></html>"
        Dim doc As PdfDocument = converter.ConvertHtmlString(html)
        doc.Save("custom-settings.pdf")
        doc.Close()

        Console.WriteLine("PDF with custom settings created")
    End Sub
End Module
$vbLabelText   $csharpLabel

Después (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("custom-settings.pdf");

        Console.WriteLine("PDF with custom settings created");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("custom-settings.pdf");

        Console.WriteLine("PDF with custom settings created");
    }
}
Imports IronPdf
Imports IronPdf.Engines.Chrome
Imports System

Module Program
    Sub Main()
        Dim renderer As New ChromePdfRenderer()

        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
        renderer.RenderingOptions.MarginTop = 20
        renderer.RenderingOptions.MarginBottom = 20
        renderer.RenderingOptions.MarginLeft = 20
        renderer.RenderingOptions.MarginRight = 20

        Dim html As String = "<html><body><h1>Custom Page Settings</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("custom-settings.pdf")

        Console.WriteLine("PDF with custom settings created")
    End Sub
End Module
$vbLabelText   $csharpLabel

El patrón de configuración de la página es casi idéntico, con cambios sencillos en los nombres de las propiedades:

  • converter.Options.PdfPageSizerenderer.RenderingOptions.PaperSize
  • converter.Options.PdfPageOrientationrenderer.RenderingOptions.PaperOrientation
  • PdfPageSize.A4PdfPaperSize.A4
  • PdfPageOrientation.PortraitPdfPaperOrientation.Portrait

Las propiedades de los márgenes mantienen los mismos nombres y unidades.


El problema de Windows

Limitación de la plataforma SelectPdf

A pesar de las afirmaciones de marketing, SelectPdfexplícitamente no admite:

  • Linux (cualquier distribución)
  • macOS
  • Contenedores Docker
  • Azure Functions -AWS Lambda
  • Google Cloud Functions
  • Cualquier sistema basado en ARM

Se trata de una limitación arquitectónica fundamental: SelectPdfdepende de bibliotecas específicas de Windows y no se puede portar.

Comparación de plataformas

| Plataforma| SelectPdf|IronPDF| | ---------- | :---: | :---: || Windows Server 2019+| ✅ | ✅ || Windows 10/11| ✅ | ✅ || Ubuntu 20.04+| ❌ | ✅ || Debian 10+| ❌ | ✅ || CentOS 7+| ❌ | ✅ || Alpine Linux| ❌ | ✅ || Amazon Linux 2| ❌ | ✅ || macOS 10.15+| ❌ | ✅ || Azure App Service (Linux)| ❌ | ✅ || Azure Functions| ❌ | ✅ || AWS Lambda| ❌ | ✅ || Docker (Linux)| ❌ | ✅ || Kubernetes| ❌ | ✅ |

El motor de renderizado anticuado

Comparación de funciones de CSS

SelectPdf utiliza una bifurcación obsoleta de Blink/WebKit que no ha seguido el ritmo de los estándares web modernos:

Característica CSS SelectPdf IronPDF
CSS Grid ⚠️ Parcial/roto ✅Completo
Flexbox (básico)
Flexbox (propiedad gap)
Variables CSS
CSS calc() ⚠️ Limitada
@media imprimir ⚠️ Limitada
@font-face ⚠️ Limitada
Fuentes web ⚠️ Limitada
SVG ⚠️ Básico ✅Completo
Transformaciones CSS ⚠️ Limitada
Animaciones CSS

Nuevas capacidades tras la migración

Tras migrar a IronPDF, obtendrá funciones que SelectPdfno puede ofrecer:

Despliegue multiplataforma

// ✅IronPDF- Works everywhere
using IronPdf;

// Azure App Service (Linux)- WORKS
// Docker container - WORKS
// AWS Lambda- WORKS
// GitHub Actions on ubuntu-latest - WORKS
// macOS development - WORKS

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>");
pdf.SaveAs("output.pdf");
// ✅IronPDF- Works everywhere
using IronPdf;

// Azure App Service (Linux)- WORKS
// Docker container - WORKS
// AWS Lambda- WORKS
// GitHub Actions on ubuntu-latest - WORKS
// macOS development - WORKS

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>");
pdf.SaveAs("output.pdf");
Imports IronPdf

' Azure App Service (Linux)- WORKS
' Docker container - WORKS
' AWS Lambda- WORKS
' GitHub Actions on ubuntu-latest - WORKS
' macOS development - WORKS

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>")
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Soporte CSS moderno

// ✅IronPDF- Uses latest stable Chromium
var renderer = new ChromePdfRenderer();

var html = @"
<style>
    :root { --primary: #007bff; --gap: 20px; }
    .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); }
</style>
<div class='grid'>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 1</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 2</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 3</div>
</div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// All modern CSS features render correctly!
// ✅IronPDF- Uses latest stable Chromium
var renderer = new ChromePdfRenderer();

var html = @"
<style>
    :root { --primary: #007bff; --gap: 20px; }
    .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); }
</style>
<div class='grid'>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 1</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 2</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 3</div>
</div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// All modern CSS features render correctly!
Imports IronPdf

' ✅IronPDF- Uses latest stable Chromium
Dim renderer As New ChromePdfRenderer()

Dim html As String = "
<style>
    :root { --primary: #007bff; --gap: 20px; }
    .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); }
</style>
<div class='grid'>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 1</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 2</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 3</div>
</div>"

Dim pdf = renderer.RenderHtmlAsPdf(html)
' All modern CSS features render correctly!
$vbLabelText   $csharpLabel

No es necesario Close()

IronPDF gestiona los recursos automáticamente:

// Option 1: Let garbage collection handle it
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// No Close() needed

// Option 2: Explicit disposal
using (var pdf = renderer.RenderHtmlAsPdf(html))
{
    pdf.SaveAs("output.pdf");
}
// Option 1: Let garbage collection handle it
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// No Close() needed

// Option 2: Explicit disposal
using (var pdf = renderer.RenderHtmlAsPdf(html))
{
    pdf.SaveAs("output.pdf");
}
' Option 1: Let garbage collection handle it
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
' No Close() needed

' Option 2: Explicit disposal
Using pdf = renderer.RenderHtmlAsPdf(html)
    pdf.SaveAs("output.pdf")
End Using
$vbLabelText   $csharpLabel

Lista de comprobación de la migración

Pre-Migración

  • Auditar todos los usos de SelectPdfen el código base
  • Documentar las opciones actuales del convertidor para el mapeo
  • Identificar implementaciones de encabezado/pie de página
  • Verificar la sintaxis del marcador de posición del número de página ({page_number}{page})
  • Tenga en cuenta los patrones de manejo de URL base
  • Verificar las plataformas de implementación de destino
  • Obtenga la clave de licencia deIronPDFen IronPDF

Actualizaciones de código

  • Eliminar el paquete NuGet Select.HtmlToPdf
  • Instalar el paquete NuGet IronPdf
  • Actualizar las importaciones del espacio de nombres (using SelectPdf;using IronPdf;)
  • Reemplace HtmlToPdf con ChromePdfRenderer
  • Reemplace ConvertHtmlString() con RenderHtmlAsPdf()
  • Reemplace ConvertUrl() con RenderUrlAsPdf()
  • Actualizar los nombres de las propiedades de la opción (Options.PdfPageSizeRenderingOptions.PaperSize)
  • Convertir PdfPageSize a PdfPaperSize
  • Convertir PdfPageOrientation a PdfPaperOrientation
  • Reemplace doc.Save() con pdf.SaveAs()
  • Eliminar todas las llamadas doc.Close()
  • Corregir marcadores de posición de números de página ({page_number}{page}, {total_pages}{total-pages})
  • Agregar inicialización de licencia al iniciar la aplicación

Posmigración

  • Ejecutar todas las pruebas unitarias
  • Verificar la representación CSS (especialmente Grid/Flexbox)
  • Probar la ejecución de JavaScript
  • Verificar los números de página de encabezado/pie de página
  • Prueba en plataformas de destino (Linux, Docker, etc.)
  • Prueba de rendimiento
  • Comparar la calidad de salida de PDF
  • Actualizar los pipelines de CI/CD
  • Probar implementaciones en la nube (si corresponde)

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

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame