Cómo Convertir PDF a SVG en C#

Ahmad Sohail
Ahmad Sohail
Updated: 18 de septiembre de 2026

El espacio de nombres PdfToSvg en IronPDF proporciona una API dedicada para convertir páginas PDF a gráficos vectoriales escalables. SVG (Scalable Vector Graphics) es un formato basado en XML que se mantiene nítido a cualquier nivel de zoom: a diferencia de las imágenes rasterizadas (PNG, JPEG), la salida SVG no se pixela cuando se escala. Convertir páginas PDF a SVG es útil para incrustar contenido de documentos en páginas web, generar vistas previas independientes de la resolución y extraer gráficos vectoriales de informes, facturas o dibujos técnicos.

La conversión funciona por página: abre un PDF con PdfDocument.Open(), accede a páginas individuales a través de la colección Pages, luego llama a SaveAsSvg() o ToSvgString() en cada PdfPage para producir la salida SVG. Hay variantes asíncronas disponibles para todos los métodos de conversión.

Esta es la dirección de PDF a SVG: extrayendo SVG vectorial de archivos PDF existentes. Para el flujo de trabajo inverso (incrustar gráficos SVG en un nuevo PDF), consulta el cómo hacer de SVG a PDF.

Comienza una prueba gratuita de 30 días para probar la conversión de PDF a SVG.

NuGetInstalar con 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.

El ejemplo a continuación abre un PDF y guarda su primera página como un archivo SVG.

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Copie y ejecute este fragmento de código.

    using PdfToSvg;
    
    using var pdf = PdfDocument.Open("report.pdf");
    pdf.Pages[0].SaveAsSvg("page-one.svg");
  3. 3Despliegue para probar en su entorno real

    Comienza a usar IronPDF en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer
Inicio rápido

Flujo de Trabajo Mínimo (3 Pasos)

  1. Instala IronPDF a través de NuGet: Install-Package IronPdf
  2. Abre un PDF con PdfDocument.Open() desde el espacio de nombres PdfToSvg
  3. Llama a SaveAsSvg() en cualquier página para escribir el archivo SVG

¿Cómo Convertir una Sola Página PDF a SVG?

La clase PdfPage proporciona cuatro métodos de conversión:

  • SaveAsSvg(): escribe la página en una ruta de archivo o Stream.
  • SaveAsSvgAsync(): la variante no bloqueante de SaveAsSvg().
  • ToSvgString(): devuelve el marcado SVG como un string, útil cuando la salida alimenta un motor de plantillas, una respuesta HTTP o una canalización posterior.
  • ToSvgStringAsync(): la variante no bloqueante de ToSvgString().

Los cuatro aceptan un argumento opcional SvgConversionOptions y un CancellationToken.

El ejemplo a continuación guarda la primera página en un archivo, obtiene la misma página como una cadena y la escribe en un flujo. Muestra los tres objetivos de salida.

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, por lo que envolverlo en una declaración using libera recursos nativos cuando la conversión ha terminado. La colección Pages está indexada desde cero, por lo que Pages[0] es la primera página.

Por favor nota: PdfToSvg.PdfDocument es una clase distinta de IronPdf.PdfDocument; la directiva using PdfToSvg; la pone en alcance.

¿Cuándo es la Conversión de PDF a SVG la Elección Correcta?

SVG es la mejor salida cuando una página será ampliada, incrustada en un diseño web o restilizada después de la conversión: el texto permanece seleccionable y buscable, y las rutas permanecen editables en herramientas vectoriales. Para páginas escaneadas o fotográficas no hay contenido vectorial que preservar, por lo que una exportación rasterizada es más pequeña y no pierde nada.

¿Cómo Convertir Todas las Páginas de un PDF a SVG?

La colección Pages está indexada desde cero, por lo que al agregar uno al índice del bucle se obtiene un número de página legible para cada archivo de salida.

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}");
}
Por favor nota: SVG no admite documentos de varias páginas como lo hace PDF, por lo que un PDF de 10 páginas produce 10 archivos SVG individuales.

Para documentos grandes, el enfoque asíncrono descrito en la siguiente sección evita bloquear el hilo de la aplicación durante la conversión.

Mi biblioteca favorita de este tipo es IronPDF. Permite una manipulación rápida y eficiente de archivos PDF. También tiene muchas funciones valiosas, como exportar al formato PDF/A y firmar documentos PDF digitalmente.

Milan Jovanovic

Microsoft MVP

Ver estudio de caso

IronOCR significa que podemos ahorrar $40,000 anualmente en el procesamiento manual, mientras mejoramos la productividad y liberamos recursos para tareas de alto impacto. Lo recomendaría encarecidamente.

Brent Matzelle

Director de Tecnología, OPYN

Ver estudio de caso

¿Cómo Usar Métodos Asíncronos para la Conversión de PDF a SVG?

Las variantes asíncronas, SaveAsSvgAsync() y ToSvgStringAsync(), mantienen la E/S fuera del hilo principal. PdfDocument.OpenAsync() carga el PDF de manera asíncrona también. Estos métodos son la elección correcta en controladores de ASP.NET Core, servicios en segundo plano o cualquier aplicación con una interfaz de usuario receptiva.

El ejemplo a continuación abre el PDF y convierte cada página de manera asíncrona, por lo que el hilo que llama permanece libre mientras el trabajo se ejecuta.

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();

¿Cómo Configurar Opciones de Conversión SVG?

SvgConversionOptions controla cómo se genera la salida SVG. Las propiedades más comúnmente usadas son:

  • IncludeAnnotations: establece en true para renderizar capas de anotación PDF en la salida SVG
  • IncludeLinks: establece en true para llevar los hipervínculos PDF como elementos <a> en el SVG, manteniendo la salida navegable en un navegador
  • IncludeHiddenText: muestra texto que existe en el flujo de contenido PDF pero no es visible, útil para accesibilidad o canalizaciones de extracción de texto
  • MinStrokeWidth: establece un mínimo (en unidades de usuario SVG) para trazos renderizados, evitando que las rutas de línea fina desaparezcan a escalas de visualización normales

El código a continuación activa anotaciones y enlaces, establece un ancho mínimo de trazo, luego exporta cada página usando esas opciones.

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

Dos propiedades adicionales controlan cómo se maneja el espaciado de texto. CollapseSpaceEmbeddedFont y CollapseSpaceLocalFont establecen umbrales (como fracciones del tamaño de fuente) por debajo de los cuales los espacios entre caracteres adyacentes se colapsan en una sola ejecución de texto. Valores más ajustados preservan más fidelidad de espaciado; valores más sueltos producen archivos SVG más pequeños.

Para casos de uso avanzados, la propiedad FontResolver acepta un resolvedor personalizado que mapea referencias de fuentes PDF a recursos de fuentes locales, esencial cuando el documento fuente hace referencia a fuentes que no están incrustadas. La propiedad ImageResolver controla cómo se manejan las imágenes rasterizadas dentro del PDF en la salida SVG: la codificación en línea produce un archivo SVG autónomo, mientras que la resolución de rutas externas mantiene el SVG compacto. La referencia de API de SvgConversionOptions documenta cada propiedad configurable.

¿Cómo Controlar la Visibilidad de Capas PDF en la Salida SVG?

Un PDF con capas expone sus capas a través de la colección OptionalContentGroups en PdfDocument. Cada entrada es un OptionalContentGroup que empareja un Name de solo lectura (la etiqueta de capa del documento fuente) con un indicador Visible de get/set. Establecer Visible controla si esa capa se renderiza durante la conversión SVG, por lo que un solo PDF puede producir diferentes variantes SVG sin editar el archivo.

No necesitas conocer los nombres de las capas de antemano. La colección refleja las capas realmente presentes en el documento, por lo que puedes enumerarla, leer cada Name y apagar las que deseas ocultar. ToString() devuelve el mismo valor que Name, lo cual es conveniente para el registro.

El ejemplo a continuación enumera cada capa en el PDF, oculta la llamada Watermark y exporta la primera página con esa capa 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");

Un caso de uso típico es un dibujo técnico, donde las capas de anotación, dimensión o marca de agua necesitan ser activadas independientemente. Debido a que la visibilidad se establece por conversión, el mismo PDF fuente puede producir varias variantes SVG sin cambios en el archivo.

¿Cómo Abrir PDFs desde Streams y con Contraseñas?

PdfDocument.Open() acepta un Stream además de una ruta de archivo. El parámetro leaveOpen (por defecto false) controla si el flujo se cierra cuando el documento se desecha. Tanto las sobrecargas de ruta como de flujo aceptan un objeto OpenOptions para configuración, como proporcionar una contraseña para documentos cifrados, y un CancellationToken para cancelación cooperativa en flujos de trabajo de larga duración.

El fragmento abre un PDF desde un flujo, guarda su primera página como SVG, luego imprime si el archivo está cifrado, su título y su recuento 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}");

La propiedad Info expone metadatos del documento incluyendo título, autor y fecha de creación. La propiedad Permissions informa qué operaciones permite el PDF (impresión, copia), y IsEncrypted indica si el archivo requiere una contraseña para abrirse.

Próximos Pasos

El espacio de nombres PdfToSvg convierte páginas PDF a archivos SVG, flujos o cadenas. Funciona por página, con control total sobre anotaciones, enlaces, visibilidad de texto, ancho de trazo y alternancia de capas. Todos los métodos tienen variantes asíncronas para flujos de trabajo no bloqueantes.

Explora la referencia de API de PdfPage para la superficie completa del método de conversión, la referencia de SvgConversionOptions para cada propiedad configurable, y la referencia de PdfDocument para opciones de apertura y carga. Para la dirección inversa (incrustar SVG en un PDF), consulta el cómo hacer de SVG a PDF.

Ver opciones de licencia comenzando en $999.

Preguntas Frecuentes

¿Cuál es el propósito de convertir archivos PDF a formato SVG?

Convertir archivos PDF a formato SVG permite incrustar contenido de documentos en páginas web, generar vistas previas independientes de la resolución y extraer gráficos vectoriales de informes, facturas o dibujos técnicos. SVG es escalable y no se pixela, lo que lo hace ideal para aplicaciones web y de diseño.

¿Cómo se puede utilizar PdfToSvg de IronPDF para una conversión de PDF a SVG?

El espacio de nombres PdfToSvg de IronPDF proporciona una API dedicada para convertir páginas PDF a formato SVG. Puedes abrir un PDF con PdfDocument.Open(), acceder a las páginas individuales a través de la colección Pages, y luego llamar a SaveAsSvg() o ToSvgString() en cada PdfPage para producir la salida SVG.

¿Se pueden convertir páginas PDF a SVG de forma asíncrona usando IronPDF?

Sí, IronPDF admite conversiones asíncronas de PDF a SVG. Puedes usar los métodos SaveAsSvgAsync() y ToSvgStringAsync() para mantener las operaciones de E/S fuera del hilo principal, lo cual es beneficioso en aplicaciones responsivas.

¿Qué son SvgConversionOptions en IronPDF?

SvgConversionOptions en IronPDF controlan cómo se genera la salida SVG. Las opciones incluyen si se deben incluir anotaciones, enlaces y texto oculto en la salida, así como establecer el ancho mínimo de trazo. Estas opciones permiten la personalización del proceso de conversión a SVG.

¿Es posible controlar la visibilidad de las capas al convertir PDF a SVG usando IronPDF?

Sí, IronPDF permite controlar la visibilidad de las capas de PDF usando la colección OptionalContentGroups en PdfDocument. Puedes alternar la visibilidad de capas específicas, lo que determina si se renderizan durante la conversión a SVG.

¿Cómo maneja IronPDF los archivos PDF cifrados para la conversión a SVG?

IronPDF puede abrir archivos PDF cifrados usando el objeto OpenOptions, que incluye proporcionar una contraseña. Esto permite que los PDFs cifrados se conviertan en SVG después de la autenticación.

¿Cuáles son los beneficios de usar el formato SVG para PDFs en aplicaciones web?

El formato SVG es beneficioso para aplicaciones web porque mantiene gráficos escalables de alta calidad sin pixelación, admite texto seleccionable y buscable, y permite modificaciones de estilo usando CSS o scripts.

¿Puede IronPDF convertir todas las páginas de un PDF en archivos SVG individuales?

Sí, IronPDF puede convertir todas las páginas de un PDF en archivos SVG individuales. Al iterar a través de la colección Pages, puedes guardar cada página como un archivo SVG separado, lo cual es útil para PDFs de varias páginas.

¿Cuáles son los pasos mínimos para comenzar a convertir un PDF a SVG usando IronPDF?

Para convertir un PDF a SVG usando IronPDF, necesitas instalar IronPDF a través de NuGet, abrir un PDF con PdfDocument.Open() desde el espacio de nombres PdfToSvg, y llamar a SaveAsSvg() en cualquier página para escribir el archivo SVG.

¿IronPDF admite la apertura de PDFs desde flujos para propósitos de conversión?

Sí, IronPDF admite la apertura de PDFs desde flujos. Puedes usar PdfDocument.Open() con una entrada de Stream, lo que lo hace versátil para escenarios donde los PDFs no se almacenan como archivos sino que se transmiten desde otras fuentes.

Ahmad es un desarrollador full-stack con una sólida base en C#, Python y tecnologías web. Tiene un profundo interés en construir soluciones de software escalables y disfruta explorando cómo el diseño y la funcionalidad se encuentran en aplicaciones del mundo real.

Leer más

¿Listo para empezar?

Nuget Downloads 21,916,531Versión:2026.11recién publicada