Ir para o conteúdo do rodapé
GUIAS DE MIGRAçãO

Como migrar do SelectPDF para o IronPDF em C#

Migrar do Selecionar PDF para o IronPDF move seu fluxo de trabalho de geração de PDFs de uma biblioteca exclusiva para Windows — cujo motor de renderização padrão é um WebKit interno e cujo motor Blink opcional é distribuído com o Chromium 124 (abril de 2024) — para uma biblioteca de multiplataforma do Chromium atual com suporte completo para CSS3 e JavaScript. Este guia fornece um caminho de migração completo, passo a passo, que permite a implantação em Linux, Docker, Azure Functions e outras plataformas de nuvem que o Selecionar PDF não suporta.

Por que migrar do SelectPDF para o IronPDF?

Entendendo o SelectPdf

SelectPdf é uma biblioteca comercial projetada para converter conteúdo HTML em PDFs usando C#. A biblioteca foi concebida para desenvolvedores que necessitam de uma integração perfeita da funcionalidade de geração de PDFs em seus aplicativos. O ponto forte do Selecionar PDF reside em sua API simples, tornando-o uma opção atraente para quem é iniciante na geração de PDFs.

No entanto, os potenciais usuários devem estar cientes de suas limitações críticas. De acordo com a própria documentação do fornecedor, o Selecionar PDF só roda no Windows — não no Linux, macOS ou Xamarin. Isso apresenta uma barreira substancial ao considerar soluções de implantação baseadas em nuvem, como Linux Azure Functions ou Docker. A Edição Comunitária é limitada a 5 páginas por PDF e aplica uma marca d'água em cada página até que uma chave de licença seja adquirida. O motor de renderização padrão do Selecionar PDF é um WebKit interno; o motor Blink opcional é fornecido com o Chromium 124 (abril de 2024), que está atrasado em relação ao Chrome atual e pode causar problemas com recursos de CSS mais novos, como Grade CSS e a propriedade gap de Flexbox.

Limitações críticas do SelectPdf

Emitir Impacto Solução IronPDF
Exclusivo para Windows Não é possível implantar em Linux, Docker ou Azure Functions. Suporte completo multiplataforma
Motor WebKit padrão; opção Blink é distribuída com Chromium 124 (abril de 2024) Recursos CSS mais novos podem falhar no motor padrão Chromium atualizado
Limite de 5 páginas para a versão gratuita Marca d'água por página em todas as páginas até licenciado Teste generoso
.NET 10 somente no Windows Nenhuma implantação Linux/macOS/contêiner Completo .NET 10 em todas as plataformas
Implantação em nuvem bloqueada (não-Windows) Não é possível usarAWS Lambdaou Linux Azure Functions Nativo da nuvem

Comparação entre SelectPDF e IronPDF

Recurso Selecionar PDF IronPDF
Suporte da plataforma Somente para Windows Totalmente multiplataforma, mais de 10 distribuições
Suporte aos padrões modernos da Web WebKit por padrão; Opção Blink é distribuída com Chromium 124 (abril de 2024) CSS3 completo, Chromium atual
Limite máximo de páginas da versão gratuita 5 páginas + marca d'água por página Flexível, sem limite rígido
Preços $499 Desenvolvedor Único a $1,599 OEM Enterprise Preços transparentes e flexíveis
Suporte para .NET 10 Sim, mas somente no Windows Sim, todas as plataformas
Implantação em ambientes de nuvem Somente alvos Windows Totalmente suportado (Windows + Linux)
Grade CSS WebKit: limitado; Piscar (Chromium 124): com suporte Apoiado
Flexbox (propriedade gap) WebKit: não suportado; Blink: suportado Apoiado
Variáveis ​​CSS WebKit: não suportado; Blink: suportado Apoiado
Docker (Linux) Não suportado Imagens oficiais
Azure Functions (Linux) Não suportado Apoiado
AWS Lambda Não suportado Apoiado

O pacote NetCore do Selecionar PDF tem como alvo o .NET Standard 2.0 e é documentado como compatível com o .NET 5 até o .NET 10 — mas apenas no Windows, o que neutraliza essa compatibilidade para qualquer equipe implantando em contêineres Linux,AWS Lambdaou Azure App Service baseado em Linux. O IronPDF suporta as mesmas versões .NET e roda em Windows, Linux, macOS e Docker.


Antes de começar

Pré-requisitos

  1. .NET Environment: .NET Framework 4.6.1+ or .NET Core 3.1+ / .NET 5/6/7/8/9/10+
  2. Acesso ao NuGet : Capacidade de instalar pacotes NuGet.
  3. Licença do IronPDF: Obtenha sua chave de licença em IronPDF

Alterações no pacote NuGet

# Remove Selecionar PDF (use Select.HtmlToPdf.NetCore on .NET Core / .NET 5+)
dotnet remove package Select.HtmlToPdf
# or: dotnet remove package Select.HtmlToPdf.NetCore

# Install IronPDF
dotnet add package IronPdf
# Remove Selecionar PDF (use Select.HtmlToPdf.NetCore on .NET Core / .NET 5+)
dotnet remove package Select.HtmlToPdf
# or: dotnet remove package Select.HtmlToPdf.NetCore

# Install IronPDF
dotnet add package IronPdf
SHELL

Configuração de licença

// 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

Referência completa da API

Alterações de namespace

// 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

Mapeamentos da API principal

Selecionar PDF IronPDF Notas
HtmlToPdf ChromePdfRenderer Classe conversora principal
converter.ConvertHtmlString(html) renderer.RenderHtmlAsPdf(html) Conversão de string HTML
converter.ConvertUrl(url) renderer.RenderUrlAsPdf(url) Conversão de URL
doc.Save(path) pdf.SaveAs(path) Salvar em arquivo
doc.Close() Não é necessário O IronPDF cuida da limpeza.
converter.Options.PdfPageSize renderer.RenderingOptions.PaperSize Tamanho do papel
converter.Options.PdfPageOrientation renderer.RenderingOptions.PaperOrientation Orientação
converter.Options.MarginTop renderer.RenderingOptions.MarginTop Margem superior
converter.Options.MarginBottom renderer.RenderingOptions.MarginBottom Margem inferior
converter.Options.MarginLeft renderer.RenderingOptions.MarginLeft Margem esquerda
converter.Options.MarginRight renderer.RenderingOptions.MarginRight Margem direita
PdfPageSize.A4 PdfPaperSize.A4 enumeração de tamanho A4
PdfPageOrientation.Portrait PdfPaperOrientation.Portrait Enum de retratos
PdfPageOrientation.Landscape PdfPaperOrientation.Landscape Enigma da paisagem
{page_number} {page} Número da página (espaço reservado)
{total_pages} {total-pages} Número total de páginas (espaço reservado)

Exemplos de migração de código

Exemplo 1: Conversão de string HTML para PDF

Antes (SelecionarPdf):

// 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

Apó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 exemplo demonstra as principais diferenças da API. Selecionar PDF usa HtmlToPdf como a classe conversora, chamando ConvertHtmlString() para criar um PdfDocument, depois Save() e Close() para persistir e limpar.

IronPDF usa ChromePdfRenderer com RenderHtmlAsPdf(), retornando um PdfDocument que é salvo com SaveAs(). A chamada Close() é eliminada—IronPDF gerencia automaticamente os recursos. Consulte a documentação de conversão de HTML para PDF para obter exemplos completos.

Exemplo 2: Conversão de URL para PDF

Antes (SelecionarPdf):

// 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

Apó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

O método ConvertUrl() do Selecionar PDF mapeia diretamente para RenderUrlAsPdf() do IronPDF. A diferença crítica está no motor de renderização: o Selecionar PDF tem como padrão um WebKit interno e oferece uma opção Blink distribuída com o Chromium 124 (abril de 2024), enquanto o IronPDF usa o Chromium estável atual para suporte completo a CSS3 e JavaScript. Saiba mais em nossos tutoriais .

Exemplo 3: Configurações de página personalizadas e margens

Antes (SelecionarPdf):

// 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

Apó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

O padrão de configurações da página é quase idêntico, com alterações simples nos nomes das propriedades:

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

As propriedades de margem mantêm os mesmos nomes e unidades.


O problema exclusivo do Windows

Limitações de plataforma do SelectPdf

Apesar de quaisquer alegações de marketing, o Selecionar PDF explicitamente não oferece suporte a:

  • Linux (qualquer distribuição)
  • macOS
  • Contêineres Docker
  • Azure Functions
  • AWS Lambda
  • Funções do Google Cloud
  • Quaisquer sistemas baseados em ARM

Essa é uma limitação arquitetônica fundamental: o Selecionar PDF depende de bibliotecas específicas do Windows e não pode ser portado.

Comparação de suporte de plataforma

Plataforma Selecionar PDF IronPDF
Windows Server 2019+
Windows 10/11
Ubuntu 20.04+
Debian 10+
CentOS 7+
Alpine Linux
Amazon Linux 2
macOS 10.15+
Serviço de Aplicativos do Azure (Linux)
Azure Functions
AWS Lambda
Docker (Linux)
Kubernetes

O mecanismo de renderização desatualizado

Comparação de suporte a recursos CSS

O Selecionar PDF distribui três motores (por documentos do fornecedor): um WebKit interno (o padrão), Blink (introduzido na v19.1, distribuído com o Chromium 124.0.6367.201 — lançado em abril de 2024), e Chromium/CEF. O motor WebKit padrão não acompanhou os padrões modernos da web:

Recurso CSS SelectPdf (WebKit padrão) SelectPdf (Piscar, Chromium 124) IronPDF
Grade CSS ⚠ Parcial/incompleto ✅Completo
Flexbox (básico)
Flexbox (propriedade gap)
Variáveis ​​CSS
CSS calc() ⚠ Limitado
@media print ⚠ Limitado
@font-face ⚠ Limitado
Fontes da Web ⚠ Limitado
SVG ⚠ Básico ✅Completo
Transformações CSS ⚠ Limitado
Animações CSS ⚠ Parcial

Novas funcionalidades após a migração

Após migrar para o IronPDF, você obtém recursos que o SelectPDF não oferece:

Implantação multiplataforma

// ✅IronPDF- Works everywhere
using IronPdf;

// Serviço de Aplicativos do Azure (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;

// Serviço de Aplicativos do Azure (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

' ✅IronPDF- Works everywhere

' Serviço de Aplicativos do Azure (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

Suporte a 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

Não é necessário fechar (Close()).

O IronPDF gerencia os recursos automaticamente:

// 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 verificação para migração

Pré-migração

  • Auditar todas as utilizações de Selecionar PDF na base de código.
  • Documente as opções de conversor de corrente para mapeamento.
  • Identificar implementações de cabeçalho/rodapé
  • Verifique a sintaxe do espaço reservado do número da página ({page_number}{page})
  • Observe os padrões de tratamento de URLs base
  • Verificar as plataformas de implantação de destino
  • Obtenha a chave de licença do IronPDF em IronPDF

Atualizações de código

  • Remover pacote NuGet Select.HtmlToPdf
  • Instalar pacote NuGet IronPdf
  • Atualizar importações de namespace (using SelectPdf;using IronPdf;)
  • Substituir HtmlToPdf por ChromePdfRenderer
  • Substituir ConvertHtmlString() por RenderHtmlAsPdf()
  • Substituir ConvertUrl() por RenderUrlAsPdf()
  • Atualizar nomes de propriedades de opções (Options.PdfPageSizeRenderingOptions.PaperSize)
  • Converter PdfPageSize para PdfPaperSize
  • Converter PdfPageOrientation para PdfPaperOrientation
  • Substituir doc.Save() por pdf.SaveAs()
  • Remover todas as chamadas doc.Close()
  • Corrigir espaços reservados para o número da página ({page_number}{page}, {total_pages}{total-pages})
  • Adicionar inicialização de licença na inicialização do aplicativo

Pós-migração

  • Execute todos os testes unitários
  • Verificar a renderização CSS (especialmente Grid/Flexbox)
  • Testar a execução do JavaScript
  • Verificar os números de página do cabeçalho/rodapé
  • Testar nas plataformas alvo (Linux, Docker, etc.)
  • Teste de desempenho
  • Comparar a qualidade de saída do PDF
  • Atualizar pipelines de CI/CD
  • Testar implantações na nuvem (se aplicável)

ObserveSelectPDF é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado pela Outside Software SRL ou SelectPdf. 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 ...

Leia mais

Equipe de Suporte Iron

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim