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

Cómo migrar de TallComponents a IronPDF en C#

Cuando Apryse adquirió TallComponents, el panorama de .NET PDF cambió significativamente. Dado que TallComponentsya no está disponible para nuevas licencias y que los usuarios existentes están siendo redirigidos a iText SDK, los desarrolladores que utilizan TallPDF y PDFKit se enfrentan a una decisión inevitable: migrar ahora o arriesgarse a utilizar software sin soporte con errores de renderizado conocidos hasta 2026 y más allá.

Esta guía proporciona una ruta de migración completa de TallComponentsa IronPDF, incluidas instrucciones paso a paso, asignaciones de API y ejemplos de código real para ayudar a los desarrolladores profesionales de .NET a realizar la transición de forma eficaz.

Por qué la migración a TallComponentses ahora obligatoria

TallComponents fue en su día un nombre respetado en la generación de PDF en C#. La biblioteca ofrecía flujos de trabajo de documentos basados en XML y manipulación programática de PDF. Sin embargo, la adquisición por parte de Apryse puso fin a la venta de nuevas licencias, lo que cambió radicalmente el cálculo para los equipos de desarrollo.

Limitaciones críticas de TallComponents

La decisión de migrar no se debe únicamente a la compatibilidad con el proveedor, sino que también conlleva una importante deuda técnica:

Interrupción del producto: No hay nuevas licencias disponibles desde la adquisición de Apryse. En el sitio web oficial de TallComponentsse indica explícitamente que la venta de nuevas licencias ha finalizado, y se dirige a los usuarios potenciales para que adopten iText SDK en su lugar.

Sin soporte de HTML a PDF: a diferencia de las bibliotecas PDF modernas, TallComponentsno admite conversiones directas de HTML a PDF. Los desarrolladores de plataformas de apoyo han confirmado esta limitación, señalando como alternativas soluciones de terceros como Pechkin.

Errores de renderizado documentados: los registros de cambios revelan amplios problemas de renderizado, incluida la representación de páginas en blanco, gráficos faltantes, manejo poco confiable de imágenes JPEG y visualización incorrecta de fuentes. Estos errores no se resolvieron antes de la descatalogación.

Sin soporte ni actualizaciones: sin mantenimiento activo, cualquier vulnerabilidad de seguridad o problemas de compatibilidad con .NET 10 y C# 14 permanecerán sin resolver.

IronPDF: Una alternativa moderna a TallComponents

IronPDF aborda las principales limitaciones que hacían que TallComponentsfuera problemático para los flujos de trabajo de desarrollo modernos:

Característica TallComponents IronPDF
Estado actual de la venta Descatalogado para nuevas ventas Desarrollado y vendido activamente
Soporte HTML a PDF No Sí (HTML5/CSS3 con Chromium)
Fidelidad de representación Errores y problemas conocidos Fiabilidad probada
Instalación Complejo, Manual Sencillo con NuGet
Atención al cliente Transición al SDK de iText Apoyo activo y comunidad
Usabilidad futura Fin de vida útil Viabilidad a largo plazo

El contraste es marcado: TallComponentsofrece un enfoque basado en XML de una era diferente del desarrollo .NET, mientras queIronPDFproporciona renderizado HTML potenciado por Chromium que se alinea con la forma en que los desarrolladores crean aplicaciones hoy en día.

Inicio rápido: Migración de TallComponentsa IronPDF

Paso 1: Sustituir paquetes NuGet

Elimine todos los paquetes de TallComponentsde su proyecto:

# Remove TallComponentspackages
dotnet remove package TallComponents.PDF.Kit
dotnet remove package TallComponents.PDF.Layout
dotnet remove package TallComponents.PDF.Layout.Drawing
# Remove TallComponentspackages
dotnet remove package TallComponents.PDF.Kit
dotnet remove package TallComponents.PDF.Layout
dotnet remove package TallComponents.PDF.Layout.Drawing
SHELL

Instalar IronPDF:

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

Para marcos especializados,IronPDFofrece paquetes de extensión dedicados:

Servidor Blazor:

PM > Install-Package IronPdf.Extensions.Blazor
PM > Install-Package IronPdf.Extensions.Blazor
SHELL

MAUI:

PM > Install-Package IronPdf.Extensions.Maui
PM > Install-Package IronPdf.Extensions.Maui
SHELL

Marco MVC:

PM > Install-Package IronPdf.Extensions.Mvc.Framework
PM > Install-Package IronPdf.Extensions.Mvc.Framework
SHELL

Paso 2: Actualizar los espacios de nombres

Sustituya los espacios de nombres TallComponentspor el espacio de nombres IronPdf:

// Before (TallComponents)
using TallComponents.PDF.Kit;
using TallComponents.PDF.Layout;
using TallComponents.PDF.Layout.Drawing;
using TallComponents.PDF.Layout.Paragraphs;

// After (IronPDF)
using IronPdf;
// Before (TallComponents)
using TallComponents.PDF.Kit;
using TallComponents.PDF.Layout;
using TallComponents.PDF.Layout.Drawing;
using TallComponents.PDF.Layout.Paragraphs;

// After (IronPDF)
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Paso 3: Inicialice su 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

Referencia de mapeo de API de TallComponentsa IronPDF

Comprender cómo se corresponden los conceptos de TallComponentsconIronPDFacelera el proceso de migración:

TallComponents IronPDF Notas
Document ChromePdfRenderer Crear un renderizador para la generación de PDF
Section Automático Secciones derivadas de la estructura HTML
TextParagraph Elementos de texto HTML Utilice <p>, <h1>, <div>, etc.
ImageParagraph Etiqueta <img> Imágenes HTML estándar
TableParagraph HTML <table> Tablas HTML estándar
Font CSS font-family Fuentes web totalmente compatibles
document.Write() pdf.SaveAs() Guardar en archivo
document.Write(stream) pdf.BinaryData o pdf.Stream Resultados
Page.Canvas Traducción HTML/CSS No es necesaria la manipulación manual del lienzo
XmlDocument.Generate() RenderHtmlAsPdf() HTML sustituye a XML
PdfKit.Merger.Merge() PdfDocument.Merge() Combinar varios PDF
Document.Security pdf.SecuritySettings Configuración de seguridad de PDF
PageLayout RenderingOptions Ajustes de página y márgenes

Ejemplos de migración de código

Convertir HTML a PDF

TallComponents carece de soporte nativo de HTML a PDF. La solución consiste en crear fragmentos de texto, lo que en realidad no renderiza HTML:

Enfoque de TallComponents:

// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using System.IO;

class Program
{
    static void Main()
    {
        // Create a new document
        using (Document document = new Document())
        {
            string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";

            // Create HTML fragment
            Fragment fragment = Fragment.FromText(html);

            // Add to document
            Section section = document.Sections.Add();
            section.Fragments.Add(fragment);

            // Save to file
            using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
            {
                document.Write(fs);
            }
        }
    }
}
// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using System.IO;

class Program
{
    static void Main()
    {
        // Create a new document
        using (Document document = new Document())
        {
            string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";

            // Create HTML fragment
            Fragment fragment = Fragment.FromText(html);

            // Add to document
            Section section = document.Sections.Add();
            section.Fragments.Add(fragment);

            // Save to file
            using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
            {
                document.Write(fs);
            }
        }
    }
}
Imports TallComponents.PDF.Kit
Imports System.IO

Class Program
    Shared Sub Main()
        ' Create a new document
        Using document As New Document()
            Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"

            ' Create HTML fragment
            Dim fragment As Fragment = Fragment.FromText(html)

            ' Add to document
            Dim section As Section = document.Sections.Add()
            section.Fragments.Add(fragment)

            ' Save to file
            Using fs As New FileStream("output.pdf", FileMode.Create)
                document.Write(fs)
            End Using
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

Enfoque IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";

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

Class Program
    Shared Sub Main()
        ' Create a PDF from HTML string
        Dim renderer As New ChromePdfRenderer()
        Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"

        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

ChromePdfRenderer deIronPDFutiliza un motor Chromium genuino, que proporciona compatibilidad total con HTML5 y CSS3. Esto significa que sus PDF se mostrarán exactamente como aparecerían en un navegador moderno. Más información en el tutorial HTML a PDF.

Fusión de varios PDF

La fusión de PDF demuestra la diferencia de verbosidad entre TallComponentsy IronPDF.

Enfoque de TallComponents:

// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using System.IO;

class Program
{
    static void Main()
    {
        // Create output document
        using (Document outputDoc = new Document())
        {
            // Load first PDF
            using (FileStream fs1 = new FileStream("document1.pdf", FileMode.Open))
            using (Document doc1 = new Document(fs1))
            {
                foreach (Page page in doc1.Pages)
                {
                    outputDoc.Pages.Add(page.Clone());
                }
            }

            // Load second PDF
            using (FileStream fs2 = new FileStream("document2.pdf", FileMode.Open))
            using (Document doc2 = new Document(fs2))
            {
                foreach (Page page in doc2.Pages)
                {
                    outputDoc.Pages.Add(page.Clone());
                }
            }

            // Save merged document
            using (FileStream output = new FileStream("merged.pdf", FileMode.Create))
            {
                outputDoc.Write(output);
            }
        }
    }
}
// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using System.IO;

class Program
{
    static void Main()
    {
        // Create output document
        using (Document outputDoc = new Document())
        {
            // Load first PDF
            using (FileStream fs1 = new FileStream("document1.pdf", FileMode.Open))
            using (Document doc1 = new Document(fs1))
            {
                foreach (Page page in doc1.Pages)
                {
                    outputDoc.Pages.Add(page.Clone());
                }
            }

            // Load second PDF
            using (FileStream fs2 = new FileStream("document2.pdf", FileMode.Open))
            using (Document doc2 = new Document(fs2))
            {
                foreach (Page page in doc2.Pages)
                {
                    outputDoc.Pages.Add(page.Clone());
                }
            }

            // Save merged document
            using (FileStream output = new FileStream("merged.pdf", FileMode.Create))
            {
                outputDoc.Write(output);
            }
        }
    }
}
Imports TallComponents.PDF.Kit
Imports System.IO

Class Program
    Shared Sub Main()
        ' Create output document
        Using outputDoc As New Document()
            ' Load first PDF
            Using fs1 As New FileStream("document1.pdf", FileMode.Open)
                Using doc1 As New Document(fs1)
                    For Each page As Page In doc1.Pages
                        outputDoc.Pages.Add(page.Clone())
                    Next
                End Using
            End Using

            ' Load second PDF
            Using fs2 As New FileStream("document2.pdf", FileMode.Open)
                Using doc2 As New Document(fs2)
                    For Each page As Page In doc2.Pages
                        outputDoc.Pages.Add(page.Clone())
                    Next
                End Using
            End Using

            ' Save merged document
            Using output As New FileStream("merged.pdf", FileMode.Create)
                outputDoc.Write(output)
            End Using
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

Enfoque IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        // Load PDFs
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");

        // Merge PDFs
        var merged = PdfDocument.Merge(pdf1, pdf2);

        // Save merged document
        merged.SaveAs("merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        // Load PDFs
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");

        // Merge PDFs
        var merged = PdfDocument.Merge(pdf1, pdf2);

        // Save merged document
        merged.SaveAs("merged.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        ' Load PDFs
        Dim pdf1 = PdfDocument.FromFile("document1.pdf")
        Dim pdf2 = PdfDocument.FromFile("document2.pdf")

        ' Merge PDFs
        Dim merged = PdfDocument.Merge(pdf1, pdf2)

        ' Save merged document
        merged.SaveAs("merged.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

La versión de TallComponentsrequiere la iteración y clonación manual de las páginas.IronPDFreduce esto a una única llamada PdfDocument.Merge(). Para situaciones de fusión avanzadas, consulte la documentación sobre fusión de PDF.

Añadir marcas de agua

La marca de agua en los PDF revela otra diferencia significativa en la experiencia de los desarrolladores.

Enfoque de TallComponents:

// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using TallComponents.PDF.Layout;
using System.IO;
using System.Drawing;

class Program
{
    static void Main()
    {
        // Load existing PDF
        using (FileStream fs = new FileStream("input.pdf", FileMode.Open))
        using (Document document = new Document(fs))
        {
            // Iterate through pages
            foreach (Page page in document.Pages)
            {
                // Create watermark text
                TextShape watermark = new TextShape();
                watermark.Text = "CONFIDENTIAL";
                watermark.Font = new Font("Arial", 60);
                watermark.PenColor = Color.FromArgb(128, 255, 0, 0);
                watermark.X = 200;
                watermark.Y = 400;
                watermark.Rotate = 45;

                // Add to page
                page.Overlay.Shapes.Add(watermark);
            }

            // Save document
            using (FileStream output = new FileStream("watermarked.pdf", FileMode.Create))
            {
                document.Write(output);
            }
        }
    }
}
// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using TallComponents.PDF.Layout;
using System.IO;
using System.Drawing;

class Program
{
    static void Main()
    {
        // Load existing PDF
        using (FileStream fs = new FileStream("input.pdf", FileMode.Open))
        using (Document document = new Document(fs))
        {
            // Iterate through pages
            foreach (Page page in document.Pages)
            {
                // Create watermark text
                TextShape watermark = new TextShape();
                watermark.Text = "CONFIDENTIAL";
                watermark.Font = new Font("Arial", 60);
                watermark.PenColor = Color.FromArgb(128, 255, 0, 0);
                watermark.X = 200;
                watermark.Y = 400;
                watermark.Rotate = 45;

                // Add to page
                page.Overlay.Shapes.Add(watermark);
            }

            // Save document
            using (FileStream output = new FileStream("watermarked.pdf", FileMode.Create))
            {
                document.Write(output);
            }
        }
    }
}
Imports TallComponents.PDF.Kit
Imports TallComponents.PDF.Layout
Imports System.IO
Imports System.Drawing

Class Program
    Shared Sub Main()
        ' Load existing PDF
        Using fs As New FileStream("input.pdf", FileMode.Open)
            Using document As New Document(fs)
                ' Iterate through pages
                For Each page As Page In document.Pages
                    ' Create watermark text
                    Dim watermark As New TextShape()
                    watermark.Text = "CONFIDENTIAL"
                    watermark.Font = New Font("Arial", 60)
                    watermark.PenColor = Color.FromArgb(128, 255, 0, 0)
                    watermark.X = 200
                    watermark.Y = 400
                    watermark.Rotate = 45

                    ' Add to page
                    page.Overlay.Shapes.Add(watermark)
                Next

                ' Save document
                Using output As New FileStream("watermarked.pdf", FileMode.Create)
                    document.Write(output)
                End Using
            End Using
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

Enfoque IronPDF:

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

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

        // Create watermark
        var watermark = new TextStamper()
        {
            Text = "CONFIDENTIAL",
            FontSize = 60,
            Opacity = 50,
            Rotation = 45,
            VerticalAlignment = VerticalAlignment.Middle,
            HorizontalAlignment = HorizontalAlignment.Center
        };

        // Apply watermark to all pages
        pdf.ApplyStamp(watermark);

        // Save watermarked PDF
        pdf.SaveAs("watermarked.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;

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

        // Create watermark
        var watermark = new TextStamper()
        {
            Text = "CONFIDENTIAL",
            FontSize = 60,
            Opacity = 50,
            Rotation = 45,
            VerticalAlignment = VerticalAlignment.Middle,
            HorizontalAlignment = HorizontalAlignment.Center
        };

        // Apply watermark to all pages
        pdf.ApplyStamp(watermark);

        // Save watermarked PDF
        pdf.SaveAs("watermarked.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Editing

Class Program
    Shared Sub Main()
        ' Load existing PDF
        Dim pdf = PdfDocument.FromFile("input.pdf")

        ' Create watermark
        Dim watermark = New TextStamper() With {
            .Text = "CONFIDENTIAL",
            .FontSize = 60,
            .Opacity = 50,
            .Rotation = 45,
            .VerticalAlignment = VerticalAlignment.Middle,
            .HorizontalAlignment = HorizontalAlignment.Center
        }

        ' Apply watermark to all pages
        pdf.ApplyStamp(watermark)

        ' Save watermarked PDF
        pdf.SaveAs("watermarked.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

La clase TextStamper deIronPDFproporciona opciones de alineación intuitivas e iteración automática de páginas. La guía de sellos y marcas de agua incluye opciones de personalización adicionales.

Firmas digitales

La firma de documentos es fundamental para las aplicaciones empresariales.

Enfoque de TallComponents:

using TallComponents.PDF.Kit;
using TallComponents.PDF.Kit.Signing;

Document document = new Document("unsigned.pdf");

// Load certificate
X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password");

// Create signature
SignatureHandler handler = new SignatureHandler(cert);
document.Sign(handler);

document.Write("signed.pdf");
using TallComponents.PDF.Kit;
using TallComponents.PDF.Kit.Signing;

Document document = new Document("unsigned.pdf");

// Load certificate
X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password");

// Create signature
SignatureHandler handler = new SignatureHandler(cert);
document.Sign(handler);

document.Write("signed.pdf");
Imports TallComponents.PDF.Kit
Imports TallComponents.PDF.Kit.Signing
Imports System.Security.Cryptography.X509Certificates

Dim document As New Document("unsigned.pdf")

' Load certificate
Dim cert As New X509Certificate2("certificate.pfx", "password")

' Create signature
Dim handler As New SignatureHandler(cert)
document.Sign(handler)

document.Write("signed.pdf")
$vbLabelText   $csharpLabel

Enfoque IronPDF:

using IronPdf;
using IronPdf.Signing;

var pdf = PdfDocument.FromFile("unsigned.pdf");

// Sign with certificate
var signature = new PdfSignature("certificate.pfx", "password")
{
    SigningContact = "support@company.com",
    SigningLocation = "New York",
    SigningReason = "Document Approval"
};

pdf.Sign(signature);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;

var pdf = PdfDocument.FromFile("unsigned.pdf");

// Sign with certificate
var signature = new PdfSignature("certificate.pfx", "password")
{
    SigningContact = "support@company.com",
    SigningLocation = "New York",
    SigningReason = "Document Approval"
};

pdf.Sign(signature);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing

Dim pdf = PdfDocument.FromFile("unsigned.pdf")

' Sign with certificate
Dim signature = New PdfSignature("certificate.pfx", "password") With {
    .SigningContact = "support@company.com",
    .SigningLocation = "New York",
    .SigningReason = "Document Approval"
}

pdf.Sign(signature)
pdf.SaveAs("signed.pdf")
$vbLabelText   $csharpLabel

La API de firma deIronPDFincluye propiedades de metadatos adicionales para la información de contacto, la ubicación y el motivo de la firma, que son importantes para los registros de auditoría. Explore la documentación sobre la firma digital para conocer todos los detalles de la implementación.

Comparación de características: TallComponentsvs IronPDF

Característica TallComponents IronPDF
Estado ❌ DESCONTINUADO ✅ Activo
Soporte ❌ Ninguno ✅ Completo
Actualizaciones ❌ Ninguno ✅ Regular
: Creación de contenido : HTML a PDF No Chromium completo
URL a PDF No
Soporte CSS No CSS3 completo
JavaScript No ES2024 completo
Plantillas XML No es necesario
: Operaciones PDF : Fusionar PDF
Dividir PDF
Marcas de agua Manual Incorporado en
Encabezados/pies de página Basado en XML HTML/CSS
: Seguridad : Protección por contraseña
Firmas digitales
Cifrado
PDF/A Limitado
: Problemas conocidos : Páginas en blanco ⚠️ Error documentado Ninguno
Gráficos que faltan ⚠️ Error documentado Ninguno
Problemas de fuentes ⚠️ Error documentado Ninguno
: Desarrollo : Curva de aprendizaje Alto (XML) Bajo (HTML)
Documentación Desactualizado Amplia
Comunidad Ninguno Activo

Lista de comprobación de la migración a TallComponents

Tareas previas a la migración

Audite su código base para identificar todo el uso de TallComponents:

grep -r "using TallComponents" --include="*.cs" .
grep -r "Document\|Section\|TextParagraph" --include="*.cs" .
grep -r "using TallComponents" --include="*.cs" .
grep -r "Document\|Section\|TextParagraph" --include="*.cs" .
SHELL

Documente las plantillas y diseños XML existentes, que se convertirán a HTML. Identifique las configuraciones de seguridad actualmente en uso, teniendo en cuenta las configuraciones de contraseñas y las implementaciones de firmas digitales.

Tareas de actualización de código

  1. Eliminar paquetes de TallComponentsa través de NuGet
  2. Instalar el paquete IronPdf
  3. Convertir diseños XML en plantillas HTML
  4. Sustituir el modelo Sección/Párrafo por elementos HTML
  5. Actualizar el código de las tablas para utilizar tablas HTML estándar
  6. Convierte encabezados y pies de página a HTML con HtmlHeaderFooter
  7. Actualice la configuración de seguridad para usar pdf.SecuritySettings
  8. Añadir inicialización de licencia al inicio

Migración de encabezados y pies de página

TallComponents utiliza cabeceras basadas en XML.IronPDFproporciona encabezados basados en HTML con marcadores de posición dinámicos:

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
    MaxHeight = 25
};
Imports System

renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
    .HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
    .MaxHeight = 25
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
    .HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
    .MaxHeight = 25
}
$vbLabelText   $csharpLabel

Más información sobre encabezados y pies de página en IronPDF.

Fase de prueba

  1. Comparar el resultado visual entre las versiones de TallComponentsy IronPDF
  2. Comprobar que se resuelven los problemas de páginas en blanco
  3. Prueba de todas las plantillas de documentos
  4. Validar la funcionalidad de fusión de PDF
  5. Prueba de firmas digitales
  6. Confirmar que la configuración de seguridad se aplica correctamente

Cronograma de migración recomendado

Dado que TallComponentsestá descatalogado y sin soporte, la migración debe realizarse con urgencia:

Semana 1: Auditar la base de código e identificar el uso de todos los TallComponents Semana 2: Convertir plantillas de documentos de XML a HTML
Semana 3: Actualización de seguridad, fusión y firma de código
Semana 4: Pruebas e implementación de producción

Retrasarse significa utilizar software no compatible con errores de renderización documentados, un riesgo que ningún equipo de desarrollo profesional debería aceptar de cara a 2026.

Beneficios clave de la migración

El cambio de TallComponentsaIronPDFofrece ventajas inmediatas:

Motor de renderizado Chromium moderno: la compatibilidad total con CSS y JavaScriptgarantiza que los archivos PDF se representen exactamente como se espera, eliminando los errores de páginas en blanco y gráficos faltantes documentados en TallComponents.

Mantenimiento activo y actualizaciones de seguridad:IronPDFrecibe actualizaciones periódicas, lo que garantiza la compatibilidad con las versiones actuales y futuras de .NET , incluido .NET 10.

Mejor integración .NET : el soporte nativo async/await y los patrones de API modernos se alinean con las prácticas de desarrollo de C# contemporáneas.

Documentación completa: amplios tutoriales y referencias de API facilitan una implementación rápida.

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