把试卷截图重排成格式一致的 Word 文档
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add wjx-ai/dsh-docx-from-images该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · vision
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 2 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 7 处,展示前 7 条)
- 读取本地文件index.js:24
if (p && !found.includes(p) && existsSync(p)) found.push(p) - 读取本地文件index.js:32
for (const name of readdirSync(runtimes)) { - 读取本地文件index.js:165
? JSON.parse(readFileSync(abs(base, args.spec_path), 'utf8')) - 写入本地文件index.js:176
writeFileSync(tmp, JSON.stringify(spec, null, 2), 'utf8') - 删除本地文件index.js:181
unlinkSync(tmp) - 写入本地文件index.js:293
writeFileSync(tmp, JSON.stringify(spec, null, 2), 'utf8') - 删除本地文件index.js:298
unlinkSync(tmp)
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
截图?DeepSeek Harness 的 Word 排版:docx_typeset / docx_crop 工具加图片转 docx 技能。着重号、带制表位的选项、表格、插图、分页。
README
由 DeepSeek 最新模型翻译生成dsh-docx-from-images
把截图 / 扫描件里的试卷、讲义重新排成 排版一致的 Word 文档 —— 这是 DeepSeek Harness 的一个 Host 插件(bundle),提供两个工具和一份技能(skill),并把 OOXML 排版里最容易踩的几个坑全部内置规避。
Screenshot → Word typesetting plugin for DeepSeek Harness. Two tools (docx_typeset, docx_crop) and one skill (image-to-docx).
示例
提供的能力
| 名称 | 类型 | 作用 |
| docx_typeset | Tool | 按 JSON spec 生成 .docx:着重号、制表位列(2/4 栏选项)、色带标题、表格、插图、显式分页;生成前会估算列宽并返回 warning |
| docx_crop | Tool | 从截图/拍照件里裁插图:像素框裁剪、去白边、放大、网格预览;纸底美白(white_point)、可调墨迹阈值(trim_threshold)、多联图拼合(compose + panels) |
| image-to-docx | Skill | 端到端流程:探图 → 逐图转写 → 标格式 → 写 spec → 生成 → 目视验收 → 交付话术 |
展开完整文档(README 剩余 1 节)
dsh-docx-from-images
把截图 / 扫描件里的试卷、讲义重新排成 排版一致的 Word 文档 —— 这是 DeepSeek Harness 的一个 Host 插件(bundle),提供两个工具和一份技能(skill),并把 OOXML 排版里最容易踩的几个坑全部内置规避。
Screenshot → Word typesetting plugin for DeepSeek Harness. Two tools (docx_typeset, docx_crop) and one skill (image-to-docx).
示例
提供的能力
| 名称 | 类型 | 作用 |
| docx_typeset | Tool | 按 JSON spec 生成 .docx:着重号、制表位列(2/4 栏选项)、色带标题、表格、插图、显式分页;生成前会估算列宽并返回 warning |
| docx_crop | Tool | 从截图/拍照件里裁插图:像素框裁剪、去白边、放大、网格预览;纸底美白(white_point)、可调墨迹阈值(trim_threshold)、多联图拼合(compose + panels) |
| image-to-docx | Skill | 端到端流程:探图 → 逐图转写 → 标格式 → 写 spec → 生成 → 目视验收 → 交付话术 |
安装
需要本机有 Python 3 + python-docx + Pillow。插件会依次尝试: $DSH_PYTHON → $DSH_HOME/dsh-runtimes/*/dependencies/python → $HOME/.dsh/... → PATH 上的 python。
把仓库放到任意目录,然后在 Harness 里用 plugin_manager 安装这个目录
plugin_manager({ action: "install_bundle", target: "<本仓库绝对路径>" })
装好后:
- 工具出现在 Agent 的工具列表里(docx_typeset / docx_crop);
- 技能目录里多出 image-to-docx,用户说“把这几张截图排成 Word”时会自动加载;
- 插件面板里的标题与图标来自 locale/zh.json、locale/en.json 与 icon.svg。
用法
docx_typeset({
spec: {
out: "D:/out/试卷.docx",
page: { margin_cm: { top: 2.2, bottom: 2.2, left: 2.2, right: 2.2 } },
body: { font: "宋体", latin: "Times New Roman", size_pt: 12, line_pt: 20 },
blocks: [
{ type: "text", text: "1.\t下列加点字读音全部正确的一项是{b}( ){/b}", tabs_cm: [0.78], before_pt: 7 }, { type: "text", text: "A.\t屹{d}立{/d}(yì)\t霎{d}时{/d}(shà)", tabs_cm: [6.05, 9.4], indent_cm: 1.1 } ] } })
块类型:title / text / table / image / pagebreak。
文本标记:{d}着重号{/d}、{b}加粗{/b}、{i}斜体{/i}、{u}下划线{/u};\t 开一个新列。
完整示例见 examples/spec.json。
混排与页脚
一份卷子里常常“题干宋体、材料楷体、标题微软雅黑”,所以每个 text / title 块都能单独指定字体:
{ "type": "text", "text": "①夜深了,人们睡了……", "font": "楷体", "first_line_cm": 1.06 }
页脚用 {page} / {pages} 占位,写入的是真正的 PAGE / NUMPAGES 域(合并多张图后页数自动正确):
"footer": { "text": "第 {page} 页 共 {pages} 页", "size_pt": 9, "align": "center" }
body.dot_min_line_pt(默认 24)控制带着重号的行至少多高;字号偏小时(≤13pt)调到 21–22 既能保住点,又不会把版面撑到多出一页。
内置规避的坑
| 坑 | 现象 | 本插件的做法 |
| 着重号画在字上 | w:em val="dot" 把点画在字顶 | 强制 val="underDot";也不拿“下划线”冒充 |
| 着重号被裁一半 | 行距“固定值”时字下方的点被切掉 | 含 {d} 的行自动升到 body.dot_min_line_pt(默认 24pt) |
| 字号拍脑袋 | 定大一号就每题多折一行,9 页排成 13 页 | 从截图反推单字宽(行宽 ÷ 字数),再以“分页是否与原图一致”验收 |
| 材料与题干同字体 | 楷体引文排成宋体一眼假 | 段落级 font / latin 覆盖 body |
| 页脚写死页数 | “共 27 页”在合并稿里全错 | footer 里的 {page} / {pages} 写成域代码 |
| 页边一排 ■ | 段落设了“与下段同页/段前分页/段中不分页” | 一律不写 keepNext/keepLines/pageBreakBefore;改在上一段末尾插分页符 |
| 表格后排不掉页 | 分页符落在表格前的段落上 | 表格后分页用 1pt 载体段承载 |
| 选项整行右移 | 行内标签 A.\t 只替换了第一个制表符 | 开头的 A.\t 自动归一成 A. |
| 制表位叠加缩进 | 以为 tabs_cm 从首行缩进算起 | 制表位从页面左边距量起,并估算列宽给出溢出 warning |
| 插图糊 / 占满版心 | 直接塞整页截图 | 先用 docx_crop 裁图(去白边、2x 放大),再按版心比例给 width_cm |
| 拍照件的图带灰底 | 图贴进 Word 是一块灰方块,trim 也裁不掉任何边 | 纸底 ~200 灰、245 阈值看不见它:加 white_point:true + trim_threshold:205(详见下节) |
| 一题多联图被截成一张 | 一排三把尺子只贴出一把 | compose:true + panels:[{box},…],横向用 align:"bottom" 共底线 |
| 手写混进插图 | 图里出现学生笔迹,与印刷内容黏在一起 | 抬高 trim_threshold 只按重墨收紧边界;或看墨迹逐行分布,把 y1 停在印刷内容结束处 |
| 表格手工空格对齐 | 列不齐、跨页表头丢失 | Table Grid + 显式列宽 + 表头跨页重复 |
拍照件的插图(white_point / compose)
截图是纯白底,拍照不是:手机拍的卷面纸底约 200 灰,于是默认 245 的 trim 阈值一个像素也裁不掉,图会带着整块灰底贴进 Word。三个参数解决:
{
"src": "page3.jpg",
"out": "fig_wu.png",
"compose": true,
"panels": [
{ "box": [100, 560, 562, 756] },
{ "box": [640, 556, 1270, 758] }
],
"white_point": true,
"trim": true,
"scale": 2,
"align": "bottom",
"gap": 48
}
- white_point:纸底映射成纯白。true 按直方图自动取(85 分位数再降一点),或显式给数值配 black_point(如 195 / 60)。设了它就自动转 8-bit 灰度——黑墨线稿更清爽,体积更小。
- trim_threshold:低于此值算墨迹。不设 white_point 时默认 245(老行为),设了则默认 205。想躲开淡淡的铅笔痕就把它调低。
- compose + panels:一个 image 块只能放一张图,而一道题常常是“一排三把尺子”或“左右两幅商品图”,所以在这里拼成一张。align:"bottom" 让共底线的联图不错位(横向),"top"/"center"/"left"/"right" 同理;direction:"vertical" 可改成竖排。
输出的 JSON 里带 ink_box(成品墨迹范围),四个角落应当是 255,可以用来判断美白是否真的生效。
验证(可选,需要装有 Word)
$w = New-Object -ComObject Word.Application; $w.Visible = $false
$d = $w.Documents.Open($docx, $false, $true)
$d.ExportAsFixedFormat($pdf, 17); $d.Close(0); $w.Quit()
再用 Windows.Data.Pdf 逐页 RenderToStreamAsync(DestinationWidth = 1240)出 PNG 目视比对。
注意 PowerShell 5.1 会把 .ps1 当 ANSI 读,脚本内容与路径保持纯 ASCII,中文路径用参数传。
目录结构
index.js 插件入口:注册 docx_typeset / docx_crop / image-to-docx builder.py JSON spec -> .docx(python-docx) crop.py 截取插图 / 纸底美白 / 多联图拼合 / 网格预览 / 尺寸探测(Pillow) cordis.patch.yml bundle 安装行
locale/{zh,en}.json 插件面板的标题与描述
icon.svg 插件图标 examples/ 可直接运行的示例 spec 与插图
License
MIT © wjx-ai预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
wjx-ai/dsh-docx-from-images
把试卷截图重排成格式一致的 Word 文档
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,364已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,709已汉化DSH
71.8
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,319已汉化DSH
71.5
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,533已汉化DSH
71.1
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 93,105已汉化DSH
71.1
这是你的仓库?认领条目