IRONSOFTWAREHOME
VÍDEOS

Como converter Markdown para PDF

Curtis Chau
Curtis Chau
Updated: 18 de maio de 2026

ExpertPdf é um conversor comercial de HTML para PDF for .NET publicado pelaOutside Software Inc.O último lançamento no nuget.org é v20.1.0 (abril de 2025), então o conjunto ainda é enviado ativamente — o atrito está na forma do produto, não no abandono.ExpertPdfse baseia em um motor Trident (IE) além de um motor 'WebKit2' adicionado na v12.2; Chromium moderno não é o padrão. As listagens públicas da ComponentSource historicamente mostraram o HtmlToPdf Converter com valores aproximadamente entre $550–$1,200 por nível (verifique diretamente com o fornecedor). A caixa de ferramentas também é dividida em pacotes NuGet separados — HtmlToPdf, MergePdf, PdfSecurity, SplitPdf, PdfToImage, PdfCreator — cada um geralmente licenciado separadamente. Este guia fornece um caminho de migração passo a passo doExpertPdfpara o IronPDF, uma biblioteca .NET PDF com o mais recente motor Chromium, lançamentos frequentes e um pacote tudo-em-um.

Por que migrar do ExpertPDF para o IronPDF?

OExpertPdfapresenta diversos desafios que levam as equipes de desenvolvimento a avaliar alternativas modernas. Compreender essas questões é essencial para planejar sua estratégia de migração.

Os problemas do ExpertPdf

  1. Documentação escassa, cadência lenta: Existem documentos de referência em html-to-pdf.net, mas tutoriais, artigos de recursos e entradas de changelog são infrequentes. As notas de lançamento da v20.1 (abril de 2025) listam 'correções de bugs e melhorias de desempenho' — sem recursos de destaque.

  2. **Pipeline de renderização mais antigos:**ExpertPdfembarca um motor Trident (IE) além de um motor 'WebKit2' adicionado na v12.2; Chromium moderno não é o padrão. As funcionalidades do CSS3, como Flexbox, Grid e variáveis de CSS, são melhor renderizadas no motor WebKit2 — verifique em relação ao seu HTML alvo antes de migrar grandes patrimônios.

  3. Preços premium para uma pilha envelhecida: As listagens públicas da ComponentSource historicamente mostraram o HtmlToPdf Converter aproximadamente entre $550–$1,200 por nível (verifique diretamente com o fornecedor — a página de pedidos no expertpdf.net estava inacessível no momento da escrita).

  4. **Suite de produtos fragmentada:**ExpertPdfvende pacotes separados — ExpertPdf.HtmlToPdf.NetCore / ExpertPdfHtmlToPdf, ExpertPdf.MergePdf, ExpertPdf.PdfSecurity, ExpertPdf.SplitPdf, ExpertPdf.PdfToImage, ExpertPdf.PdfCreator — cada um geralmente licenciado separadamente.

  5. Sem alvos modernos nativos do .NET: Os pacotes .NetCore são direcionados para .NET Standard 2.0 / .NET Framework 4.6.1, de modo que eles executam no .NET 5/6/7/8/9 — mas você não obtém builds de múltiplos alvos nativos, assemblies compatíveis com trim ou APIs orientadas a async.

Comparação de arquitetura

AspectoExpertPdfIronPDF
FornecedorOutside Software Inc.Iron Software
Último lançamento (nuget.org)v20.1.0 (abr 2025)Atualizado continuamente
DocumentaçãoDocumentação de referência apenas, tutoriais escassosAtualizado continuamente
Motor de renderizaçãoTrident (IE) + 'WebKit2' (adicionado v12.2)Última versão do Chromium
Suporte a CSSCSS3 melhor em WebKit2; parcial no legadoCSS3 completo (Flexbox, Grid)
Preço~$550–$1,200 (verifique com o fornecedor)Veja ironpdf.com/pricing
Modelo do produtoFragmentado (6+ pacotes NuGet)Biblioteca completa
.NET moderno.NET Standard 2.0 (executa em .NET 5-9).NET 6/7/8/9+ com múltiplos alvos
Suporte assíncronoLimitadoassíncrono/await completo

Principais benefícios da migração

  1. Renderização moderna: o mais recente mecanismo Chromium para resultados com perfeição de pixels.
  2. Pacote Tudo-em-Um: geração, mesclagem, segurança e extração de PDFs em um único NuGet.
  3. Desenvolvimento ativo: atualizações mensais com novos recursos e correções de segurança.
  4. Melhor documentação: tutoriais e exemplos abrangentes.
  5. Verdadeira compatibilidade multiplataforma: suporte para Windows, Linux, macOS e Docker.

Preparação pré-migratória

Pré-requisitos

Certifique-se de que seu ambiente atenda a estes requisitos:

  • .NET Framework 4.6.2 ou superior ou .NET Core 3.1 / .NET 5-9
  • Visual Studio 2019 ou superior ou VS Code com extensão C#
  • Acesso ao Gerenciador de Pacotes NuGet
  • Chave de licença do IronPDF(teste gratuito disponível em IronPDF )

Uso do Audit ExpertPdf

Execute estes comandos no diretório da sua solução para identificar todas as referências ao ExpertPdf:

# Find allExpertPdfreferences
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .

# Check NuGet packages
dotnet list package | grep -i "ExpertPdf"
SHELL

Pacotes comuns doExpertPdfpara procurar (verifique o nome exato no nuget.org — o conjunto usa capitalização inconsistente):

  • ExpertPdfHtmlToPdf (.NET Framework) / ExpertPdf.HtmlToPdf.NetCore (.NET Core / 5-9) — HTML to PDF
  • ExpertPdf.MergePdf — união de PDF
  • ExpertPdf.PdfSecurity — criptografia e senhas
  • ExpertPdf.SplitPdf — divisão de PDF
  • ExpertPdf.PdfToImage — conversão de PDF para imagem
  • ExpertPdf.PdfCreator — SDK completo de PDF (desenho, formulários, assinaturas)

Entendendo a mudança no padrão central

ExpertPdf utiliza PdfConverter com métodos de retorno direto de byte-array.IronPDF utiliza ChromePdfRenderer retornando objetos PdfDocument que oferecem capacidades adicionais de manipulação antes de salvar.

Processo de migração passo a passo

Passo 1: Atualizar pacotes NuGet

Remova todos os pacotes ExpertPDF e instale o IronPDF:

# Remove allExpertPdfpackages (use whichever variants you have installed)
dotnet remove package ExpertPdfHtmlToPdf
dotnet remove package ExpertPdf.HtmlToPdf.NetCore
dotnet remove package ExpertPdf.MergePdf
dotnet remove package ExpertPdf.PdfSecurity
dotnet remove package ExpertPdf.SplitPdf
dotnet remove package ExpertPdf.PdfToImage
dotnet remove package ExpertPdf.PdfCreator

# Install IronPDF(includes all features)
dotnet add package IronPdf
SHELL

Etapa 2: Atualizar referências de namespace

Substitua os namespaces do ExpertPDF pelos do IronPDF:

// Remove these
using ExpertPdf.HtmlToPdf;

// Add this
using IronPdf;

Etapa 3: Configurar a licença

OExpertPdfutiliza licenciamento por conversor. O IronPDF utiliza uma única licença global:

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Referência completa para migração de API

Mapeamento de Classes Principais

ClasseExpertPdfEquivalente ao IronPDF
PdfConverterChromePdfRenderer
PdfDocumentOptionsChromePdfRenderOptions
PdfHeaderOptionsTextHeaderFooter ou HtmlHeaderFooter
PdfFooterOptionsTextHeaderFooter ou HtmlHeaderFooter
PDFMergePdfDocument.Merge()

Mapeamento de Métodos

MétodoExpertPdfMétodo IronPDF
pdfConverter.GetPdfBytesFromHtmlString(html)renderer.RenderHtmlAsPdf(html).BinaryData
pdfConverter.GetPdfBytesFromUrl(url)renderer.RenderUrlAsPdf(url).BinaryData
pdfConverter.GetPdfBytesFromHtmlFile(path)renderer.RenderHtmlFileAsPdf(path).BinaryData
pdfConverter.SavePdfFromUrlToFile(url, path)renderer.RenderUrlAsPdf(url).SaveAs(path)

Mapeamento de opções

OpçãoExpertPdfOpções de renderização do IronPDF
PdfDocumentOptions.PdfPageSize = PdfPageSize.A4PaperSize = PdfPaperSize.A4
PdfDocumentOptions.PdfPageOrientation = PortraitPaperOrientation = PdfPaperOrientation.Portrait
PdfDocumentOptions.MarginTopMarginTop
PdfHeaderOptions.HeaderTextTextHeader.CenterText
PdfFooterOptions.FooterTextTextFooter.RightText

Conversão de tokens de numeração de páginas

ExpertPDF e IronPDF usam sintaxes diferentes para marcadores de posição de números de página:

ExpertPdfIronPDF
&p;{page}
&P;{total-pages}

Exemplos de migração de código

Conversão de HTML para PDF

A conversão fundamental de HTML para PDF demonstra a mudança do padrão de matriz de bytes doExpertPdfpara a abordagem de objeto de documento do IronPDF.

Implementação do ExpertPdf:

// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();
        
        // Convert HTML string to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>");
        
        // Save to file
        System.IO.File.WriteAllBytes("output.pdf", pdfBytes);
        
        Console.WriteLine("PDF created successfully!");
    }
}

Implementação do IronPDF:

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

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>");
        
        // Save to file
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF created successfully!");
    }
}

A abordagem do IronPDF retorna um objeto PdfDocument, permitindo manipulação adicional (união, marca d'água, segurança) antes de salvar. Para mais opções, consulte a documentação de conversão de HTML para PDF .

URL para PDF com configurações de página

Implementação do ExpertPdf:

// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();
        
        // Set page size and orientation
        pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
        pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;
        
        // Convert URL to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl("https://www.example.com");
        
        // Save to file
        System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);
        
        Console.WriteLine("PDF from URL created successfully!");
    }
}

Implementação do IronPDF:

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

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();
        
        // Set page size and orientation
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        
        // Convert URL to PDF
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        
        // Save to file
        pdf.SaveAs("webpage.pdf");
        
        Console.WriteLine("PDF from URL created successfully!");
    }
}

O RenderingOptions do IronPDF fornece acesso direto a propriedades para configuração de página. Para mais opções, consulte o link para a documentação em PDF .

Cabeçalhos e rodapés com números de página

Este exemplo demonstra a diferença crítica na configuração do cabeçalho/rodapé—oExpertPdfutiliza classes PdfHeaderOptions e PdfFooterOptions separadas com tokens &P;, enquanto o IronPDF utiliza TextHeaderFooter com marcadores {total-pages}.

Implementação do ExpertPdf:

// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();
        
        // Enable header
        pdfConverter.PdfHeaderOptions.ShowHeader = true;
        pdfConverter.PdfHeaderOptions.HeaderText = "Document Header";
        pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center;
        
        // Enable footer with page numbers
        pdfConverter.PdfFooterOptions.ShowFooter = true;
        pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;";
        pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right;
        
        // Convert HTML file to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlFile("input.html");
        
        // Save to file
        System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes);
        
        Console.WriteLine("PDF with headers and footers created successfully!");
    }
}

Implementação do IronPDF:

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

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();
        
        // Configure header
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Document Header",
            DrawDividerLine = true
        };
        
        // Configure footer with page numbers
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true
        };
        
        // Convert HTML file to PDF
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");
        
        // Save to file
        pdf.SaveAs("output-with-header-footer.pdf");
        
        Console.WriteLine("PDF with headers and footers created successfully!");
    }
}

O TextHeaderFooter do IronPDF fornece propriedades LeftText, CenterText, e RightText com linhas divisórias opcionais. Para cabeçalhos baseados em HTML, use HtmlHeaderFooter. Para mais opções, consulte a documentação sobre cabeçalhos e rodapés .

Notas críticas sobre migração

Localização da chave de licença

OExpertPdfutiliza licenciamento por conversor. O IronPDF utiliza uma única licença global definida uma vez na inicialização:

//ExpertPdf- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";

//IronPDF- global, set once
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
C#

Conversão de tokens de numeração de páginas

Substitua os marcadores ExpertPDF pelos marcadores IronPDF:

// ExpertPdf
"Page &p; of &P;"

// IronPDF
"Page {page} of {total-pages}"

Pacotes fragmentados consolidados

Os pacotes separados doExpertPdf(PDFMerge, PDFSecurity, PDFSplit, PdfToImage) estão todos incluídos no pacote único do IronPDF:

//ExpertPdf- requires separate ExpertPdf.MergePdf package
PDFMerge merger = new PDFMerge();
merger.AppendPDFFile("file1.pdf");
merger.AppendPDFFile("file2.pdf");
merger.SaveMergedPDFToFile("merged.pdf");

//IronPDF- included in main package
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
C#

Para mais opções de mesclagem, consulte a documentação de mesclagem de PDFs .

Tamanhos de página personalizados

OExpertPdfutiliza pontos. O IronPDF usa milímetros. Converter: points / 72 * 25.4 = mm

Lista de verificação pós-migração

Após concluir a migração do código, verifique o seguinte:

  • Comparação visual dos PDFs gerados
  • Verificar cabeçalhos/rodapés e números de página
  • Testar as configurações de segurança/criptografia
  • Validar operações de mesclagem
  • Verifique os tamanhos de página personalizados
  • Análise comparativa de desempenho
  • Testes multiplataforma
  • Remover arquivos de licença do ExpertPdf
  • Atualizar documentação

Recursos adicionais


A migração doExpertPdfpara o IronPDF substitui documentação escassa, pipelines de renderização legados e licenciamento de produtos fragmentados por uma biblioteca ativamente mantida no motor Chromium mais recente — mantendo sua geração de PDF alinhada com os padrões web atuais e alvos .NET modernos.

Observe: ExpertPDF é uma marca registrada do seu respectivo proprietário (Outside Software Inc.). Este site não é afiliado, endossado ou patrocinado pelaOutside Software Inc.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.