🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

MARIOMLY/dsh-pdf-translate

DeepSeek Harnessspec-screened扫描:中风险在 GitHub 查看 ↗
✓ 可直接安装

新增DSH 侧栏「翻译」面板:丢入英文电子版…

自动检查通过:npm 包已发布且 engines 声明满足基线;该结论来自程序自动检查,未经人工实机验证。 · 最近上游提交 2026/9/16 · 已提供中文文档

新增DSH 侧栏「翻译」面板:丢入英文电子版 PDF,先量出原件的版式(页边距/字号/行距/强调色/页眉页脚位置)再照着重排,产出保版式的中文版 PDF + md;另提供 pdf_translate 模型工具。

综合分
30.3
GitHub 分
30.3
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add dsh-pdf-translate
npm 包 dsh-pdf-translate 已校验归属本仓库,走 npm 安装最省事
信任档位:已验证本站已于 1 天前真实安装成功(L4 · 真实安装)
是什么
dsh 原生插件 · tool
装得上吗
本站已真实安装成功(L4 · 真实安装,非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 9 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/24
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查✓ 自动检查通过

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-pdf-translate @ 0.1.0
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/21 11:07:23

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-llm@deepseek-ai/dsh-typert-protocol
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-pdf-translate

给 DSH 加一个侧栏「翻译」面板:丢一份英文电子版 PDF 进去,出来一份「按原件版式排的」中文版。

左侧栏「日程」下面会出现「翻译」入口:

- 把 PDF 拖进去(或点一下选文件),十几秒到几分钟后得到
_中文版.pdf + _中文版.md
- 产物默认落在 D:\Translation(面板里可临时改;默认值写在 lib/index.js 的 defaultOutDir())
- 另外注册了模型工具 pdf_translate,可以直接对 Agent 说"把这份 PDF 翻成中文"

它凭什么"保留原版式"

不是套模板,而是先从原件量出参数,再照着重排:

| 阶段 | 做的事 |
|---|---|
| ① 解析 | 零依赖 PDF 解析器:文字层 + 位置 + 字号 + 颜色;支持对象流(/ObjStm)、交叉引用流、ToUnicode CMap、二字节 CID、无 /Widths 的子集字体(内置 Times 度量表) |
| ② 量版式 | 统计出页边距、各级字号、行距、段距、强调色、页眉页脚的位置与文字,再把内容切成块(标题 / 节标题 / 定理标题 / 正文 / 独立公式 / 页眉 / 页脚) |
| ③ 翻译 | 逐块交给模型,公式还原成 LaTeX(PDF 里抓出来的是 a1,a2,a3,...,n,a... 这种碎片);分批 + 失败对半拆 + 漏块补问 |
| ④ 重排 | 用②量出来的参数生成 HTML,KaTeX 渲染公式(编号 \tag{5.1} 右对齐);每节独立压缩,先收间距再收字号,尽量贴合原件页数 |
| ⑤ 打印 | 无头 Edge 经 CDP Page.printToPDF 打成 PDF(吃 @page,纸张跟原件一致) |

底线:宁可多排一页,绝不裁内容。 内容超出时会自动多分页;只有"只超出一点点"才压缩重排。

安装

dsh plugin --profile web add

装完重启桌面应用(或刷新页面)生效。宿主半注册 Cordis 服务 pdfTranslate,
浏览器半注册左侧栏入口与主面板,通过 ctx.remote.$mount 挂载同名命名空间。

已知边界

- 只处理有文字层的电子版 PDF;扫描件会被明确拒绝(不做 OCR)
- 只做英译中
- 译文用默认模型(面板上会显示),不支持逐份指定语言对

皮肤兼容(踩过的坑)

面板落在会话列里,而皮肤(如 maid-atelier)会把立绘层 prepend 进同一列,
那一层是 position:absolute; z-index:0 —— 未定位的兄弟节点一律画在它下面,
症状是"隐约几行字、什么都点不着"。

所以根节点必须 position: relative(不要加 z-index,加了会新建层叠上下文,
设置/下拉这些页面级弹层就跑不到上面去),并且要有底色(加 backdrop-filter 毛玻璃最好读)。

颜色一律用 color-mix(in srgb, currentColor N%, transparent) 就地调,
不要依赖 --dsw-alias-* 令牌——本机这个 DSH 版本里它们不存在,写了等于永远走兜底值,
深色兜底文本落到浅色皮肤上就是不可读。

开发与自检

pnpm install
pnpm run typecheck      # tsc --noEmit
pnpm run build          # tsdown 构建客户端 + 包成 ModuleLoader 工厂
node verify.mjs         # 88 项离线断言(失败即 exit 1)

verify.mjs 覆盖:宿主/客户端 wire 契约逐字一致、客户端产物是 ModuleLoader 工厂、
以及引擎行为——自带两份 PDF 夹具(经典表 + 对象流)跑"解析→量版式→分块→重排"。
下面这些坑都已固化成断言,删代码前先看它们:

- 公式必须真的被 KaTeX 渲染(出现 kerr 即失败)
- 带 \[…\] / $$…$$ 外壳的公式要能渲染(模型爱连定界符一起返回)
- 对象流 PDF 必须读出页数(否则是 0 页)
- 模型停滞时必须被超时打断(不许无限等)
- 面板根节点必须定位(否则被皮肤立绘盖住)

tools/engine-render.mjs 可以完全脱离 DSH 跑通"解析→分块→重排→打印"(用占位译者),
用来单独验证版式;DSH_PDF_TRANSLATE_KEEP_HTML=1 会保留中间 HTML。

第三方

lib/vendor/katex/ 是 KaTeX 的发布产物(MIT),
为了离线渲染公式随包分发;该目录里另有一份 package.json 声明 commonjs
——插件根是 "type": "module",不声明的话 Node 会把 UMD 当 ESM 加载,
this 变成 undefined,所有公式会退化成红色源码。

License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群