Safe by default
If a DXF or JSON report name already exists, the command exits without replacing it. Add --keep-both for numbered names or --overwrite only when replacement is intentional.
Included in every Windows download
Use cli\PdfToDxf.Cli.exe for batch files, PowerShell scripts, scheduled jobs, and conversions that need repeatable settings.
It runs locally and needs no account, API key, subscription, cloud service, or separate .NET installation.
Quick start
.\cli\PdfToDxf.Cli.exe --help
.\cli\PdfToDxf.Cli.exe convert "C:\Drawings\plan.pdf" `
--output "C:\Drawings\DXF" `
--dxf-version r2000 `
--keep-both
.\cli\PdfToDxf.Cli.exe convert .\plan.pdf `
--pages 1-3,8 `
--units in `
--scale 48 `
--cad-cleanup
If a DXF or JSON report name already exists, the command exits without replacing it. Add --keep-both for numbered names or --overwrite only when replacement is intentional.
Select pages, inches or millimeters, R12/R14/R2000, curve handling, scale, tolerances, CAD cleanup, native curves, text blocks, repeated blocks, and experimental dimension recognition.
Use inspect to check a PDF's page count. Use compare to measure a converted page against an external reference DXF and write a machine-readable difference report.
Build a repeatable run
A repeatable command is useful only when you can identify the source issue and understand the settings that produced the result.
Run the installed program's help, then convert a small sample with known dimensions. Record the application version, selected pages, units, scale, DXF version, and any cleanup settings. Verify the sample in the receiving CAD application before processing the rest of the set.
Preserve the original PDFs. Put recovered files in a separate directory for that run, with the source issue and settings recorded alongside them. Keep generated reports with their DXFs so warnings and source filenames remain traceable.
The default refusal to replace an existing DXF or report protects earlier output. --keep-both is useful for comparison runs because it retains both results. Use --overwrite only when the destination is an intentional replacement target and the previous result is no longer needed.
PowerShell example
This example uses the documented convert command and keeps each PDF's output in a separate folder. It does not upload files or schedule a background task.
Get-ChildItem -LiteralPath .\Inputs -Filter *.pdf -File | ForEach-Object {
$qsdOutput = Join-Path .\Recovered $_.BaseName
& .\cli\PdfToDxf.Cli.exe convert $_.FullName `
--output $qsdOutput `
--dxf-version r2000 `
--keep-both
if ($LASTEXITCODE -ne 0) {
throw "Conversion failed. Review the CLI output before continuing."
}
}
Run this from the extracted application folder after creating an Inputs folder containing only the intended PDFs. The example leaves the default units and scale in place; add the settings you have verified for the source set rather than assuming every drawing uses the same scale. Folder enumeration here is not recursive.
A successful process exit means the command completed, not that the DXF is approved for its intended use. Review the generated reports and inspect critical geometry. Keep a record of skipped or failed PDFs instead of treating the presence of some output files as a complete batch.
Before a downstream handoff
The browser recovery guide explains common scale, text, and raster limitations. The desktop edition has additional options, so the help from the exact installed release controls its command syntax. Use the handoff builder for separately maintained project records; it does not run desktop conversions or attach the original PDFs.
Every installed version is authoritative
--help for the exact options in your download.