Convert 2D PDF drawings into editable DXF and DWG files built with real CAD entities.
Lines, polylines, arcs, circles, splines, hatches, text, true dimensions, leaders,
layers and blocks — not exploded line spaghetti.
Windows (portable or installer) · Linux (AppImage, .deb) · conversions 100 % offline · English · Français · Español · Deutsch · العربية
Website and downloads · All releases
Engineering teams receive drawings as PDF all the time: consultant plans, vendor drawings, archive scans. Re-drawing them by hand is slow and error-prone, and most converters produce thousands of loose segments that nobody can edit.
ConvertCAD rebuilds the intent of the drawing:
| In the PDF | In the DXF / DWG |
|---|---|
| Curves made of Bezier pieces | True ARC / CIRCLE, or one exact SPLINE |
| Touching segments | One LWPOLYLINE (closed when it loops) |
| Dash patterns, or dashes drawn as separate pieces | One line with a linetype CENTER, DASHED, DASHDOT, PHANTOM… measured on the PDF |
| Arrows + line + value, oblique ticks + line + value | Real DIMENSION entities (the PDF value is kept) — filled, open or outlined arrows, dots, crosses, or any end the sheet repeats |
| Arrow on a circle + "R…" / "Ø…"; two arrows on an arc + "45°" or an arc length | Real RADIUS, DIAMETER, ANGULAR and ARC LENGTH dimensions |
| Arrow + polyline + note | MULTILEADER (classic LEADER for older DXF versions) |
| The same symbol repeated (columns, doors, bolts…), even turned by any angle or mirrored | One BLOCK + one INSERT per occurrence |
| Text, stacked text lines | TEXT / MTEXT in the PDF's font (Arial, Times New Roman, Courier New…), with its size, length and alignment |
| Solid fills · hatching drawn as hundreds of parallel lines | HATCH (solid · pattern with its angle and spacing) |
| Sand, concrete, gravel, earth, brick, insulation, dots plotted as thousands of dashes and dots | One HATCH with the standard AutoCAD pattern (AR-SAND, AR-CONC, GRAVEL, EARTH, BRICK, INSUL, DOTS…) at its measured scale and angle |
| AutoCAD SHX text plotted as strokes | Real TEXT with the original string |
| Scanned sheets | Traced lines, circles and arcs + OCR text (PP-OCR, 50+ languages), scan kept on a locked layer |
| Colours, line weights, PDF layers | Organised layers (GEO_BLACK_050_CENTER, DIM, TEXT, …) |
Safe by design: a dimension is rebuilt only when arrows, line and text all agree (an
angle or an arc length only when its value agrees with the drawn arc), and its value is
checked against the drawing scale: a value that does not match goes to the magenta layer
DIM_CHECK for review. A texture becomes a standard pattern only when that pattern,
drawn again, reproduces the PDF. Measurement texts that matched nothing go to the red
layer DIM_RAW. Nothing is invented.
- Four-step workflow with one highlighted action at a time: Open → Check the scale → Convert → Review and save.
- DXF or DWG — DXF R12 → R2018, or native DWG (AutoCAD 2000 format, opens in every AutoCAD since 2000 and every CAD program). The DWG converter (GNU LibreDWG) is included and every DWG is read back and checked after writing.
- Convert only an area — draw a rectangle on the sheet (A): only that part is converted.
- Overlay check — the PDF shown under the converted drawing with adjustable transparency (O): differences are seen at a glance.
- Scale tools — metric (1:100) or imperial (1/4" = 1'-0", inches and feet) scale read from the title block, Calibrate on two points of known distance, Measure any distance, with object snap (END / MID / INT / CEN) like AutoCAD. Sheets with different scales in one set: read the scale written on each sheet.
- Review before saving — preview of the DXF as CAD software will read it (click an entity to see its type, layer and size), layer table (keep / hide, rename, recolour), detailed conversion report with warnings.
- Full options — curve precision, text height ratio, MTEXT grouping, arrow and tick dimensions, leaders, layer naming modes, AutoCAD Color Index or true colour, block detection threshold, OCR languages, accuracy and resolution, one file or one file per sheet, 6 built-in presets + your own.
- Scanned drawings — line, circle and arc tracing (OpenCV) and OCR with PaddleOCR's PP-OCR models (whole text lines, small, rotated and vertical text). Built in: English, French and the other Latin-script languages. One click away (Settings → Scanned pages → OCR languages and models…): Arabic, Cyrillic, Greek, Korean, Devanagari, Thai, Tamil, Telugu and a maximum-accuracy model — mixed drawings (French + Arabic…) are read line by line. The original scan is kept underneath for checking.
- Big drawings — an A0 sheet with 40 000 entities previews smoothly; the window opens in about half a second (libraries load in the background).
- Batch — convert a whole folder (sub-folders included), each file with its log.
- List of all texts — every text with its sheet and position, in a
.csvand a.txtnext to the drawing: to search the drawings or feed a search engine. - Command line —
ConvertCAD-cli.exe/python -m convertcad --clifor scripts. - Portable or installed — portable zip (no installation, no admin rights, settings and OCR models can live next to the program on a USB stick) or a normal installer; no drawing is ever sent anywhere (the only network uses: downloading an OCR language, or checking for a newer version — off by default — when you ask).
- Dark and light themes, crisp on every display scaling; interface in English, French, Spanish, German and Arabic (right to left).
![]() |
![]() |
| Measure / calibrate with object snap | Conversion report |
![]() |
![]() |
| Welcome screen | Light theme, French interface |
Download from the Releases page of this repository. Every download contains everything — Python, all libraries, the DWG converter and the OCR with its built-in model (English, French and the other Latin-script languages). Nothing else to install. Other OCR languages are downloaded from the program when needed, then work offline.
| Download | Use |
|---|---|
ConvertCAD-<version>-win64-setup.exe |
Installer: Start-menu entry, uninstaller, no admin rights needed |
ConvertCAD-<version>-win64-portable.zip |
Portable: unzip anywhere (Desktop, USB stick…) and run ConvertCAD\ConvertCAD.exe |
Windows SmartScreen may warn about a new program the first time: More info → Run anyway.
| Download | Use |
|---|---|
ConvertCAD-<version>-x86_64.AppImage |
One file, any distribution: chmod +x it, then run it. --cli as first argument runs the command line |
convertcad_<version>_amd64.deb |
Debian / Ubuntu / Mint: sudo apt install ./convertcad_<version>_amd64.deb, then ConvertCAD in the menu or convertcad |
ConvertCAD-<version>-linux-x86_64.tar.gz |
Portable folder: ./ConvertCAD/ConvertCAD (needs sudo apt install libxcb-cursor0) |
Requires Python 3.10 or newer (python.org, tick Add python.exe to PATH).
git clone https://github.com/abdelhaouari-AE/ConvertCAD.git
cd ConvertCAD
scripts\setup_venv.bat :: once: creates .venv and installs everything
scripts\run_from_source.bat :: starts ConvertCADLinux: ./scripts/setup_venv.sh then ./scripts/run_from_source.sh. You can also
double-click ConvertCAD.pyw (no console window) or run python main.py: if libraries
are missing, ConvertCAD lists them and offers to install them. From source, the OCR and
its built-in model come with the Python packages; other OCR languages are downloaded from
the program, as in the downloads.
DWG output needs the converter: Windows uses vendor\libredwg\win64 (included), Linux
builds it once with ./scripts/build_libredwg.sh linux.
- Open a drawing — Open PDF… (Ctrl+O), drag & drop, or Try the sample plan.
- Check the scale — read automatically from the title block when possible. For an exact result, Calibrate (C) on two grid axes; Measure (M) to verify.
- Convert (Ctrl+Enter) — runs in the background, cancellable.
- Review and save — check the DXF result (Overlay shows the PDF underneath), adjust
the Layers, read the Report, then Save DXF… or Save DWG… (Ctrl+S).
A
<name>_log.txtis written next to the drawing (and, with Settings → Output → List of all texts,<name>_texts.csv/.txt).
To convert only part of a sheet, use Select area (A) before converting.
Engineering checklist after every conversion: measure a known distance in CAD, spot-check
layer DIM against the PDF, review layers DIM_CHECK and DIM_RAW, read the report
warnings.
The complete user guide is in the application (Help → User guide, F1) and in
convertcad/resources/guide_en.md
(version française).
ConvertCAD-cli plan.pdf :: -> plan.dxf, scale read on the sheet
ConvertCAD-cli plan.pdf -o out\plan.dxf --scale 100 --units mm
ConvertCAD-cli plan.pdf -o plan.dwg :: native DWG (AutoCAD 2000 format)
ConvertCAD-cli plan.pdf --area 20,30,420,290 :: only that rectangle (mm on the sheet)
ConvertCAD-cli plan.pdf --pages 1-3,5 --split-pages --dxf-version R2013
ConvertCAD-cli plan.pdf --texts :: + plan_texts.csv / .txt (every text)
ConvertCAD-cli drawings\ -o dxf\ --recursive --preset structural
ConvertCAD-cli scan.pdf --preset scanned --ocr-lang latin+arabic --json report.json
ConvertCAD-cli --list-presets
ConvertCAD-cli --list-ocr :: OCR languages: installed / to download
ConvertCAD-cli --get-ocr-model arabic latin_max :: download OCR modelsFrom source: python -m convertcad --cli <same arguments>. Run with --help for every
option. Exit code: 0 all converted, 1 a conversion failed, 2 bad arguments.
| Download | Command |
|---|---|
| Windows portable zip | scripts\build_exe.bat |
| Windows installer | scripts\build_installer.bat (needs Inno Setup 6.3+) |
| Linux tar.gz · AppImage · .deb | ./scripts/build_linux.sh · ./scripts/build_appimage.sh · ./scripts/build_deb.sh |
Actions → build → Run workflow with Publish the release ticked (or pushing a tag such
as v1.2.0) builds all five on GitHub Actions and publishes them as the release of the
version (.github/workflows/build.yml). The website
(site/, workflow pages.yml) always offers the newest release. The downloadable
OCR models are published once, as the release ocr-models-v1, by the workflow
OCR models release. Details, code signing and the release checklist:
docs/PACKAGING.md.
- Language: Python 3.10+ · Interface: PySide6 (Qt 6) · PDF: PyMuPDF · DXF: ezdxf · DWG: GNU LibreDWG · Scans: OpenCV + RapidOCR (PP-OCR models, ONNX Runtime) · Tests: pytest · Lint: Ruff · Packaging: PyInstaller, Inno Setup, AppImage, dpkg · CI: GitHub Actions
- Open the folder in VS Code: recommended extensions, run/debug configurations
(application, CLI, tests) and tasks are included in
.vscode/. - Run the tests:
python -m pytest -q· lint:python -m ruff check .
ConvertCAD/
├── main.py application launcher (also the .exe entry point)
├── ConvertCAD.pyw same, without console window (double-click)
├── convertcad_cli.py console launcher (ConvertCAD-cli.exe)
├── convertcad/
│ ├── core/ conversion engine — pure Python, never imports Qt
│ ├── ui/ desktop interface (PySide6)
│ ├── resources/ user guide, terms, OCR help (EN / FR)
│ ├── cli.py · config.py · i18n.py · samples.py
├── tests/ pytest suite (engine, CLI, jobs, i18n, interface)
├── scripts/ setup / run / build scripts, icon and sample generators
├── installer/ Inno Setup script (Windows installer)
├── packaging/linux/ desktop entry and AppImage launcher
├── vendor/libredwg/ DWG converter: source, patches, Windows programs
├── docs/ DEVELOPMENT.md, PACKAGING.md, screenshots
├── assets/ application icon (svg, png, ico)
├── samples/ demonstration PDFs (vector plan + scan)
└── ConvertCAD.spec PyInstaller recipe
📘 docs/DEVELOPMENT.md describes the whole development: tools and libraries, architecture and data flow, the content of every file, the algorithms, the options reference, testing, building, releasing and how to extend the application. Version history: CHANGELOG.md.
ConvertCAD convertit des plans PDF 2D en fichiers DXF ou DWG modifiables construits avec
de vraies entités CAO : arcs et cercles, polylignes, splines, hachures (pleines, à motif, et
textures — sable, béton, gravier, terre, brique, isolant — rendues au motif AutoCAD
standard), textes et paragraphes, vraies cotes (linéaires, rayon, diamètre, angle,
longueur d'arc), lignes de repère, calques et blocs (copies tournées de tout
angle). Windows (installateur ou version portable sans installation) et Linux (AppImage,
.deb), conversions 100 % hors ligne, interface en français, anglais, espagnol, allemand et
arabe (Affichage → Langue). Conversion d'une zone choisie, contrôle par superposition du
PDF, sélection d'une entité dans le résultat. Les plans scannés sont vectorisés (lignes,
cercles, arcs) et lus par OCR (modèles PP-OCR : anglais, français et autres langues latines
intégrés ; arabe, cyrillique, grec… téléchargeables en un clic depuis Réglages → Pages
scannées → Langues et modèles OCR…). Après chaque conversion,
vérifiez l'échelle sur une cote connue, contrôlez le calque DIM et passez en revue les
calques DIM_CHECK et DIM_RAW. Guide complet : Aide → Guide d'utilisation ou
guide_fr.md.
Free code signing provided by SignPath.io, certificate by
SignPath Foundation. Only the Windows programs built by the public
GitHub Actions workflow from this repository are signed (ConvertCAD.exe,
ConvertCAD-cli.exe and the installer); every signing request is approved by hand.
- Committers and reviewers: abdelhaouari
- Approvers: abdelhaouari
Details: CODE_SIGNING.md.
ConvertCAD sends nothing about you or your drawings: no account, no analytics, no tracking. It goes online only to check for a new version (at most once a day, during a quiet moment; can be switched off), to download an update or an OCR language, and when you open the feedback form. Full text: PRIVACY.md.
Copyright © 2026 abdelhaouari.
ConvertCAD is free software released under the GNU Affero General Public License v3.0 (LICENSE). This licence was chosen because ConvertCAD is built on PyMuPDF, which is available under the AGPL-3.0 or a commercial licence from Artifex. Distributing ConvertCAD in a closed-source / proprietary form requires a PyMuPDF commercial licence. The licences of all components are listed in THIRD_PARTY_NOTICES.md.
ConvertCAD is a drafting aid, not an engineering authority: always verify converted drawings (scale, dimensions, traced content) before any construction, fabrication or contractual use.




