IRONSOFTWAREHOME
VÍDEOS

Como renderizar um arquivo ZIP HTML para PDF em C# | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 de julho de 2026

VectSharp (por Giorgio Bianchini, arklumpus/VectSharp) é uma biblioteca leve de gráficos vetoriais multiplataforma para .NET Standard 2.0, frequentemente usada para visualização científica e ilustrações técnicas. Quando equipes de desenvolvimento precisam gerar documentos comerciais, relatórios, faturas ou conteúdo baseado em HTML, o paradigma de gráficos-primeiro doVectSharpcria fricção. É projetado para figuras e gráficos, não para gerar documentos.

Este guia fornece um caminho completo de migração doVectSharppara o IronPDF, com instruções passo a passo, comparações de código e exemplos práticos para desenvolvedores .NET profissionais que estejam avaliando essa transição.

Por que migrar do VectSharp?

VectSharp é uma biblioteca de gráficos vetoriais projetada para criar diagramas, gráficos e ilustrações técnicas, com camadas de saída plugináveis, incluindo VectSharp.PDF, VectSharp.SVG e VectSharp.Raster. Não é projetado para geração de documentos — é uma biblioteca de desenho cujo pacote VectSharp.PDF adiciona um método de extensão SaveAsPDF em Document. Os principais motivos pelos quais as equipes de desenvolvimento consideram a migração incluem:

Foco exclusivamente científico: OVectSharpfoi projetado para visualização e plotagem de dados, não para documentos comerciais como faturas, relatórios ou certificados.

Sem suporte para HTML: oVectSharpnão consegue converter HTML ou CSS em PDF. Cada elemento deve ser desenhado manualmente usando comandos de gráficos vetoriais.

API baseada em coordenadas: Cada elemento deve ser posicionado com coordenadas X,Y exatas. Não há layout, fluxo ou quebra de texto automáticos.

Sem estilização CSS: Toda a estilização é feita programaticamente por meio de chamadas de método. Os desenvolvedores web não podem aproveitar seus conhecimentos prévios de CSS.

Sem JavaScript: OVectSharpnão consegue renderizar conteúdo web dinâmico, gráficos interativos ou visualizações baseadas em JavaScript.

Sem formatação de texto: a quebra automática de texto, a paginação e o layout de fluxo não estão disponíveis. Os desenvolvedores precisam calcular manualmente as posições do texto e as quebras de página.

Paradigma "Gráficos em Primeiro Lugar": A biblioteca foi projetada para diagramas, não para relatórios ou faturas. A geração de documentos exige um extenso trabalho manual.

O Problema Central: Biblioteca Gráfica vs. Gerador de Documentos

OVectSharpexige desenho vetorial manual para cada elemento:

// VectSharp:Manualvector drawing for every element
Page page = new Page(595, 842);
Graphics graphics = page.Graphics;
graphics.FillRectangle(50, 50, 200, 100, Colour.FromRgb(0, 0, 255));
graphics.FillText(60, 70, "Invoice",
    new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 20),
    Colours.White);
// ... continue drawing every single element manually
C#

O IronPDF utiliza HTML — o formato universal de documentos:

// IronPDF: Declarative HTML for document creation
var html = "<h1>Invoice</h1><p>Customer: Acme Corp</p>";
var pdf = renderer.RenderHtmlAsPdf(html);

##IronPDF vs VectSharp: Comparação de Recursos

Compreender as diferenças arquitetônicas ajuda os responsáveis ​​pelas decisões técnicas a avaliar o investimento em migração:

RecursoVectSharpIronPDF
Uso principalGráficos vetoriaisCriação de Documentos
Saída em PDFSimSim
Suporte a HTMLNãoSim
LicenciamentoLGPL-3.0-onlyComercial
Código abertoSimParcialmente (recursos comerciais)
Ideal paraVisualizações científicasDocumentos PDF em geral
PersonalizaçãoLimitado a gráficosExtenso, relacionado a documentos
HTML para PDFNãoCromo completo
URL para PDFNãoSim
Suporte a CSSNãoCSS3 completo
JavaScriptNãoES2024 completo
Layout automáticoNãoSim
Quebras de página automáticasNãoSim
Quebra de textoManualAutomático
Mesclar PDFsNãoSim
Dividir PDFsNãoSim
Proteção por senhaNãoSim
Assinaturas digitaisNãoSim
Curva de AprendizagemAlto (coordenadas)Baixo (HTML/CSS)
Verbosidade do códigoMuito altoBaixo

Guia rápido: Migração doVectSharppara o IronPDF

A migração pode começar imediatamente com esses passos fundamentais.

Passo 1: Substituir pacotes NuGet

Remova todos os pacotes VectSharp:

# RemoveVectSharppackages (PDF first, then core)
dotnet remove package VectSharp.PDF
dotnet remove package VectSharp
SHELL

Instale o IronPDF:

# Install IronPDF
dotnet add package IronPdf
SHELL

Etapa 2: Atualizar Namespaces

Substituir namespacesVectSharppelo namespace IronPDF:

// Before (VectSharp)
using VectSharp;
using VectSharp.PDF;

// After (IronPDF)
using IronPdf;

Etapa 3: Inicializar a licença

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

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

Exemplos de migração de código

Converter HTML para PDF

OVectSharpnão suporta a conversão de HTML para PDF. Essa diferença fundamental de capacidades influencia muitas decisões de migração.

Abordagem VectSharp:

// NuGet: Install-Package VectSharp.PDF
using VectSharp;
using VectSharp.PDF;
using VectSharp.SVG;
using System.IO;

class Program
{
    static void Main()
    {
        //VectSharpdoesn't directly support HTML to PDF
        // It requires manual creation of graphics objects
        Document doc = new Document();
        Page page = new Page(595, 842); // A4 size
        Graphics graphics = page.Graphics;
        
        graphics.FillText(100, 100, "Hello from VectSharp",
            new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 24),
            Colours.Black);
        
        doc.Pages.Add(page);
        doc.SaveAsPDF("output.pdf");
    }
}
C#

Abordagem IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF</h1><p>This is HTML content.</p>");
        pdf.SaveAs("output.pdf");
    }
}

VectSharp requer criar um objeto Document, Page e Graphics, depois posicionar manualmente o texto com coordenadas exatas e objetos de fonte. O IronPDF renderiza HTML diretamente com suporte completo a estilos CSS.

Para cenários avançados de conversão de HTML para PDF, consulte o guia de conversão de HTML para PDF .

Criando documentos com várias páginas

Documentos com várias páginas revelam as diferenças arquitetônicas entre essas bibliotecas PDF do .NET .

Abordagem VectSharp:

// NuGet: Install-Package VectSharp.PDF
using VectSharp;
using VectSharp.PDF;
using System;

class Program
{
    static void Main()
    {
        Document doc = new Document();
        
        FontFamily helvetica =
            FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica);
        Font titleFont = new Font(helvetica, 24);
        Font bodyFont = new Font(helvetica, 14);

        // Page 1
        Page page1 = new Page(595, 842);
        Graphics g1 = page1.Graphics;
        g1.FillText(50, 50, "Page 1", titleFont, Colours.Black);
        g1.FillText(50, 100, "First page content", bodyFont, Colours.Black);
        doc.Pages.Add(page1);
        
        // Page 2
        Page page2 = new Page(595, 842);
        Graphics g2 = page2.Graphics;
        g2.FillText(50, 50, "Page 2", titleFont, Colours.Black);
        g2.FillText(50, 100, "Second page content", bodyFont, Colours.Black);
        doc.Pages.Add(page2);
        
        doc.SaveAsPDF("multipage.pdf");
    }
}
C#

Abordagem IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        string html = @"
            <h1>Page 1</h1>
            <p>First page content</p>
            <div style='page-break-after: always;'></div>
            <h1>Page 2</h1>
            <p>Second page content</p>
        ";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("multipage.pdf");
    }
}

VectSharp requer criação de objetos Page separados, contextos Graphics separados, e posicionamento manual de cada elemento de texto com coordenadas e objetos de fonte para cada página.IronPDF usa uma única string HTML com CSS page-break-after: always para criar documentos de várias páginas automaticamente.

Desenho de formas e texto

Os recursos gráficos mostram onde oVectSharpse destaca, mas também onde os padrões da web oferecem funcionalidade equivalente com menos código.

Abordagem VectSharp:

// NuGet: Install-Package VectSharp.PDF
using VectSharp;
using VectSharp.PDF;
using System;

class Program
{
    static void Main()
    {
        Document doc = new Document();
        Page page = new Page(595, 842);
        Graphics graphics = page.Graphics;
        
        // Draw rectangle
        graphics.FillRectangle(50, 50, 200, 100, Colour.FromRgb(0, 0, 255));
        
        // Draw circle
        GraphicsPath circle = new GraphicsPath();
        circle.Arc(400, 100, 50, 0, 2 * Math.PI);
        graphics.FillPath(circle, Colour.FromRgb(255, 0, 0));
        
        // Add text - FillText requires a colour parameter
        graphics.FillText(50, 200, "VectSharp Graphics",
            new Font(FontFamily.ResolveFontFamily(FontFamily.StandardFontFamilies.Helvetica), 20),
            Colours.Black);
        
        doc.Pages.Add(page);
        doc.SaveAsPDF("shapes.pdf");
    }
}
C#

Abordagem IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        string html = @"
            <div style='width: 200px; height: 100px; background-color: blue; margin: 50px;'></div>
            <div style='width: 100px; height: 100px; background-color: red; 
                        border-radius: 50%; margin-left: 350px; margin-top: -50px;'></div>
            <h2 style='margin-left: 50px;'>IronPDF Graphics</h2>
        ";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("shapes.pdf");
    }
}

VectSharp requer a criação de objetos GraphicsPath, chamadas de Arc() com parâmetros matemáticos precisos, e gestão de cores através de Colour.FromRgb().IronPDF usa propriedades CSS familiares: background-color, border-radius: 50% para círculos e margens padrão.

Referência de mapeamento da APIVectSharppara IronPDF

Este mapeamento acelera a migração ao mostrar equivalentes diretos da API:

VectSharpIronPDF
DocumentChromePdfRenderer
PageAutomático
GraphicsHTML/CSS
graphics.FillRectangle()CSS background-color em <div>
graphics.StrokeRectangle()CSS border em <div>
graphics.FillText()Elementos de texto HTML
graphics.StrokePath()Bordas SVG ou CSS
GraphicsPathElemento SVG <path>
Colour.FromRgb()Valores de cor CSS
Font / FontFamilyCSS font-family
doc.SaveAsPDF()pdf.SaveAs()
Dimensionamento manual de páginasRenderingOptions.PaperSize

Estratégias de Migração

Estratégia 1: Converter o código de desenho em HTML/CSS

Substitua o desenho baseado em coordenadas por elementos HTML:

// VectSharp
graphics.FillRectangle(100, 50, 300, 80, Colour.FromRgb(0, 102, 204));
graphics.FillText(110, 80, "Header", font, Colours.White);

//IronPDF HTML equivalent
<div style="
    position: absolute;
    left: 100px;
    top: 50px;
    width: 300px;
    height: 80px;
    background: rgb(0, 102, 204);
    color: white;
    padding: 10px;
">Header</div>

Estratégia 2: Usar SVG para gráficos vetoriais

Para formas complexas, use SVG embutido no seu HTML:

//VectSharppath
GraphicsPath path = new GraphicsPath();
path.MoveTo(100, 100);
path.LineTo(200, 50);
path.LineTo(300, 100);
path.Close();
graphics.FillPath(path, Colours.Blue);

//IronPDF SVG equivalent
<svg><polygon points="100,100 200,50 300,100" fill="blue"/></svg>
C#

Estratégia 3: Use bibliotecas de gráficos JavaScript

Para visualizações científicas — especialidade doVectSharp— o IronPDF pode aproveitar bibliotecas JavaScript poderosas como Chart.js, D3.js ou Plotly:

var html = @"
<script src='https://cdn.plot.ly/plotly-latest.min.js'></script>
<div id='chart'></div>
<script>
    Plotly.newPlot('chart', [{
        x: [1, 2, 3, 4],
        y: [10, 15, 13, 17],
        type: 'scatter'
    }]);
</script>";

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
var pdf = renderer.RenderHtmlAsPdf(html);

Problemas e soluções comuns em migrações

Questão 1: Diferenças entre sistemas de coordenadas

O VectSharp utiliza pontos a partir da origem no canto superior esquerdo com posicionamento manual.

Solução: Utilize o posicionamento CSS:

.element {
    position: absolute;
    top: 50px;
    left: 100px;
}
Text

Edição 2: Objetos de fonte

VectSharp cria objetos Font e FontFamily programaticamente.

Solução: Use CSS font-family:

<style>
    body { font-family: Arial, sans-serif; font-size: 12pt; }
</style>
HTML

Edição 3: Manipulação de Cores

VectSharp usa chamadas de método Colour.FromRgb().

Solução: Use cores CSS:

.header { color: rgb(0, 102, 204); background-color: #f0f0f0; }
Text

Edição 4: Caminhos Gráficos

VectSharp utiliza API complexa GraphicsPath com métodos MoveTo, LineTo, Arc.

Solução: Utilize SVG para gráficos vetoriais:

<svg>
    <path d="M 100 100 L 200 50 L 300 100 Z" fill="blue"/>
</svg>
HTML

Lista de verificação de migração do VectSharp

Tarefas pré-migração

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

grep -r "using VectSharp" --include="*.cs" .
grep -r "Graphics\|FillRectangle\|FillText" --include="*.cs" .
SHELL

Tamanhos de página de documento (os padrões new Page(595, 842)). Observe esquemas de cores usando Colour.FromRgb(). Identificar configurações de fonte. Mapeie gráficos vetoriais complexos usando GraphicsPath para conversão SVG.

Tarefas de atualização de código

  1. Remova os pacotes NuGet do VectSharp
  2. Instale o pacote NuGet do IronPDF
  3. Atualize as instruções usando de VectSharp para IronPdf
  4. Converta chamadas FillRectangle para caixas CSS com background-color
  5. Converta chamadas FillText para elementos de texto HTML com estilo CSS
  6. Converta operações GraphicsPath para elementos SVG <path>
  7. Substitua o gerenciamento manual de páginas por RenderingOptions.PaperSize
  8. Adicionar inicialização de licença na inicialização

Testes pós-migração

Após a migração, verifique os seguintes aspectos:

  • Comparar a saída visual entre as versõesVectSharpe IronPDF
  • Verifique se as cores correspondem usando equivalentes CSS dos valores Colour.FromRgb()
  • Verificar a precisão do posicionamento dos elementos convertidos a partir do posicionamento baseado em coordenadas.
  • Testar quebras de página em documentos com várias páginas
  • Verificar se os gráficos vetoriais são renderizados corretamente em SVG.

Principais benefícios da migração para o IronPDF

A migração doVectSharppara o IronPDF oferece diversas vantagens para a geração de documentos:

Conteúdo baseado em HTML: os desenvolvedores web podem aproveitar suas habilidades existentes em HTML e CSS. Não é necessário aprender APIs de desenho baseadas em coordenadas.

Layout automático: a quebra de texto, a paginação e o layout de fluxo acontecem automaticamente. Não é necessário calcular manualmente as posições dos elementos.

Suporte a CSS moderno: CSS3 completo, incluindo layouts Flexbox e Grid. Os designs responsivos são convertidos diretamente para PDF.

Execução de JavaScript : Gráficos interativos com Chart.js, D3.js ou Plotly são renderizados corretamente. O conteúdo dinâmico funciona conforme o esperado.

URL para PDF: Capture qualquer página da web como um PDF — funcionalidade impossível com o VectSharp.

Operações com PDF: Mesclar, dividir, adicionar marcas d'água, proteção por senha e assinaturas digitais são recursos integrados.

**Menor verbosidade do código:**HTML/CSSé declarativo e legível. O mesmo documento requer significativamente menos código do que a abordagem de desenho imperativo do VectSharp.

Desenvolvimento Ativo: As atualizações regulares do IronPDF garantem compatibilidade com as versões atuais e futuras do .NET.

Observe: VectSharp é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado pela VectSharp. 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.