How PDFtoSTL works
PDFtoSTL converts vector content from PDF files into extruded 3D meshes you can print on any FDM or resin printer. Here's what happens under the hood and how to get the best results.
Five steps to a print-ready file
- Upload a PDF — drop in any document with text, line drawings, or simple graphics. Multi-page files are supported; pick the exact page you want.
- Refine the source — crop with Select area, paint out headers or watermarks with the Eraser, and toggle Images to include detected raster graphics.
- Adjust settings and convert — match your printer's layer height and nozzle diameter, choose base and extrusion thickness, enable multi-color or mirror mode, then hit Convert.
- Add tactile Braille (optional) — after the first conversion opens the model preview, use the final Braille tab. Enter text, click or drag on the 3D model to position the highlighted dots, then convert again.
- Preview, add cutouts, and download — inspect the final relief and Braille dots, optionally punch through-holes for mounting, then download the STL or 3MF.
The conversion pipeline
- Vector extraction — the PDF page is rendered to SVG with all text converted to vector paths. Every character glyph becomes a set of precise draw commands.
- Path parsing — SVG paths are parsed and Bezier curves are flattened to polylines at the configured curve tolerance.
- Polygon assembly — subpaths are classified into filled polygons (with holes for counters in letters like o, e, B) and stroked polylines (buffered to their real stroke width). Everything is merged into one clean geometry.
- Braille layout — when enabled after the first preview, plain text is translated to uncontracted Grade-1 Braille. Standard 1.5 mm dots with 2.5 mm centre spacing are placed at the position selected directly on the 3D model.
- 3D extrusion — the polygons are extruded to the configured height and combined with a rectangular base plate. The result is exported as binary STL or multi-color 3MF.
Optimized for your 3D printer
Most PDF-to-3D converters produce raw geometry and leave you to fix print issues in the slicer. PDFtoSTL takes a different approach: it builds the model around your specific printer settings so the output prints correctly the first time.
You enter two key values from your slicer profile — layer height and nozzle diameter — and the converter uses them throughout the entire pipeline:
- Layer-snapped heights — base thickness and text extrusion height are rounded to exact multiples of your layer height. This guarantees every layer is a full pass — no partial layers that cause banding, under-extrusion, or surface quality problems.
- Nozzle-aware feature filtering — PDF text often contains details finer than any FDM nozzle can reproduce (hairline strokes, thin serifs, tiny punctuation). The converter compares every feature against your nozzle diameter and either drops it for a clean result or thickens it so it actually prints, depending on your Thin line boost setting.
- Thin line boost — a uniform dilation applied to fine strokes. Set it to light for already-bold artwork, medium (default) for typical documents, or heavy for PDFs with very fine lines. The boost ensures thin features come out above the nozzle width so your printer can lay down a solid extrusion.
- Min detail size — strips out specks, dots, and micro-artefacts smaller than a threshold you choose. This keeps the mesh clean without having to manually erase every tiny imperfection from the source PDF.
The result is a print-ready model tuned to your hardware. You shouldn't need to tweak extrusion widths or filter geometry in the slicer — the converter already did it.
All parameters
| Parameter | Default | What it controls |
|---|---|---|
| Layer height | 0.20 mm | Your slicer's layer height — base and text heights snap to whole multiples |
| Nozzle diameter | 0.4 mm | Your nozzle size — features thinner than this are dropped or boosted |
| Base thickness | 1.0 mm | Height of the flat backing plate (snapped to layers) |
| Extrude height | 1.0 mm | How far text and lines protrude above the base (snapped to layers) |
| Scale | 1.0× | Overall size multiplier (0.1× to 3.0×) |
| Thin line boost | Medium | Thickens fine strokes so they survive printing (light / medium / heavy) |
| Min detail size | 0.0 mm | Drop tiny artefacts smaller than this diagonal |
| Curve tolerance | 0.1 mm | Bezier flattening precision — lower is smoother but produces larger files |
| Mirror X | Off | Flip horizontally — use with Emboss for stamps and printing plates |
| Braille text | Off | Up to 80 characters translated to uncontracted Grade-1 Braille after the model preview opens |
| Braille position | Centre | Free placement by clicking or dragging the highlighted dot pattern directly on the 3D model |
Output modes
| Mode | Format | What you get |
|---|---|---|
| Default | STL | Single-color relief — text and lines extruded on top of a base plate |
| Multi-color | 3MF | White base + one component per detected colour, each mapped to an extruder. Works with Bambu AMS, Prusa MMU, and manual filament changes. |
| Inset bottom | 3MF | Text is flush with the bottom surface of the plate. A solid slab sits on top. Useful for multi-colour prints where the text is visible from below. |
| Inset top | 3MF | Text is flush with the top surface of the plate. A solid slab sits underneath. Useful for multi-colour prints where the text is visible from above. |
| Deboss | STL | Text subtracted from the plate — channels are carved into the top surface by the extrusion height. Total height stays at the base thickness. Ideal for debossing plates pressed into paper, leather, or clay. |
| Braille | STL or 3MF | Raised Grade-1 dots in the text colour by default (optional base-colour toggle). Always stays tactile/raised, including with flush inset text; not compatible with deboss. |
Add Braille after the model preview opens
Braille is a post-conversion tool, so its tab appears only in the 3D model preview and is the final tab in the ribbon. Convert the source once, open Braille, enter the tactile label, and place it by clicking or dragging on the model. The amber marker displays the resolved dot pattern at the exact print position. Click Convert again to rebuild the STL or 3MF with those dots.
Text, enabled state, colour choice, and normalized plate position persist through re-conversion and page reloads. In multi-color 3MF, Braille matches the text colour by default; enable Base color to use extruder 1. In STL it is part of the same solid mesh.
Multi-color 3MF and color mapping
When Multi-color is enabled, the converter scans the page for distinct fill and stroke colours, clusters them by RGB distance, and opens a Color Mapping dialog before conversion. You can assign each cluster to an extruder (1–4) or skip it entirely.
The exported 3MF embeds Bambu-compatible configuration, so Bambu Studio opens its colour-matching dialog automatically. Cura and PrusaSlicer read the standard basematerials block.
Smart Cut/Trim and Edit
After converting, the 3D preview opens with Smart Cut/Trim active. Use Hole (red) to punch through-holes, or Trim (green) to keep a circle, rectangle, or irregular outline from Detected shapes. Open the Edit tab to manually cut holes, drag a crop region (circle or rounded rectangle), or draw coloured shapes onto the plate.
Holes are perfect for screw mounts and key-chain loops; Trim is ideal for badge-shaped signs and cutting away unused plate around a design.
3D printing tips
- Layer height: 0.1–0.15 mm for readable small text; 0.2 mm is fine for headings and thick lines.
- Nozzle: a 0.4 mm nozzle prints features down to ~0.4 mm width. Match the nozzle diameter setting to yours.
- Extrusion height: 0.6–1.0 mm gives a clear tactile relief without wasting filament. One or two layers above the base is usually enough.
- Base thickness: 1.0 mm is sturdy enough for handling. Increase to 1.5–2.0 mm for larger pages.
- Material: PLA works well for most reliefs. For stamps, select Emboss + Mirror X and print in TPU (flexible).
- Bed adhesion: a brim helps with full-page prints that cover most of the build plate.