IRONSOFTWAREHOME
VÍDEOS

Como converter HTML para PDF em uma View ASP.NET MVC

Curtis Chau
Curtis Chau
Updated: 19 de julho de 2026

Migrar dePDFsharppara IronPDF transforma seu fluxo de trabalho de geração de PDF de desenho baseado em coordenadas manuais para modelagem moderna com HTML/CSS. Este guia fornece um caminho de migração passo a passo que substitui o posicionamento estilo GDI+ por tecnologias web, reduzindo o tempo de desenvolvimento e tornando a geração de PDF mais sustentável através de habilidades padrão de HTML/CSS.

Por que Migrar doPDFsharppara IronPDF

Compreendendo o PDFsharp

PDFsharp é uma biblioteca de criação de PDF de baixo nível que permite aos desenvolvedores gerar documentos PDF programaticamente. Lançado sob a licença MIT e mantido pela PDFsharp-Team (originalmente empira Software GmbH), oPDFsharp6.x visa .NET 8/9/10 e .NET Standard 2.0 e roda em múltiplas plataformas no Windows, Linux e macOS através da construção Core.PDFsharpfunciona principalmente como uma ferramenta para desenhar e compilar PDFs do zero usando uma API estilo GDI+, o que pode ser tanto benéfico quanto restritivo, dependendo da natureza do projeto.

PDFsharp às vezes é erroneamente considerado um conversor HTML-to-PDF, o que não é. Sua finalidade é dedicada exclusivamente à criação programática de documentos PDF. Enquanto existe um complemento da comunidade, HtmlRenderer.PdfSharp (por ArthurHub), destinado a fornecer capacidades de renderização HTML, ele cobre somente HTML 4.01 / CSS nível 2 — nenhum recurso CSS moderno como flexbox, grid ou JavaScript.

O Problema de Cálculo de Coordenadas

A abordagem GDI+ doPDFsharpsignifica que você deve:

  • Calcular as posições exatas X,Y para cada elemento
  • Monitorar manualmente a altura do conteúdo para evitar que a página ultrapasse o limite.
  • Gerencie a quebra de linha e a medição do texto você mesmo
  • Desenhar tabelas célula por célula com cálculos de borda
  • Gerencie documentos com várias páginas com quebras de página manuais.

A arquitetura doPDFsharprequer uma compreensão aprofundada do posicionamento usando coordenadas, frequentemente apresentando desafios na criação de layouts complexos.

Comparação entrePDFsharpe IronPDF

RecursoPDFsharpIronPDF
LicençaMIT (Gratuito)Comercial
Suporte para conversão de HTML para PDFNãoSim (compatível com HTML5/CSS3)
Suporte a CSS modernoNão (HTML 4.01 / CSS 2 via complemento HtmlRenderer)Sim (CSS3 completo)
Criação de DocumentosDesenho baseado em coordenadasModelos HTML/CSS
Sistema de layoutPosicionamento manual em X,YFluxo de CSS/Flexbox/Grid
Quebras de páginaCálculo manualControle automático + CSS
TabelasDesenhe as células individualmenteHTML <table>
EstilizaçãoFontes/cores baseadas em códigoFolhas de estilo CSS
API de DocumentosNível baixo (requer coordenadas)API de alto nível (API simplificada)
AtualizaçõesAtivo (linha 6.x)Regular

O IronPDF se destaca em cenários onde documentos HTML precisam ser convertidos em PDFs com total fidelidade. Esta biblioteca .NET oferece suporte a HTML5 e CSS3, garantindo o atendimento aos padrões modernos da web. Suas funcionalidades nativas de conversão de HTML para PDF permitem que os desenvolvedores aproveitem o conteúdo ou os modelos da web existentes, criados com ferramentas web modernas.

Para equipes em .NET moderno, o IronPDF oferece uma abordagem que elimina cálculos de coordenadas enquanto aproveita habilidades de desenvolvimento web.


Antes de começar

Pré-requisitos

  1. Ambiente .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
  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

# RemovePDFsharp(official PDFsharp-Team package IDs; case-sensitive on case-sensitive feeds)
dotnet remove package PDFsharp
# dotnet remove package PDFsharp-WPF        # if you used the WPF build
# dotnet remove package PDFsharp-GDI        # if you used the GDI build
# dotnet remove package PDFsharp-MigraDoc   # if you used MigraDoc on top
# dotnet remove package PdfSharpCore        # community .NET Standard port

# Add IronPDF
dotnet add package IronPdf
SHELL

Configuração de licença

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

Identificar Uso do PDFsharp

# Find allPDFsharpusages in your codebase
grep -r "PdfSharp\|XGraphics\|XFont\|XBrush\|XPen" --include="*.cs" .
SHELL

Referência completa da API

Alterações de namespace

// Before: PDFsharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;

// After: IronPDF
using IronPdf;
using IronPdf.Editing;

Mapeamentos da API principal

API doPDFsharpAPI IronPDF
new PdfDocument()ChromePdfRenderer.RenderHtmlAsPdf()
document.AddPage()Automático
XGraphics.FromPdfPage()Não é necessário
XGraphics.DrawString()HTML <p>, <h1>, etc.
XGraphics.DrawImage()HTML <img> tag
XFontCSS font-family, font-size
XBrush, XPenCores/bordas CSS
document.Save()pdf.SaveAs()
PdfReader.Open()PdfDocument.FromFile()

Exemplos de migração de código

Exemplo 1: Conversão de HTML para PDF

Before (PDFsharp):

// NuGet: Install-PackagePDFsharp (official PDFsharp-Team package, MIT)
//PDFsharpdoes NOT support HTML-to-PDF natively. The community add-on
// HtmlRenderer.PdfSharp covers HTML 4.01 / CSS level 2 only (no flexbox, grid, JS).
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        //PDFsharpdoes not have built-in HTML para PDF conversion
        // You need to manually parse HTML and render content
        PdfDocument document = new PdfDocument();
        PdfPage page = document.AddPage();
        XGraphics gfx = XGraphics.FromPdfPage(page);
        XFont font = new XFont("Arial", 12);
        
        //Manualtext rendering (no HTML support)
        gfx.DrawString("Hello from PDFsharp", font, XBrushes.Black,
            new XRect(0, 0, page.Width, page.Height),
            XStringFormats.TopLeft);
        
        document.Save("output.pdf");
    }
}
C#

Após (IronPDF):

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

class Program
{
    static void Main()
    {
        //IronPDF has native HTML para PDF rendering
        var renderer = new ChromePdfRenderer();
        
        string html = "<h1>Hello from IronPDF</h1><p>Easy HTML para PDF conversion</p>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        
        pdf.SaveAs("output.pdf");
    }
}
C#

Este exemplo destaca a diferença mais significativa entre as duas bibliotecas.PDFsharpnão fornece conversão HTML para PDF embutida—você deve criar manualmente um PdfDocument, adicionar um PdfPage, obter um objeto XGraphics, criar um XFont, e usar DrawString() com coordenadas XRect.

IronPDF oferece renderização nativa de HTML para PDF através de ChromePdfRenderer. O método RenderHtmlAsPdf() aceita strings HTML e as converte usando um mecanismo Chromium internamente. O IronPDF converte facilmente arquivos HTML em PDF, preservando todos os estilos definidos em HTML5 e CSS3, eliminando a necessidade de cálculos de coordenadas. Consulte a documentação de conversão de HTML para PDF para obter exemplos completos.

Exemplo 2: Adicionando texto/marca d'água a um PDF existente

Before (PDFsharp):

// NuGet: Install-PackagePDFsharp (official PDFsharp-Team package, MIT)
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        // Open existing PDF
        PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);
        PdfPage page = document.Pages[0];
        
        // Get graphics object
        XGraphics gfx = XGraphics.FromPdfPage(page);
        // Note: inPDFsharp6.x, XFontStyle was renamed to XFontStyleEx
        XFont font = new XFont("Arial", 20, XFontStyleEx.Bold);
        
        // Draw text at specific position
        gfx.DrawString("Watermark Text", font, XBrushes.Red,
            new XPoint(200, 400));
        
        document.Save("modified.pdf");
    }
}
C#

Após (IronPDF):

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

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

        // Open existing PDF
        var pdf = PdfDocument.FromFile("existing.pdf");
        
        // Add text stamp/watermark
        var textStamper = new TextStamper()
        {
            Text = "Watermark Text",
            FontSize = 20,
            FontFamily = "Arial",
            IsBold = true,
            FontColor = IronSoftware.Drawing.Color.Red,
            VerticalAlignment = VerticalAlignment.Middle,
            HorizontalAlignment = HorizontalAlignment.Center
        };
        
        pdf.ApplyStamp(textStamper);
        pdf.SaveAs("modified.pdf");
    }
}
C#

PDFsharp exige abrir o PDF com PdfReader.Open() especificando PdfDocumentOpenMode.Modify, acessando uma página, criando um objeto XGraphics, criando um XFont com estilo, e usando DrawString() com um XPoint especificando coordenadas exatas X,Y (200, 400).

IronPDF simplifica isso com PdfDocument.FromFile(), um objeto TextStamper com propriedades declarativas (Text, FontSize, FontFamily, IsBold, FontColor, VerticalAlignment, HorizontalAlignment), e ApplyStamp(). Não são necessários cálculos de coordenadas — basta especificar o alinhamento e o IronPDF cuida do posicionamento. Note que o namespace IronPdf.Editing é necessário para a funcionalidade de carimbo.

Exemplo 3: Criando um PDF com imagens

Before (PDFsharp):

// NuGet: Install-PackagePDFsharp (official PDFsharp-Team package, MIT)
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        // Create new PDF document
        PdfDocument document = new PdfDocument();
        PdfPage page = document.AddPage();
        XGraphics gfx = XGraphics.FromPdfPage(page);
        
        // Load and draw image
        XImage image = XImage.FromFile("image.jpg");
        
        // Calculate size to fit page
        double width = 200;
        double height = 200;
        
        gfx.DrawImage(image, 50, 50, width, height);
        
        // Add text
        XFont font = new XFont("Arial", 16);
        gfx.DrawString("Image in PDF", font, XBrushes.Black,
            new XPoint(50, 270));
        
        document.Save("output.pdf");
    }
}
C#

Após (IronPDF):

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

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

        // Create PDF from HTML with image
        var renderer = new ChromePdfRenderer();
        
        string html = @"
            <h1>Image in PDF</h1>
            <img src='image.jpg' style='width:200px; height:200px;' />
            <p>Easy image embedding with HTML</p>";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
        
        // Alternative: Add image to existing PDF
        var existingPdf = new ChromePdfRenderer().RenderHtmlAsPdf("<h1>Document</h1>");
        var imageStamper = new IronPdf.Editing.ImageStamper(new Uri("image.jpg"))
        {
            VerticalAlignment = IronPdf.Editing.VerticalAlignment.Top
        };
        existingPdf.ApplyStamp(imageStamper);
    }
}
C#

PDFsharp exige a criação de um novo PdfDocument, adicionar um PdfPage, obter XGraphics, carregar um XImage do arquivo, calcular largura e altura, usar DrawImage() com coordenadas exatas (50, 50, 200, 200), e adicionar texto separadamente com DrawString().

IronPDF usa HTML padrão com uma tag <img> e estilização CSS (style='width:200px; altura:200px;'). Não são necessários cálculos de coordenadas — o CSS cuida do layout.IronPDF também fornece ImageStamper para adicionar imagens a PDFs existentes com propriedades de alinhamento declarativas. Saiba mais em nossos tutoriais .


Notas críticas sobre migração

Mudança de paradigma: coordenadas para HTML/CSS

A mudança mais significativa é a transição do desenho baseado em coordenadas para HTML/CSS:

// PDFsharp: manual positioning
gfx.DrawString("Invoice", titleFont, XBrushes.Black, new XPoint(50, 50));
gfx.DrawString("Customer: John", bodyFont, XBrushes.Black, new XPoint(50, 80));

// IronPDF: let CSS handle layout
var html = @"
<div style='padding: 50px;'>
    <h1>Invoice</h1>
    <p>Customer: John</p>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);

Migração de fontes

// PDFsharp: XFont objects (PDFsharp 6.x renamed XFontStyle to XFontStyleEx)
var titleFont = new XFont("Arial", 24, XFontStyleEx.Bold);
var bodyFont = new XFont("Times New Roman", 12);

// IronPDF: CSS font properties
var html = @"
<style>
    h1 { font-family: Arial, sans-serif; font-size: 24px; font-weight: bold; }
    p { font-family: 'Times New Roman', serif; font-size: 12px; }
</style>";

Alteração de carregamento de documento

// PDFsharp: PdfReader.Open()
PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);

// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("existing.pdf");

Salvar alteração de método

// PDFsharp: document.Save()
document.Save("output.pdf");

// IronPDF: pdf.SaveAs()
pdf.SaveAs("output.pdf");

Alteração de acesso à página

// PDFsharp: document.Pages[0]
PdfPage page = document.Pages[0];

// IronPDF: Automático page handling or pdf.Pages[0]
// Pages are created automatically from HTML content
C#

Novas funcionalidades após a migração

Após a migração para IronPDF, você ganha capacidades que oPDFsharpnão pode fornecer:

HTML nativo para PDF

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Modern Web Content</h1>");

URL para PDF

var pdf = renderer.RenderUrlAsPdf("https://example.com");

Fusão de PDFs

var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);

Marcas d'água com HTML

pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");

Resumo da comparação de recursos

RecursoPDFsharpIronPDF
Desenho baseado em coordenadas✗ (use HTML)
HTML para PDF
Suporte a CSS3
Layout Flexbox/Grid
Carimbo de textoManual XGraphicsCarimbo de texto
Carimbo de imagemManual XImageCarimbo de Imagem
Mesclar PDFsManual
URL para PDF
Renderização Web ModernaMotor Chromium
Quebras de página automáticas

Lista de verificação para migração

Pré-migração

  • Inventário de todo uso dePDFsharpna base de código
  • Identificar os tipos de documentos que estão sendo gerados (relatórios, faturas, certificados)
  • Anote quaisquer operações gráficas ou de desenho personalizadas.
  • Planeje o armazenamento da chave de licença do IronPDF(variáveis ​​de ambiente recomendadas)
  • Teste primeiro com a licença de avaliação do IronPDF

Alterações no pacote

  • Remover pacote NuGet PDFsharp (pacote oficial do PDFsharp-Team)
  • Remover PDFsharp-WPF, PDFsharp-GDI, ou PDFsharp-MigraDoc se usados
  • Remover PdfSharpCore se você estava usando o port da comunidade .NET Standard
  • Instalar pacote NuGet IronPdf: dotnet add package IronPdf

Alterações no código

  • Atualizar importações de namespace (using PdfSharp.Pdf;using IronPdf;)
  • Adicionar using IronPdf.Editing; para funcionalidade de carimbo
  • Converter layouts baseados em coordenadas para HTML/CSS
  • Substituir XFont por propriedades de fonte CSS
  • Substituir XPen por cores/bordas CSS
  • Substituir XGraphics.DrawString() por elementos de texto HTML
  • Substituir XGraphics.DrawImage() por tags HTML <img>
  • Substituir PdfReader.Open() por PdfDocument.FromFile()
  • Substituir document.Save() por pdf.SaveAs()
  • Converter código de desenho de tabela em tabelas HTML

Pós-migração

  • Comparação visual dos PDFs gerados
  • Testar documentos com várias páginas
  • Verificar renderização da fonte
  • Adicionar novas funcionalidades (HTML para PDF, mesclagem, marcas d'água) conforme necessário.

Observe: PDFsharp é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, apoiado ou patrocinado pela PDFsharp-Team ou empira Software GmbH. 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.