BUILT. NOT BOUGHT.
Import vector geometry, text, and images from PDF files into FreeCAD as editable Part objects.
Arc reconstruction, dash mapping, color grouping, OCG layer support, and reference-based scaling -- all powered by pure-Python PDF parsing via PyMuPDF.
BlueCollar Systems -- BUILT. NOT BOUGHT.
| Category | Capability |
|---|---|
| PDF Parsing | PyMuPDF-powered vector extraction with full path, text, and image support |
| Import Presets | Fast Preview, General Vector, Technical Drawing, Shop Drawing, Max Fidelity |
| Arc Reconstruction | Kasa algebraic circle fit converts polyline segments back to true arcs |
| Layer Support | OCG layers (PDF Optional Content Groups) map to FreeCAD groups |
| Color Grouping | Geometry automatically organized by stroke/fill color |
| Dash Patterns | PDF dash arrays mapped to FreeCAD line styles |
| Text Import | PDF text extracted with font size, position, and rotation |
| Image Import | Embedded raster images extracted and placed at correct coordinates |
| Scale Detection | Reference-based scaling from known dimensions on the drawing |
| Steel Detection | Recognizes common structural steel shape profiles |
- Open FreeCAD → Tools → Addon Manager
- Search for PDF Vector Importer
- Click Install
- Restart FreeCAD
- Download
PDFVectorImporter_Setup_vX.Y.Z.exefrom Releases. - Close FreeCAD.
- Run the installer (no admin rights required).
- Restart FreeCAD.
- Clone this repository:
git clone https://github.com/BlueCollar-Systems/FC-PDFimporter.git
- Copy the
PDFVectorImporterfolder into your FreeCAD Mod directory:- Windows:
%APPDATA%\FreeCAD\Mod\ - macOS:
~/Library/Application Support/FreeCAD/Mod/ - Linux:
~/.local/share/FreeCAD/Mod/
- Windows:
- Install PyMuPDF:
pip install "PyMuPDF>=1.24,<2.0" - Restart FreeCAD
python build_release.py- Install Inno Setup 6
- Run:
python build_windows_installer.py
- Output files are written to
dist/:PDFVectorImporter_vX.Y.Z.zipPDFVectorImporter_Setup_vX.Y.Z.exe
- Push a tag in
vX.Y.Zformat (example:v3.5.1). - GitHub Actions workflow
windows-releasebuilds both artifacts. - The workflow attaches the ZIP and Setup.exe to that GitHub Release.
- Open FreeCAD
- Go to File → Import or use the PDF Vector Importer workbench
- Select a PDF file
- Choose an import preset (or customize settings)
- Click Import
| Preset | Best For | Speed |
|---|---|---|
| Fast Preview | Quick look at PDF contents | Fastest |
| General Vector | Most PDF files | Fast |
| Technical Drawing | Engineering drawings with dimensions | Medium |
| Shop Drawing | Fabrication shop drawings with steel shapes | Medium |
| Max Fidelity | Maximum accuracy, all features enabled | Slower |
| FreeCAD Version | Python | PyMuPDF | Status |
|---|---|---|---|
| 0.21.x | 3.10+ | >=1.24,<2.0 | |
| 1.0.x | 3.11+ | >=1.24,<2.0 | |
| 1.1.x | 3.11+ | >=1.24,<2.0 | |
| 0.19–0.20 | 3.8–3.9 | legacy pin | |
| 0.18 and earlier | ❌ Not supported |
Evidence levels:
✅ Verified: host-run validation evidence captured.⚠️ Expected: syntax/runtime compatible but no host-run evidence yet.❌ Not supported: outside maintained/tested compatibility scope.
- FreeCAD 0.21 or later
- Python 3.10+ (adapters use PEP 604 union types)
- PyMuPDF (automatically installed via Addon Manager)
| Limitation | Details |
|---|---|
| Encrypted PDFs | Password-protected PDFs must be unlocked before import |
| Compression filters | Decoding is delegated to PyMuPDF. Malformed or non-standard compressed object streams may fail to parse |
| Raster-only scans | Pure raster PDFs produce no vector geometry |
| Clipped/XObject-heavy PDFs | Complex clip stacks and deeply nested form XObjects can produce partial geometry |
| Very large PDFs | Documents with >10,000 primitives may slow the import process |
| Embedded subset fonts | Text using embedded subset fonts may not render correctly |
| OCG layer assignment | Extractor-level OCG mapping is validated on corpus layered_ocg.pdf; FreeCAD host-run grouping verification is still required in target runtime |
| Legacy hosts | FreeCAD versions older than 0.21 are not part of current validation coverage |
MIT License — see LICENSE for details.
Copyright (c) 2024-2026 BlueCollar Systems