# @bill\_nee/dwg-reader 中文文档

规范地址：https://npmcn.com/package/%40bill_nee/dwg-reader/

版本：1\.5\.3
npm 元数据更新时间：2026-11-02T16:41:42.093Z
中文译文更新时间：2026-11-08T02:36:40.786Z
软件包许可：GPL-3\.0-only

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40bill_nee/dwg-reader
原文对照：https://npmcn.com/package/%40bill_nee/dwg-reader/?lang=original
项目主页：https://github.com/NIDEXIANG/dwg-reader-plugin-20261029#readme
源码仓库：https://github.com/NIDEXIANG/dwg-reader-plugin-20261029

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：11.3 MB，100 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=20
- 运行依赖：2 个
- 首次发布：2026-10-28T22:37:30.693Z
- 最新版本发布：2026-11-02T16:41:41.928Z
- 近 30 天下载量：2173（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：11（近 12 个月 11 个）

## 中文简介

\* 自动CAD DWG/DXF/PDF =======================================================================================================================================================================================**需本机已安装 Python 与 zdxf**:,PDF 基于 pdf-parse,图片基于内置 tsesseract.js WASM OCR,支持本地 tsdata 多语言,GPL-3.0)。

## 安装

```sh
npm install @bill_nee/dwg-reader
```

也可以使用：`pnpm add @bill_nee/dwg-reader`、`yarn add @bill_nee/dwg-reader`、`bun add @bill_nee/dwg-reader`

## README

# @bill\_nee/dwg-reader

DSH（DeepSeek Harness）插件：直接读取 DWG/DXF 图纸、PDF 与图片/截屏，无需安装 AutoCAD、Tesseract 等外部软件。

基于 [libredwg-web](https://github.com/mlightcad/libredwg-web) 0.8.2 WASM 解析 DWG；DXF 经 Python ezdxf 桥接；PDF 用 pdf-parse；图片 OCR 使用内置 **tesseract.js（WASM）**，语言包可指向本地 tessdata，也可按需联网下载，支持 Tesseract 全量语言（100+ 种）。

## 安装

在 DSH 工作台或终端执行：

```powershell
dsh plugin --profile desktop add @bill_nee/dwg-reader@1.5.3
```

安装后在 DSH 工作台插件管理中启用插件，即可使用 `read_dwg`、`read_dxf`、`read_pdf`、`ocr_image` 四个工具（`read_image` 为 DSH 内置看图工具，本插件用 `ocr_image` 与其并存，避免同名冲突）。

## 工具与参数

| 工具 | 说明 |
| --- | --- |
| `read_dwg` | 解析 DWG：版本/代码页/图层/块/实体统计与明细，可导出 SVG 预览 |
| `read_dxf` | 解析 DXF（ezdxf 桥接）：版本、图层、块、实体统计与明细（**需本机已安装 Python 与 ezdxf**） |
| `read_pdf` | 解析 PDF：页数、元数据、可选全文文本 |
| `ocr_image` | 图片/截屏 OCR：格式、像素尺寸、颜色模式 + 识别文字（PNG/JPEG/WebP/BMP/GIF/TIFF） |

`ocr_image` 关键参数：

```json
{
  "file_path": "F:\\HAYNESS 工作区1\\测试用资源\\截屏.png",
  "ocr": true,
  "lang": "chi_sim+eng",
  "tessdata_prefix": "D:\\Tools\\Tesseract-OCR\\tessdata"
}
```

-   `lang`：Tesseract 语言码，`+` 或逗号连接，默认 `chi_sim+eng`；如 `eng`、`chi_tra`、`jpn`、`kor`、`deu`、`fra`、`rus`、`spa`、`ara`、`vie`、`tha` 等。
-   `tessdata_prefix`：本地 traineddata 目录。提供后只读本地语言包、不联网；目录缺包会报错并列出缺项。
-   未提供 `tessdata_prefix` 时，依次探测 `TESSDATA_PREFIX` 环境变量、`D:\Tools\Tesseract-OCR\tessdata`、`C:\Program Files\Tesseract-OCR\tessdata`、`/usr/share/tesseract-ocr/4.00/tessdata` 等常见目录；均未命中才联网下载并缓存到系统临时目录。

## 主要能力

| 能力 | 说明 |
| --- | --- |
| 读取 DWG | 支持 AutoCAD R14~R2018 等常见版本（AC1015~AC1032） |
| 图层信息 | 返回所有图层名称、颜色、冻结/关闭/锁定状态 |
| 实体统计 | 返回实体总数及按类型（LINE/TEXT/INSERT/HATCH/DIMENSION 等）分类统计 |
| INSERT 明细 | 返回块名、插入点、旋转、缩放及块属性（tag/text/value） |
| 图纸版本 | 返回 ACADVER、版本号、版本描述（如 r2007/AC1021） |
| 图幅信息 | 返回 EXTMIN/EXTMAX 边界框 |
| 导出 SVG | 可将 DWG 内容导出为 SVG 预览文件到指定路径 |
| 内置 OCR | tesseract.js WASM，无需安装 Tesseract 可执行文件；多语言、可离线 |
| 错误处理 | 对无效/损坏/非目标格式文件给出明确错误提示 |

## 前置依赖（重要）

-   **DWG / PDF / 图片 OCR**：纯 JavaScript + WASM，无需安装 AutoCAD 或 Tesseract，直接可用。
-   **DXF**：基于 Python ezdxf 桥接，**需本机已安装 Python 3 与 `ezdxf` 包**。Python 解释器优先读环境变量 `DXF_PYTHON_EXE`，其次 `DSH_HOME\dsh-runtimes\dsh-primary-runtime\dependencies\python\python.exe`，再次回退系统 `python`。缺少 `ezdxf` 时会给明确报错，请先 `pip install ezdxf`。

## 使用示例

```json
{
  "file_path": "E:\\2026 工程资料\\16 天喔蜜饯工厂\\03 CAD DESIGN\\02 HVAC DESIGN PLAN.dwg",
  "entities": true,
  "entity_limit": 50,
  "export_svg": true,
  "svg_output_path": "F:\\HAYNESS 工作区1\\hvac-plan.svg"
}
```

## 测试实例

-   **天喔蜜饯工厂暖通图纸**（r2018/AC1032）：1514 个实体、126 个图层。
-   **植本清源空调设备图**（r2007/AC1021）：1762 个实体、14 个图层。
-   **截屏 OCR**：本地 tessdata（chi\_sim+eng）约 4 秒识别 4500+ 字符；`ocr=false` 仅解析尺寸不识别。
-   **无效/损坏文件**：返回明确错误，不崩溃。

## 文件结构

```
dwg-reader-plugin/
├── lib/index.js          # 插件入口，注册 read_dwg / read_dxf / read_pdf / ocr_image
├── scripts/read_dxf.py   # DXF 解析桥接（ezdxf）
├── cordis.patch.yml      # DSH bundle 插件清单
├── package.json          # npm 包清单
├── LICENSE               # GPL-3.0-only
├── README.md             # 本文件
├── icon.svg              # 插件图标
├── locale/en.json        # 英文元数据
├── locale/zh.json        # 中文元数据
└── vendor/libredwg-web/  # libredwg-web 0.8.2 WASM 库（已 vendored）
    ├── lib/              # JS 封装层
    └── wasm/             # libredwg-web.wasm（WebAssembly 解析核心）
```

## 许可

GPL-3.0-only。依赖 libredwg-web 为 GPL，tesseract.js 为 Apache-2.0；公开分发请保留 LICENSE 并提供对应源码。

## 安装路径

-   npm 公开包：`@bill_nee/dwg-reader@1.5.3`
-   安装命令：`dsh plugin --profile desktop add @bill_nee/dwg-reader@1.5.3`
-   GitHub 源码：https://github.com/NIDEXIANG/dwg-reader-plugin-20261029

## 常见问题

### @bill\_nee/dwg-reader 是什么？

\* 自动CAD DWG/DXF/PDF =======================================================================================================================================================================================需本机已安装 Python 与 zdxf:,PDF 基于 pdf-parse,图片基于内置 tsesseract\.js WASM OCR,支持本地 tsdata 多语言,GPL-3\.0\)。

### 如何安装 @bill\_nee/dwg-reader？

在项目目录运行 npm install @bill\_nee/dwg-reader，或使用 pnpm add / yarn add / bun add。

### @bill\_nee/dwg-reader 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/bill\_nee\_\_dwg-reader 是否存在。

### @bill\_nee/dwg-reader 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @bill\_nee/dwg-reader 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=20。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @bill\_nee/dwg-reader 可以商用吗？

@bill\_nee/dwg-reader 使用 GPL-3\.0-only 许可。强 Copyleft：分发包含该代码的软件时，整个作品需以 GPL-3\.0 兼容许可开源，并附带专利与反锁定条款。仅内部使用不触发此义务。以上为概括，不构成法律意见，请以许可原文为准。

### @bill\_nee/dwg-reader 的下载量有多少？

根据 npm 官方下载统计，@bill\_nee/dwg-reader 在 2026/10/08 – 2026/11/06 这 30 天内被下载 2,173 次，日均约 72 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @bill\_nee/dwg-reader 还在维护吗？

最新版本 1\.5\.3 发布于 2026/11/03（5 天前）；至今共发布 11 个版本，其中过去 12 个月发布了 11 个；首次发布于 2026/10/29。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

