AnyTool
Your files never leave your device. All processing happens locally in your browser.

How do I convert a PDF to SVG?

Drop a PDF onto AnyTool PDF to SVG and it converts every selected page to an SVG file right in your browser. Using pdf.js, the tool renders each page to a high-DPI canvas (1×–4×) and embeds that image inside a valid SVG whose viewBox is the page’s true size in PDF points, so it scales cleanly and prints at the correct physical dimensions. You can optionally overlay a real, selectable text layer rebuilt from the PDF’s text content so the SVG is searchable on top of the image. A single page downloads as one .svg; multiple pages bundle into a .zip. Everything runs locally with a bundled pdf.js worker — no upload, no CDN, no server — so your PDF never leaves your device. Be aware that pdf.js removed its old vector backend, so this is a high-fidelity raster-in-SVG (optionally with a real text layer), not a path-level vector tracing of the PDF.

  • Renders each PDF page to a high-DPI image embedded in a true-size SVG
  • Optional real, selectable text layer overlaid from the PDF’s text content
  • PNG or JPEG embed, 1×–4× resolution, page range and white/transparent background
  • One page → one .svg; many pages → a .zip, all built in the browser
  • 100% client-side — bundled worker, no CDN, no upload, works offline

What is

PDF to SVG Conversion

PDF-to-SVG conversion turns the pages of a PDF into SVG (Scalable Vector Graphics) files. Because modern pdf.js no longer ships an SVG/vector backend, a 100% client-side converter renders each page to a high-resolution canvas and embeds that raster as a base64 <image> inside an SVG sized to the page’s true PDF point dimensions — optionally adding a real, selectable <text> layer from the page’s text content. The result scales and prints cleanly and can carry searchable text, but it is a high-fidelity raster-in-SVG rather than a path-level vectorization of the original drawing.

Converters

Related terms

SVGPDFpdf.jsVector GraphicsRasterizationText Layer

Frequently Asked Questions

Nothing is uploaded. Each page is rendered and packaged entirely in your browser with a bundled pdf.js worker, so the PDF never leaves your device.

AnyTool PDF to SVG is 100% client-side. When you choose a PDF, your browser reads the file locally and pdf.js renders the pages on your own machine — using a worker that is bundled into the app rather than fetched from a CDN — and multiple pages are zipped in the browser with JSZip. No file is sent to any server, there is no account or tracking, and the tool keeps working offline after the first load, which makes it safe for confidential documents.

No. pdf.js removed its old SVG backend, so this embeds a high-DPI image of each page inside the SVG, optionally with a real selectable text layer — not traced vector paths.

Older pdf.js versions had an SVGGraphics backend that emitted vector paths, but it was deprecated and removed, leaving Canvas as the only supported renderer. Honest browser PDF-to-SVG tools therefore render each page to a high-resolution canvas and embed that raster inside an SVG at the page’s true point size, so it still scales and prints cleanly and drops straight into design tools. AnyTool also lets you overlay a genuine, selectable <text> layer built from the PDF’s text content, so the SVG is searchable on top of the image — but the artwork itself is a high-fidelity raster, not a path-level vectorization.

Yes — scanned pages convert fine as images. They simply have no text layer to overlay, and the tool flags that honestly.

A scanned PDF is made of page images with no selectable text. PDF to SVG renders those pages to high-DPI rasters and embeds them in SVG exactly like any other page, so the visual result is faithful. The only difference is that, with the text-layer option on, no selectable <text> can be added because there is no text content to read — the tool detects this and notes that those SVGs are images only, which is expected for scans.

A single page downloads as one .svg; multiple pages bundle into a .zip. Use PNG for crisp text/transparency, JPEG to shrink photo-heavy pages.

Convert every page or type a range like “1-3, 5”. One selected page is saved as a standalone .svg, while several pages are zipped into a single .zip with JSZip in your browser. PNG is lossless and supports a transparent background, which is best for text and line art; JPEG (with an adjustable quality slider) makes much smaller files for image-heavy pages but cannot store transparency. Resolution is adjustable from 1× to 4× — higher is crisper but produces larger SVGs.

Detailed Explanation

Methodology

How the PDF to SVG Converter Works

AnyTool PDF to SVG renders a PDF entirely in the browser with pdf.js, whose worker is bundled into the app and served from the same origin — never loaded from a CDN — so the tool stays fully offline-capable and uploads nothing. For each selected page the converter measures the page’s true size from a scale-1 viewport (1 unit = 1 PDF point), then renders the page to a high-DPI canvas at 1×–4× and reads it back as a base64 PNG or JPEG. It writes a standalone SVG whose width, height and viewBox are the page’s real point dimensions and embeds that raster as a single <image>, so the file scales without blurring and prints at the correct physical size. When the selectable-text option is on, it also calls getTextContent() and, for every text run, emits an SVG <text> element positioned by a matrix derived from the run’s transform (mapped from PDF space into the SVG’s top-left point space and flipped on Y), with textLength/lengthAdjust set from the run’s measured width so selection lines up with the image beneath. Multiple pages are bundled into a .zip with JSZip in the browser.

  • Each page rendered to a high-DPI canvas with pdf.js (1×–4×)
  • pdf.js worker bundled locally (pdf.worker.min.mjs?url) — no CDN
  • SVG viewBox set to the page’s true PDF point size for clean scaling
  • Optional selectable <text> layer from getTextContent(), matrix-positioned
  • Single .svg for one page; JSZip .zip for many — all in the browser
How It Works

Output, Options and Preview

The conversion is fully configurable and re-runs when you change a setting. You can pick the render resolution (1×, 2×, 3× or 4×), the embedded codec (lossless PNG, which keeps a transparent background, or JPEG with an adjustable quality slider for much smaller photo-heavy pages), the page background (white or transparent, the latter PNG-only), whether to add the selectable text layer, and which pages to convert via a range like “1-3, 5”. The result panel shows an inline preview of the first page’s actual SVG on a checkerboard, a thumbnail grid for multi-page documents with per-page SVG downloads, and counts of pages, selectable text runs and total output size. One page downloads as a single .svg; several pages download as a .zip. A progress bar tracks page-by-page rendering so large PDFs stay responsive.

  • Resolution 1×–4×; PNG (transparent-capable) or JPEG with quality control
  • White or transparent background (transparent requires PNG)
  • Page-range selection; selectable text layer on/off
  • Inline preview of the real SVG plus a per-page thumbnail grid
  • Per-page progress; one .svg or a zipped set of SVGs
Privacy & Security

Privacy and Honest Limitations

Because all rendering and packaging run in the browser with a locally bundled worker, the PDF is never uploaded, there is no account or tracking, and the converter works offline after first load — which makes it safe for confidential documents. The honest caveat is about fidelity: pdf.js removed its old SVGGraphics vector backend (deprecated in v2.15.349, gone from v4), and no supported path-level renderer replaced it, so true vector tracing is not available client-side without re-implementing the entire operator list. This tool therefore embeds a high-resolution raster of each page inside the SVG — a high-fidelity raster-in-SVG, not a vectorization of the original drawing — optionally with a real, selectable text overlay. Scanned or image-only PDFs convert perfectly as images but have no text layer to overlay, which the tool flags clearly. The output is fully self-contained (the image is inlined as base64), so an SVG can be larger than the source page, especially at 3×–4×.

PDF to SVG: in-browser (AnyTool) vs typical online converters
CapabilityAnyToolTypical alternatives
ProcessingRuns in your browserUsually uploaded to a server
PrivacyPDF never leaves your deviceFile sent to a third party
Worker sourcepdf.js worker bundled locally — no CDNOften a remote CDN script
FidelityHigh-DPI raster-in-SVG (honest)Often claim “vector” but rasterize too
Selectable textOptional real <text> overlayUsually image only
Resolution1×–4× (PNG/JPEG embed)Fixed, often low
Page rangeAny pages; one .svg or a .zipAll pages, all-or-nothing
Scanned PDFsConvert as images, flagged honestlySilent / unclear
Works offlineYes (PWA)No
Cost / signupFree, no signupOften gated or ad-heavy

AnyTool renders PDF pages locally with pdf.js and a bundled worker and uploads nothing; it embeds a high-DPI image in each SVG (not a path tracing, which modern pdf.js no longer supports) and can overlay a real selectable text layer, flagging scanned pages honestly.