Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

DWG/DXF 转 PDF 桌面软件

窗口标题显示为 DWG2PNG V1.0.0 Design by Alex(标题为既定命名,软件实际功能为 DWG/DXF → PDF 转换)。

一款面向 Windows 的轻量级桌面工具,采用引导式三页向导流程,把 AutoCAD 的 .dwg / .dxf 图纸一键转换为 PDF。转换核心依赖 ODA File Converter(Open Design Alliance 免费引擎),已随程序一同打包,无需用户另行安装。


✨ 功能特性

  • 拖拽上传:支持把 .dwg / .dxf 文件直接拖入窗口任意位置。
  • 文件检测:自动校验文件头、完整性,并用 ODA 引擎实际解析,确认文件合格后再进入下一步。
  • 图纸预览:转换前即可预览图纸(默认显示全部图层)。
  • 内联进度:转换进度在页面内联显示,不弹窗,完成后以居中淡入淡出的气泡提示。
  • 一键保存:转换完成后弹出系统文件对话框保存 PDF;保存成功后「保存 PDF」按钮自动变为「打开文件夹」,一键跳转到文件所在目录。
  • 后台隐藏引擎:ODA 转换引擎在后台静默运行,不弹出任何窗口。
  • 免安装分发:打包为单个 .exe,拷贝到任意 Windows 电脑即可运行,无需预先安装 ODA
  • 引导式三页流程,每一步状态清晰,降低使用门槛。

🧭 操作流程(三页向导)

 ┌──────────────┐   检测通过(自动)   ┌──────────────┐   转换完成(自动)   ┌──────────────┐
 │  第 1 页      │ ───────────────▶ │  第 2 页      │ ───────────────▶ │  第 3 页      │
 │ 上传并检测    │                   │ 预览与转换    │                   │ 完成并保存    │
 └──────────────┘ ◀── 重新上传 ──── └──────────────┘ ◀── 重新上传 ──── └──────────────┘
        │                              │                              │
   拖拽/选择文件                   [开始转换PDF]                   [保存 PDF]
   检测进度条                      [重新上传]       保存后按钮变    [打开文件夹]
   合格气泡 ✓  → 自动进入         预览(全部图层)   为[打开文件夹]   [重新上传]

第 1 页 · 上传并检测

  1. .dwg.dxf 文件拖入窗口,或点击选择文件。
  2. 程序依次执行:文件头校验 → 完整性校验 → ODA 引擎解析 → 生成预览图。
  3. 检测完成后出现绿色气泡「✓ 文件合格,即将进入预览…」,约 1.2 秒后自动进入第 2 页

第 2 页 · 预览与转换

  1. 页面展示图纸预览(默认显示全部图层,无冗余的下拉选择)。
  2. 点击 「开始转换 PDF」,页面内联显示转换进度(不弹窗)。
  3. 完成后出现气泡提示「✓ 转换完成 · N 页 · 耗时 Xs · Y MB」,约 1.4 秒后自动进入第 3 页
  4. 如需更换文件,点击 「重新上传」 返回第 1 页。

第 3 页 · 完成并保存

  1. 页面展示转换后的 PDF 多页预览。
  2. 点击 「保存 PDF」,弹出系统文件对话框,选择路径保存。
  3. 保存成功后:原「保存 PDF」按钮消失,出现 「打开文件夹」 按钮;点击即可在资源管理器中打开刚刚保存 PDF 的目录。
  4. 点击 「重新上传」 可重新开始整个流程。

🚀 快速开始(直接使用)

  1. 从仓库的 Releases(或 dist/ 目录)下载 DWG2PDF.exe
  2. DWG2PDF.exe 拷贝到任意 Windows 电脑,双击运行即可,无需安装 ODA 或任何依赖
  3. 首次启动会解压内置的转换引擎(约 70 MB),因此第一次会稍慢,之后启动会变快。

⚠️.exeWindows 专用。在极少数「非常干净」的新电脑上,若系统缺少 Microsoft Visual C++ 运行库,ODA 引擎可能无法启动;普通 Windows 机器通常已自带,无需处理。


🛠 从源码构建

环境要求

  • Windows 10 / 11
  • Python 3.11+(推荐 3.13)
  • ODA File Converter 引擎未纳入 git 仓库(体积与许可原因)。自行构建前,请从本仓库 Releases 下载 oda-engine.zip 并解压到 tools/oda/ 目录,或从 ODA 官网 获取。

步骤

# 1. 克隆仓库
git clone <your-repo-url>
cd DMG2PDF

# 2. 获取 ODA 引擎(仓库不含该二进制)
#    从本仓库 Releases 下载 oda-engine.zip,解压到 tools/oda/
#    或自行从 https://www.opendesign.com/ 下载 ODAFileConverter 放入 tools/oda/

# 3. 创建并激活虚拟环境(可选但推荐)
python -m venv .venv
.venv\Scripts\activate

# 4. 安装依赖
pip install -r requirements.txt

# 5. 打包为单文件 exe
pyinstaller build.spec --noconfirm

# 6. 产物
#    dist/DWG2PDF.exe  —— 单文件可执行程序(已内含 ODA 引擎,约 124 MB)

打包时 build.spec 会把 tools/oda/ 目录作为数据文件一并打进 exe;运行时程序会自动从该临时目录定位并使用 ODA 引擎,无需目标机器安装 ODA

目录结构

DMG2PDF/
├── main.py              # 三页向导界面(PySide6)
├── dwg_converter.py     # 转换核心:DWG/DXF 校验、DWG→DXF、DXF→PDF/预览
├── build.spec           # PyInstaller 打包配置(含 ODA 引擎)
├── requirements.txt     # Python 依赖
├── app.ico              # 程序图标
├── tools/
│   └── oda/             # ODA File Converter 引擎(随包分发,免安装)
└── dist/
    └── DWG2PDF.exe      # 打包产物(单文件)

⚙️ 技术架构

转换采用两段式管线,因为 ODA 免费版命令行不直接输出 PDF(仅支持 DXF 等中间格式),故增加 DXF→PDF 一步以获得更可控的多页输出:

DWG / DXF
   │  (ODA File Converter CLI, 后台隐藏运行)
   ▼
DXF
   │  (ezdxf 解析布局/实体  +  PyMuPDF 绘制)
   ▼
PDF  /  预览 PNG
组件 职责
ODA File Converter 免费 CAD 引擎,负责 DWG → DXF(含完整性解析)。以 SW_HIDE + DETACHED_PROCESS 后台静默运行,并剔除会干扰其子进程的 Qt 平台环境变量。
ezdxf 解析 DXF,提取图纸布局与实体(支持多布局、中文样式回退)。
PyMuPDF (fitz) 将图纸绘制为 PDF 与预览 PNG。
PySide6 三页栈式向导界面、拖拽上传、内联进度、居中淡入淡出气泡提示。

❓ 常见问题(FAQ)

Q:为什么是「DWG2PNG」标题,却输出 PDF? A:窗口标题 DWG2PNG V1.0.0 Design by Alex 为产品既定命名;软件实际功能为 DWG/DXF 转 PDF。如需改标题,修改 main.py 中的 APP_TITLE 常量后重新打包即可。

Q:为什么不能直接 DWG → PDF,而要经过 DXF? A:ODA File Converter 免费版的命令行 PDF 输出参数在本项目中不可用(会报错),因此采用 DWG → DXF → PDF 两段式管线,转换质量更可控、可输出多页。

Q:换电脑需要重新安装 ODA 吗? A:不需要。ODA 引擎已随 DWG2PDF.exe 打包,程序运行时自动解压并定位,新电脑免安装即可运行。

Q:首次启动为什么比较慢? A:单文件 exe 首次启动需把内置的约 70 MB 转换引擎解压到临时目录,属正常现象;之后该目录会被复用,启动变快。若希望避免每次解压,可改用 onedir(目录式)打包。

Q:支持 macOS / Linux 吗? A:当前 DWG2PDF.exe 为 Windows 原生程序,仅支持 Windows。跨平台需另行在对应系统上打包。


🙏 致谢 / 开源组件


📄 许可

本项目用于个人 / 学习用途。ODA File Converter 的使用须遵守 Open Design Alliance 的相关许可条款;其余 Python 依赖按其各自开源许可协议执行。

About

DWG2PD- for-Desktop

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages