IRONSOFTWAREHOME
VÍDEOS

Como definir a orientação e a rotação da página em .NET C# | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 de julho de 2026

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

EmitirImpactoSolução IronPDF
Exclusivo para WindowsNã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ãoChromium atualizado
Limite de 5 páginas para a versão gratuitaMarca d'água por página em todas as páginas até licenciadoTeste generoso
.NET 10 somente no WindowsNenhuma implantação Linux/macOS/contêinerCompleto .NET 10 em todas as plataformas
Implantação em nuvem bloqueada (não-Windows)Não é possível usarAWS Lambdaou Linux Azure FunctionsNativo da nuvem

Comparação entre SelectPDF e IronPDF

RecursoSelecionar PDFIronPDF
Suporte da plataformaSomente para WindowsTotalmente multiplataforma, mais de 10 distribuições
Suporte aos padrões modernos da WebWebKit 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 gratuita5 páginas + marca d'água por páginaFlexível, sem limite rígido
Preços$499 Desenvolvedor Único a $1,599 OEM EnterprisePreços transparentes e flexíveis
Suporte para .NET 10Sim, mas somente no WindowsSim, todas as plataformas
Implantação em ambientes de nuvemSomente alvos WindowsTotalmente suportado (Windows + Linux)
Grade CSSWebKit: limitado; Piscar (Chromium 124): com suporteApoiado
Flexbox (propriedade gap)WebKit: não suportado; Blink: suportadoApoiado
Variáveis ​​CSSWebKit: não suportado; Blink: suportadoApoiado
Docker (Linux)Não suportadoImagens oficiais
Azure Functions (Linux)Não suportadoApoiado
AWS LambdaNão suportadoApoiado

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
SHELL

Configuração de licença

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

Referência completa da API

Alterações de namespace

// Before: SelectPdf
using SelectPdf;

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

Mapeamentos da API principal

Selecionar PDFIronPDFNotas
HtmlToPdfChromePdfRendererClasse 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árioO IronPDF cuida da limpeza.
converter.Options.PdfPageSizerenderer.RenderingOptions.PaperSizeTamanho do papel
converter.Options.PdfPageOrientationrenderer.RenderingOptions.PaperOrientationOrientação
converter.Options.MarginToprenderer.RenderingOptions.MarginTopMargem superior
converter.Options.MarginBottomrenderer.RenderingOptions.MarginBottomMargem inferior
converter.Options.MarginLeftrenderer.RenderingOptions.MarginLeftMargem esquerda
converter.Options.MarginRightrenderer.RenderingOptions.MarginRightMargem direita
PdfPageSize.A4PdfPaperSize.A4enumeração de tamanho A4
PdfPageOrientation.PortraitPdfPaperOrientation.PortraitEnum de retratos
PdfPageOrientation.LandscapePdfPaperOrientation.LandscapeEnigma 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");
    }
}

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

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

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

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

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

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

PlataformaSelecionar PDFIronPDF
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 CSSSelectPdf (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");

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!

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

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)

Observe: SelectPDF é 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 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.