IRONSOFTWAREHOME
VÍDEOS

Como usar o mecanismo IronPDF no Docker | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 de julho de 2026

Em 27 de maio de 2025, Apryse adquiriu a TallComponents. Novas licenças para TallPDF.NET e PDFKit.NET não são mais oferecidas, e a Apryse direciona novos compradores para o iText SDK (também de propriedade da Apryse). Clientes existentes continuam recebendo suporte, mas o motor está apenas em manutenção. Para equipes que atualmente utilizam o TallComponents, planejar uma migração agora evita uma troca forçada mais tarde.

Este guia fornece um caminho de migração do Componentes altos para o IronPDF, incluindo instruções passo a passo, mapeamentos de API e exemplos de código para desenvolvedores .NET planejando a transição.

Por Que Planejar uma Migração do TallComponents

A Componentes altos (fundada em 2001) lançou dois principais produtos PDF for .NET: PDFKit.NET para carregamento e manipulação de PDFs, e TallPDF.NET para geração de documentos orientados ao layout. Após a aquisição da Apryse, as vendas de novas licenças foram encerradas, o que altera o horizonte de planejamento para equipes que dependem da biblioteca.

Principais Limitações do Componentes altos Hoje

Fechado para novas licenças: A página da Componentes altos na Apryse afirma que não está mais oferecendo novas licenças para os produtos TallComponents, e direciona novos compradores para o iText SDK. Os detentores de licença existentes continuam sendo suportados.

Pipeline deHTMLapenas XHTML: TallPDF.NET fornece uma classe XhtmlParagraph que interpreta XHTML 1.0 Strict / XHTML 1.1 + CSS 2.1. PDFKit.NET por si só não possui um pipeline de HTML. Conteúdo moderno em HTML5 + CSS3 +JavaScriptnão é renderizado de forma confiável — não há um motor de navegador sem cabeça incluído.

Plataforma alvo congelada: TallComponents.PDFKit5 tem como alvo o .NET Standard 2.0; o antigo TallComponents.PDFKit (4.x) tem como alvo o .NET Framework 2.0. Não há um TFM for .NET 8/9 publicado.

Roteiro apenas de manutenção: Com a energia de desenvolvimento da Apryse focada no Apryse SDK e iText, os pacotes com marca Componentes altos recebem atualizações de manutenção, mas sem novo roteiro de recursos.

IronPDF: Uma alternativa moderna ao TallComponents

O IronPDF aborda as lacunas centrais que afetam os usuários do Componentes altos nas pilhas atuais do .NET:

RecursoComponentes altosIronPDF
Status de venda atualFechado para novas licenças (Apryse adquiriu 2025-05-27)Ativamente vendido
Suporte HTML-para-PDFXHTML 1.0/1.1 +CSS 2.1via XhtmlParagraph (TallPDF.NET)Sim (HTML5/CSS3 com Chromium)
JavaScriptemHTMLNãoES2024 completo
InstalaçãoNuGet (TallComponents.PDFKit5, TallComponents.TallPDF5)NuGet (IronPdf)
Suporte ao clienteApenas para clientes existentes; novos compradores direcionados para o iTextSuporte ativo e comunidade
Investimento futuroApenas manutençãoRoteiro de longo prazo

TallComponents utiliza um modelo orientado a XML/layout enraizado em uma era anterior de geração de documentos .NET, enquanto o IronPDF fornece renderizaçãoHTMLalimentada por Chromium alinhada com a forma como as equipes constroem aplicativos front-end hoje.

Guia rápido: Migração do Componentes altos para o IronPDF

Passo 1: Substituir pacotes NuGet

Remover os pacotes Componentes altos que seu projeto referencia. Os IDs reais dos pacotes no nuget.org são TallComponents.PDFKit5 (ou TallComponents.PDFKit para 4.x) e TallComponents.TallPDF5 / TallPDF6:

# Remove Componentes altos packages (whichever your project uses)
dotnet remove package TallComponents.PDFKit5
dotnet remove package TallComponents.TallPDF5
dotnet remove package TallComponents.PDFRasterizer4
SHELL

Instale o IronPDF:

dotnet add package IronPdf

Para estruturas especializadas, o IronPDF oferece pacotes de extensão dedicados:

Servidor Blazor :

PM > Install-Package IronPdf.Extensions.Blazor

MAUI:

PM > Install-Package IronPdf.Extensions.Maui

Framework MVC:

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

Etapa 2: Atualizar Namespaces

Substituir namespaces do Componentes altos pelo namespace IronPDF:

// Before (TallComponents — real namespaces)
using TallComponents.PDF;                    // Document, Page (PDFKit.NET)
using TallComponents.PDF.Shapes;             // TextShape, ImageShape (PDFKit)
using TallComponents.PDF.Security;           // PasswordSecurity
using TallComponents.PDF.Layout;             // Document, Section (TallPDF.NET)
using TallComponents.PDF.Layout.Paragraphs;  // TextParagraph, XhtmlParagraph

// After (IronPDF)
using IronPdf;

Etapa 3: Inicialize sua licença

Adicionar inicialização de licença na inicialização do aplicativo:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Referência de mapeamento da API Componentes altos para IronPDF

Compreender como os conceitos do Componentes altos se relacionam com o IronPDF acelera o processo de migração:

Componentes altosIronPDFNotas
Document (TallPDF.NET: layout)ChromePdfRendererCriar um renderizador para geração de PDFs
Document (PDFKit.NET: manipular)PdfDocumentCarregar/editar PDFs existentes
SectionAutomáticoSeções derivadas da estruturaHTML
TextParagraphElementos de textoHTMLUse <p>, <h1>, <div>, etc.
ImageParagraphtag <img>ImagensHTMLpadrão
TableParagraphHTML <table>TabelasHTMLpadrão
XhtmlParagraph (XHTML 1.x + CSS 2.1)RenderHtmlAsPdf() (HTML5/CSS3 via Chromium)HTML moderno funciona
FontCSS font-familyFontes da web suportadas
document.Write(...)pdf.SaveAs() / pdf.BinaryDataSaída em arquivo ou byte[]
page.Overlay.Add(shape)pdf.ApplyStamp(stamper)Marca d'água / sobreposição
outputDoc.Pages.Add(page.Clone())PdfDocument.Merge(...) / pdf.AppendPdf(...)Mesclar vários PDFs
Document.Security = new PasswordSecurity { ... }pdf.SecuritySettingsConfiguração de segurança de PDF
PageLayoutRenderingOptionsConfigurações de página e margens

Exemplos de migração de código

ConverterHTMLpara PDF

TallComponents lida comHTMLatravés de XhtmlParagraph do TallPDF.NET, que interpreta apenas XHTML 1.0/1.1 + CSS 2.1. HTML5 moderno, CSS3, flexbox, grid e conteúdo conduzido porJavaScriptestão fora dessa gramática:

Abordagem TallComponents:

// NuGet: Install-Package TallComponents.TallPDF5
// (HTML/XHTML conversion lives in TallPDF.NET, not in PDFKit.NET.)
using TallComponents.PDF.Layout;
using TallComponents.PDF.Layout.Paragraphs;
using System.IO;

class Program
{
    static void Main()
    {
        Document document = new Document();
        Section section = document.Sections.Add();

        // XhtmlParagraph supports XHTML 1.0/1.1 +CSS 2.1only.
        XhtmlParagraph xhtml = new XhtmlParagraph();
        xhtml.Text = "<html><body><h1>Hello World</h1><p>This is a PDF from XHTML.</p></body></html>";
        section.Paragraphs.Add(xhtml);

        using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
        {
            document.Write(fs);
        }
    }
}
C#

Abordagem IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        // Create a PDF fromHTMLstring
        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");
    }
}
C#

A ChromePdfRenderer do IronPDF usa um motor Chromium genuíno, oferecendo suporte completo a HTML5 e CSS3. Isso significa que seus PDFs serão exibidos exatamente como apareceriam em um navegador moderno. Saiba mais no tutorial deHTMLpara PDF .

Unir vários PDFs

A fusão de PDFs demonstra a diferença de verbosidade entre Componentes altos e IronPDF.

Abordagem TallComponents:

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

class Program
{
    static void Main()
    {
        // Create target document
        Document outputDoc = new Document();

        // Load first PDF and clone each page into the target
        using (FileStream fs1 = new FileStream("document1.pdf", FileMode.Open, FileAccess.Read))
        {
            Document doc1 = new Document(fs1);
            foreach (Page page in doc1.Pages)
            {
                outputDoc.Pages.Add(page.Clone()); // clone is required across documents
            }
        }

        // Load second PDF and append the whole page collection
        using (FileStream fs2 = new FileStream("document2.pdf", FileMode.Open, FileAccess.Read))
        {
            Document doc2 = new Document(fs2);
            outputDoc.Pages.AddRange(doc2.Pages.CloneToArray());
        }

        // Save merged document
        using (FileStream output = new FileStream("merged.pdf", FileMode.Create))
        {
            outputDoc.Write(output);
        }
    }
}

Abordagem 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");
    }
}

A versão Componentes altos requer iteração manual de páginas e clonagem.IronPDF reduz isso para uma única chamada PdfDocument.Merge(). Para cenários de mesclagem avançados, consulte a documentação de mesclagem em PDF .

Adicionando marcas d'água

A inclusão de marcas d'água em PDFs revela outra diferença significativa na experiência do desenvolvedor.

Abordagem TallComponents:

// NuGet: Install-Package TallComponents.PDFKit5
using TallComponents.PDF;
using TallComponents.PDF.Shapes;
using System.IO;
using System.Drawing;

class Program
{
    static void Main()
    {
        // Load existing PDF
        using (FileStream fs = new FileStream("input.pdf", FileMode.Open, FileAccess.Read))
        {
            Document document = new Document(fs);

            foreach (Page page in document.Pages)
            {
                TextShape watermark = new TextShape();
                watermark.Text = "CONFIDENTIAL";
                watermark.Font = new Font("Arial", 60);
                watermark.Pen = new Pen(Color.FromArgb(128, 255, 0, 0));
                watermark.X = 200;
                watermark.Y = 400;
                // Rotation is applied via a transform on PDFKit.NET
                // (TextShape has no Rotate property in the PDFKit API).
                watermark.Transform = new RotateTransform(45);

                page.Overlay.Add(watermark);
            }

            using (FileStream output = new FileStream("watermarked.pdf", FileMode.Create))
            {
                document.Write(output);
            }
        }
    }
}

Abordagem 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");
    }
}

A classe TextStamper do IronPDF fornece opções intuitivas de alinhamento e iteração automática de páginas. O guia de carimbos e marcas d'água abrange opções adicionais de personalização.

Assinaturas digitais

A assinatura de documentos é fundamental para aplicações empresariais.

Abordagem TallComponents:

using TallComponents.PDF;
using TallComponents.PDF.Signing;
using System.IO;
using System.Security.Cryptography.X509Certificates;

using (FileStream fs = new FileStream("unsigned.pdf", FileMode.Open, FileAccess.Read))
{
    Document document = new Document(fs);

    X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password");
    SignatureField field = new SignatureField("Signature1");
    field.Sign(cert);
    document.Fields.Add(field);

    using (FileStream output = new FileStream("signed.pdf", FileMode.Create))
    {
        document.Write(output);
    }
}

Abordagem 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");

A API de assinatura do IronPDF inclui propriedades de metadados adicionais para informações de contato, localização e motivo da assinatura — importantes para registros de auditoria. Consulte a documentação sobre assinatura digital para obter detalhes completos sobre a implementação.

Comparação de recursos: Componentes altos vs IronPDF

RecursoComponentes altosIronPDF
StatusFechado para novas licenças (Apryse adquiriu 2025-05-27)Ativo
ApoiarApenas para clientes existentesCompleto
AtualizaçõesApenas manutençãoLançamentos regulares de recursos
Criação de Conteúdo
HTMLpara PDFXHTML 1.0/1.1 +CSS 2.1(XhtmlParagraph)HTML5/CSS3 completo via Chromium
URL para PDFSim para URLs XHTML (XhtmlParagraph.Path)Sim
Suporte a CSSCSS 2.1CSS3 completo
JavaScriptNãoES2024 completo
XML / Modelos de Layout DOMSim (TallPDF.NET)Não necessário (HTML)
Operações PDF
Mesclar PDFsSim (Pages.Add(page.Clone()))Sim (PdfDocument.Merge)
Dividir PDFsSimSim
Marcas d'águapage.Overlay.Add(TextShape)pdf.ApplyStamp(...)
Cabeçalhos/RodapésLayout DOMHTML/CSS
Segurança
Proteção por senhaSim (PasswordSecurity)Sim
Assinaturas digitaisSim (SignatureField.Sign)Sim
CriptografiaRC4 / AES-128 / AES-256AES-128 / AES-256
PDF/APDF/A-1, PDF/A-2, PDF/A-3Sim
Plataforma
Frameworks AlvoPDFKit5: .NET Standard 2.0; PDFKit (4.x): .NET Framework 2.0.NET Framework 4.6.2+, .NET 6/7/8/9
Desenvolvimento
Curva de AprendizagemXML / layout DOMHTML
DocumentaçãoCongelado na aquisição; novas documentações direcionadas para Apryse / iTextMantido
ComunidadeSilencioso (sem novas vendas)Ativo

Lista de verificação para migração de componentes altos

Tarefas pré-migração

Faça uma auditoria em sua base de código para identificar todos os usos de TallComponents:

grep -r "using TallComponents" --include="*.cs" .
grep -rE "XhtmlParagraph|TextParagraph|PasswordSecurity|page\.Overlay" --include="*.cs" .
SHELL

Documentar modelos de XML/layout existentes - esses serão convertidos para HTML. Identificar as configurações de segurança atualmente em uso, observando as configurações de senha e as implementações de assinatura digital.

Tarefas de atualização de código

  1. Remova os pacotes Componentes altos via NuGet.
  2. Instale o pacote IronPDF
  3. Converta modelos XHTML / layout DOM para HTML5
  4. Substitua o modelo de seção/parágrafo por elementos HTML.
  5. Atualize o código da tabela para usar tabelasHTMLpadrão.
  6. Converta cabeçalhos/rodapés paraHTMLcom HtmlHeaderFooter
  7. Atualize as configurações de segurança para usar pdf.SecuritySettings
  8. Adicionar inicialização de licença na inicialização

Migração de cabeçalhos e rodapés

TallPDF.NET usa um DOM de layout (Section.Header / Section.Footer) para cabeçalhos de página. O IronPDF fornece cabeçalhos baseados emHTMLcom espaços reservados 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
};

Saiba mais sobre cabeçalhos e rodapés no IronPDF .

Fase de Testes

  1. Compare a saída visual entre as versões Componentes altos e IronPDF.
  2. Teste todos os modelos de documentos
  3. Valide a funcionalidade de mesclagem de PDFs
  4. Teste assinaturas digitais
  5. Confirme que as configurações de segurança são aplicadas corretamente

Cronograma de migração recomendado

Como Componentes altos está fechado para novas licenças e com suporte apenas de manutenção, planeje a transição no seu próprio ritmo, mas não adie:

Semana 1: Auditar a base de código e identificar todos os usos de TallComponents.
Semana 2: Converta modelos XHTML / layout para HTML5 Semana 3: Atualização de segurança, fusão e assinatura de código
Semana 4: Testes e implantação em produção

Quanto mais tempo uma stack permanecer no TallComponents, mais ela se afastará dos atuais alvos .NET e HTML.

[{i: (Apryse, PDFKit, Tall Components, e iText são marcas registradas de seus respectivos proprietários. Este site não é afiliado, endossado ou patrocinado por Apryse, PDFKit, PDFTron, Componentes altos ou iText Group. Todos os nomes de produtos, logotipos e marcas são propriedade de seus respectivos proprietários. As comparações são apenas para fins informativos e refletem informações disponíveis publicamente no momento da redação.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.