Como Converter PDF para SVG em C#

Ahmad Sohail
Ahmad Sohail
Updated: 18 de setembro de 2026

O namespace PdfToSvg no IronPDF fornece uma API dedicada para converter páginas de PDF em gráficos vetoriais escaláveis. SVG (Scalable Vector Graphics) é um formato baseado em XML que permanece nítido em qualquer nível de zoom: ao contrário das imagens rasterizadas (PNG, JPEG), a saída SVG não pixeliza quando ampliada. Converter páginas de PDF para SVG é útil para incorporar conteúdo de documentos em páginas da web, gerar pré-visualizações independentes de resolução e extrair gráficos vetoriais de relatórios, faturas ou desenhos técnicos.

A conversão funciona por página: abra um PDF com PdfDocument.Open(), acesse páginas individuais através da coleção Pages, e então chame SaveAsSvg() ou ToSvgString() em cada PdfPage para produzir a saída SVG. Variantes assíncronas estão disponíveis para todos os métodos de conversão.

Esta é a direção PDF-para-SVG: extraindo SVG vetorial de arquivos PDF existentes. Para o fluxo de trabalho inverso (incorporando gráficos SVG em um novo PDF), veja o como fazer SVG para PDF.

Inicie um teste gratuito de 30 dias para testar a conversão de PDF para SVG.

NuGetInstalar com NuGet

PM > Install-Package IronPdf

Install IronPDF by running the command above in the NuGet Package Manager Console, or search for the package in the NuGet Package Manager.

O exemplo abaixo abre um PDF e salva sua primeira página como um arquivo SVG.

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Copie e execute este trecho de código.

    using PdfToSvg;
    
    using var pdf = PdfDocument.Open("report.pdf");
    pdf.Pages[0].SaveAsSvg("page-one.svg");
  3. 3Implante para testar em seu ambiente de produção.

    Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita
    arrow pointer
Início Rápido

Fluxo de Trabalho Mínimo (3 Passos)

  1. Instale o IronPDF via NuGet: Install-Package IronPdf
  2. Abra um PDF com PdfDocument.Open() do namespace PdfToSvg
  3. Chame SaveAsSvg() em qualquer página para gravar o arquivo SVG

Como Converter uma Única Página de PDF para SVG?

A classe PdfPage fornece quatro métodos de conversão:

  • SaveAsSvg(): grava a página em um caminho de arquivo ou Stream.
  • SaveAsSvgAsync(): a variante não bloqueante de SaveAsSvg().
  • ToSvgString(): retorna a marcação SVG como uma string, útil quando a saída alimenta um mecanismo de template, uma resposta HTTP ou um pipeline downstream.
  • ToSvgStringAsync(): a variante não bloqueante de ToSvgString().

Todos os quatro aceitam um argumento opcional SvgConversionOptions e um CancellationToken.

O exemplo abaixo salva a primeira página em um arquivo, obtém a mesma página de volta como uma string e a grava em um stream. Ele mostra todos os três alvos de saída.

using PdfToSvg;
using PdfDocument = PdfToSvg.PdfDocument;

using var pdf = PdfDocument.Open("invoice.pdf");

// Save to a file
pdf.Pages[0].SaveAsSvg("invoice-page1.svg");

// Get SVG as a string
string svgMarkup = pdf.Pages[0].ToSvgString();
Console.WriteLine($"SVG length: {svgMarkup.Length} characters");

// Save to a stream
using var stream = new FileStream("invoice-page1-stream.svg", FileMode.Create);
pdf.Pages[0].SaveAsSvg(stream);

PdfDocument implementa IDisposable, então envolvê-lo em uma instrução using libera recursos nativos quando a conversão é concluída. A coleção Pages é indexada a partir de zero, então Pages[0] é a primeira página.

Observe: PdfToSvg.PdfDocument é uma classe distinta de IronPdf.PdfDocument; a diretiva using PdfToSvg; a traz para o escopo.

Quando o PDF para SVG é a Escolha Certa?

SVG é a melhor saída quando uma página será ampliada, incorporada em um layout web ou reestilizada após a conversão: o texto permanece selecionável e pesquisável, e os caminhos permanecem editáveis em ferramentas vetoriais. Para páginas escaneadas ou fotográficas, não há conteúdo vetorial a preservar, então uma exportação raster é menor e não perde nada.

Como Converter Todas as Páginas de um PDF para SVG?

A coleção Pages é indexada a partir de zero, então adicionar um ao índice do loop fornece um número de página legível para cada arquivo de saída.

using PdfToSvg;
using PdfDocument = PdfToSvg.PdfDocument;

using var pdf = PdfDocument.Open("multi-page-report.pdf");

Console.WriteLine($"Total pages: {pdf.Pages.Count}");

for (int i = 0; i < pdf.Pages.Count; i++)
{
    var page = pdf.Pages[i];
    string outputPath = $"page_{i + 1}.svg";
    page.SaveAsSvg(outputPath);
    Console.WriteLine($"Saved: {outputPath}");
}
Observe: SVG não suporta documentos de várias páginas da mesma forma que PDF, então um PDF de 10 páginas produz 10 arquivos SVG individuais.

Para documentos grandes, a abordagem assíncrona descrita na próxima seção evita bloquear o thread da aplicação durante a conversão.

Minha biblioteca favorita desse tipo é o IronPDF. Ele permite a manipulação rápida e eficiente de arquivos PDF. Além disso, possui muitos recursos valiosos, como a exportação para o formato PDF/A e a assinatura digital de documentos PDF.

Milan Jovanovic

Microsoft MVP

Veja o estudo de caso

Com o IronOCR, podemos economizar US$ 40.000 por ano em processamento manual, ao mesmo tempo que aumentamos a produtividade e liberamos recursos para tarefas de alto impacto. Eu o recomendo fortemente.

Brent Matzelle

Diretor de Tecnologia, OPYN

Veja o estudo de caso

Como Usar Métodos Assíncronos para Conversão de PDF para SVG?

As variantes assíncronas, SaveAsSvgAsync() e ToSvgStringAsync(), mantêm a E/S fora do thread principal. PdfDocument.OpenAsync() carrega o PDF de forma assíncrona também. Esses métodos são a escolha certa em manipuladores ASP.NET Core, serviços em segundo plano ou qualquer aplicação com uma interface de usuário responsiva.

O exemplo abaixo abre o PDF e converte cada página de forma assíncrona, para que o thread de chamada permaneça livre enquanto o trabalho é executado.

using PdfToSvg;
using PdfDocument = PdfToSvg.PdfDocument;

using var pdf = await PdfDocument.OpenAsync("dashboard.pdf");

for (int i = 0; i < pdf.Pages.Count; i++)
{
    var page = pdf.Pages[i];
    await page.SaveAsSvgAsync($"dashboard_page_{i + 1}.svg");
}

// Or get the SVG markup as a string
string firstPageSvg = await pdf.Pages[0].ToSvgStringAsync();

Como Configurar Opções de Conversão SVG?

SvgConversionOptions controla como a saída SVG é gerada. As propriedades mais comumente usadas são:

  • IncludeAnnotations: defina como true para renderizar camadas de anotações do PDF na saída SVG
  • IncludeLinks: defina como true para transportar hyperlinks do PDF como elementos <a> no SVG, mantendo a saída navegável em um navegador
  • IncludeHiddenText: revela texto que existe no fluxo de conteúdo do PDF, mas não é visível, útil para acessibilidade ou pipelines de extração de texto
  • MinStrokeWidth: define um limite (em unidades de usuário SVG) para traços renderizados, evitando que caminhos de linha fina desapareçam em escalas de visualização normais

O código abaixo ativa anotações e links, define uma largura mínima de traço e então exporta cada página usando essas opções.

using PdfToSvg;
using PdfDocument = PdfToSvg.PdfDocument;

var options = new SvgConversionOptions
{
    IncludeAnnotations = true,
    IncludeLinks = true,
    IncludeHiddenText = false,
    MinStrokeWidth = 0.5
};

using var pdf = PdfDocument.Open("annotated-report.pdf");

for (int i = 0; i < pdf.Pages.Count; i++)
{
    var page = pdf.Pages[i];
    page.SaveAsSvg($"page_{i + 1}.svg", options);
}

Duas propriedades adicionais controlam como o espaçamento de texto é tratado. CollapseSpaceEmbeddedFont e CollapseSpaceLocalFont definem limites (como frações do tamanho da fonte) abaixo dos quais lacunas entre caracteres adjacentes são colapsadas em uma única execução de texto. Valores mais apertados preservam mais fidelidade de espaçamento; valores mais frouxos produzem arquivos SVG menores.

Para casos de uso avançados, a propriedade FontResolver aceita um resolvedor personalizado que mapeia referências de fontes PDF para recursos de fontes locais, essencial quando o documento de origem referencia fontes que não estão incorporadas. A propriedade ImageResolver controla como imagens raster dentro do PDF são tratadas na saída SVG: a codificação inline produz um arquivo SVG autônomo, enquanto a resolução de caminho externo mantém o SVG compacto. A referência da API SvgConversionOptions documenta todas as propriedades configuráveis.

Como Controlar a Visibilidade de Camadas de PDF na Saída SVG?

Um PDF com camadas expõe suas camadas através da coleção OptionalContentGroups em PdfDocument. Cada entrada é um OptionalContentGroup que emparelha um Name somente leitura (o rótulo da camada do documento de origem) com uma flag Visible de leitura/gravação. Definir Visible controla se essa camada é renderizada durante a conversão SVG, então um único PDF pode produzir diferentes variantes SVG sem editar o arquivo.

Você não precisa saber os nomes das camadas com antecedência. A coleção reflete as camadas realmente presentes no documento, então você pode enumerá-la, ler cada Name e desligar aquelas que deseja ocultar. ToString() retorna o mesmo valor que Name, o que é conveniente para registro.

O exemplo abaixo lista cada camada no PDF, oculta a chamada Watermark e exporta a primeira página com essa camada suprimida.

using PdfToSvg;
using PdfDocument = PdfToSvg.PdfDocument;

using var pdf = PdfDocument.Open("technical-drawing.pdf");

// List the layers that actually exist in this PDF
foreach (var layer in pdf.OptionalContentGroups)
{
    Console.WriteLine($"{layer.Name} visible: {layer.Visible}");
}

// Hide the watermark layer; every other layer stays visible
foreach (var layer in pdf.OptionalContentGroups)
{
    if (layer.Name == "Watermark")
    {
        layer.Visible = false;
    }
}

// Visibility set on OptionalContentGroups is applied during conversion
pdf.Pages[0].SaveAsSvg("drawing-no-watermark.svg");

Um caso de uso típico é um desenho técnico, onde camadas de anotação, dimensão ou marca d'água precisam ser alternadas independentemente. Como a visibilidade é definida por conversão, o mesmo PDF de origem pode produzir várias variantes SVG sem alterações no arquivo.

Como Abrir PDFs de Streams e com Senhas?

PdfDocument.Open() aceita um Stream além de um caminho de arquivo. O parâmetro leaveOpen (padrão false) controla se o stream é fechado quando o documento é descartado. Ambas as sobrecargas de caminho e stream aceitam um objeto OpenOptions para configuração, como fornecer uma senha para documentos criptografados, e um CancellationToken para cancelamento cooperativo em fluxos de trabalho de longa duração.

O trecho abre um PDF de um stream, salva sua primeira página como SVG, e então imprime se o arquivo está criptografado, seu título e sua contagem de páginas.

using PdfToSvg;
using PdfDocument = PdfToSvg.PdfDocument;

// Open from a stream (e.g., downloaded from a web API)
using var fileStream = File.OpenRead("document.pdf");
using var pdf = PdfDocument.Open(fileStream, leaveOpen: false);
pdf.Pages[0].SaveAsSvg("from-stream.svg");

// Check if a PDF is encrypted
Console.WriteLine($"Encrypted: {pdf.IsEncrypted}");

// Access document metadata
Console.WriteLine($"Title: {pdf.Info.Title}");
Console.WriteLine($"Pages: {pdf.Pages.Count}");

A propriedade Info expõe metadados do documento incluindo título, autor e data de criação. A propriedade Permissions relata quais operações o PDF permite (impressão, cópia), e IsEncrypted indica se o arquivo requer uma senha para abrir.

Próximos Passos

O namespace PdfToSvg converte páginas de PDF em arquivos, streams ou strings SVG. Ele funciona por página, com controle total sobre anotações, links, visibilidade de texto, largura de traço e alternância de camadas. Todos os métodos têm variantes assíncronas para fluxos de trabalho não bloqueantes.

Explore a referência da API PdfPage para a superfície completa do método de conversão, a referência SvgConversionOptions para cada propriedade configurável, e a referência PdfDocument para opções de abertura e carregamento. Para a direção inversa (incorporando SVG em um PDF), veja o como fazer SVG para PDF.

Veja opções de licenciamento a partir de $999.

Perguntas frequentes

Qual é o propósito de converter arquivos PDF para o formato SVG?

Converter arquivos PDF para o formato SVG permite incorporar conteúdo de documentos em páginas web, gerar pré-visualizações independentes de resolução e extrair gráficos vetoriais de relatórios, faturas ou desenhos técnicos. O SVG é escalável e não pixeliza, tornando-o ideal para aplicações web e de design.

Como o PdfToSvg do IronPDF pode ser utilizado para uma conversão de PDF para SVG?

O namespace PdfToSvg do IronPDF fornece uma API dedicada para converter páginas de PDF para o formato SVG. Você pode abrir um PDF com PdfDocument.Open(), acessar as páginas individuais através da coleção Pages e então chamar SaveAsSvg() ou ToSvgString() em cada PdfPage para produzir a saída SVG.

As páginas de PDF podem ser convertidas para SVG de forma assíncrona usando o IronPDF?

Sim, o IronPDF suporta conversões assíncronas de PDF para SVG. Você pode usar os métodos SaveAsSvgAsync() e ToSvgStringAsync() para manter as operações de I/O fora da thread principal, o que é benéfico em aplicações responsivas.

O que são SvgConversionOptions no IronPDF?

SvgConversionOptions no IronPDF controlam como a saída SVG é gerada. As opções incluem se devem ser incluídas anotações, links e texto oculto na saída, bem como definir a largura mínima do traço. Essas opções permitem a personalização do processo de conversão para SVG.

É possível controlar a visibilidade das camadas ao converter PDF para SVG usando o IronPDF?

Sim, o IronPDF permite controlar a visibilidade das camadas de PDF usando a coleção OptionalContentGroups no PdfDocument. Você pode alternar a visibilidade de camadas específicas, o que determina se elas são renderizadas durante a conversão para SVG.

Como o IronPDF lida com arquivos PDF criptografados para conversão para SVG?

O IronPDF pode abrir arquivos PDF criptografados usando o objeto OpenOptions, que inclui o fornecimento de uma senha. Isso permite que PDFs criptografados sejam convertidos em SVG após a autenticação.

Quais são os benefícios de usar o formato SVG para PDFs em aplicações web?

O formato SVG é benéfico para aplicações web porque mantém gráficos escaláveis de alta qualidade sem pixelização, suporta texto selecionável e pesquisável, e permite modificações de estilo usando CSS ou scripts.

O IronPDF pode converter todas as páginas de um PDF em arquivos SVG individuais?

Sim, o IronPDF pode converter todas as páginas de um PDF em arquivos SVG individuais. Ao iterar pela coleção Pages, você pode salvar cada página como um arquivo SVG separado, o que é útil para PDFs de várias páginas.

Quais são os passos mínimos para começar a converter um PDF para SVG usando o IronPDF?

Para converter um PDF para SVG usando o IronPDF, você precisa instalar o IronPDF via NuGet, abrir um PDF com PdfDocument.Open() do namespace PdfToSvg e chamar SaveAsSvg() em qualquer página para gravar o arquivo SVG.

O IronPDF suporta a abertura de PDFs a partir de streams para fins de conversão?

Sim, o IronPDF suporta a abertura de PDFs a partir de streams. Você pode usar PdfDocument.Open() com uma entrada de Stream, tornando-o versátil para cenários onde os PDFs não são armazenados como arquivos, mas estão sendo transmitidos de outras fontes.

Ahmad é um desenvolvedor full-stack com uma sólida base em C#, Python e tecnologias web. Ele tem um grande interesse em construir soluções de software escaláveis e gosta de explorar como design e funcionalidade se encontram em aplicações do mundo real.

Leia mais

Pronto para começar?

Nuget Downloads 21,916,531Versão:2026.11recém-lançado