DSH 的 PDF 解析工具:pdf_info、pdf_extract_text、pdf_render_page 三件套,pdfjs 与自研渲染器双引擎,未内嵌 CJK 字体的 PDF 也能用系统字体渲染出图。
安装
# npm 包(预构建)
dsh plugin --profile web add @zhtx2026/dsh-pdf
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:zhtx2024/dsh-pdf
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DeepSeek Harness 的 PDF 解析工具集 — 提供
pdf_info/pdf_extract_text/pdf_render_page三个模型可见工具,双引擎架构,未内嵌中文字体的 PDF(如嘉立创 EDA / EasyEDA 导出的原理图)自动切换系统字体渲染。
标签: dsh-plugin · pdf · pdfjs · canvas · schematic · tools
安装
dsh plugin --profile web add @zhtx2026/dsh-pdf
开发期可从本地源码安装:
dsh plugin --profile web add link:<路径>
重启 DSH(或开新会话)后生效,同时注入中文协作公告。
工具
| 工具 | 能力 |
|---|---|
pdf_info |
页数、页面尺寸(pt)、文档元数据、字体列表及每项 embedded 内嵌标记。 |
pdf_extract_text |
按页提取文字;可选 page 与 withPosition(每行 x/y 坐标 + 字号)。 |
pdf_render_page |
把一页渲染为本地 PNG;scale/outDir 可配;渲染引擎自动选择。 |
为什么需要自研渲染器
pdfjs-dist 无法渲染「字体未内嵌且无 ToUnicode 映射」的 PDF 文字 —— 典型就是
嘉立创 EDA / EasyEDA 导出的原理图(SimSun/SimHei Type0 字体、
UniGB-UCS2-H 编码):pdfjs 会报 translateFont failed 并丢字。
dsh-pdf 用双引擎解决:
- pdfjs 引擎 — 字体全部内嵌时使用(常规 PDF)。
- sysfont 引擎 — 自研内容流渲染器:自己解析文本算子
(
BT/ET、Tf、Tm、Td、Tj、TJ),把UniGB-UCS2-H/UTF-16BE 串解码为 Unicode,再经@napi-rs/canvas用系统字体(宋体、黑体、 微软雅黑……)绘制。
文字提取同样自动选择:字体全内嵌 → pdfjs 文本层;存在未内嵌字体 → 自研解码器(正确还原 pdfjs 会丢失的中文)。
示例
pdf_info("D:/Downloads/SCH_SA-V11A.pdf")
→ 3 页、A3 横向、jsPDF 生成、6 个字体(全部未内嵌)
pdf_extract_text("D:/Downloads/SCH_SA-V11A.pdf", { page: 1 })
→ 网络名、引脚号、中文标签("主控板"、"嘉立创"……)
pdf_render_page("D:/Downloads/SCH_SA-V11A.pdf", { page: 1, scale: 2 })
→ D:/Downloads/SCH_SA-V11A-pages/page-1.png (2396×1698,engine: sysfont)
架构
lib/index.js— cordis 插件入口(name、inject、apply);以原生工具 对象注册三个工具(标准 JSON-Schemaparameters/output,无需依赖@deepseek-ai/dsh-tools),并注入中文协作公告(systemPrompt.section, order 160)。lib/pdf-core.js— 自包含引擎:PDF 对象解析器、字体扫描、基于 fs 的CMapReaderFactory/StandardFontDataFactory加载 pdfjs(Node 24 全局fetch不支持file://)、自研文本提取器、sysfont 渲染器。cordis.patch.yml—dsh.bundle.patch插入行。
限制
- 扫描件/纯图片 PDF 无文字层,提取不到文字(渲染仍可用,等同原图)。
- sysfont 渲染器假设
Type0的 CID 即 Unicode 码点(UniGB-UCS2-H导出 成立);特殊 CID 字体回退 pdfjs。 - 大文件整份读入内存解析。
许可证
链接
同类插件
tt-a1i/archify#integrations/deepseek-harness★ 75299
从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。
dream-num/dsh-univer-office★ 450
为 DeepSeek Harness 打造一个真正的办公环境。Univer Office 插件将电子表格、文档、幻灯片、画布、多维表格等汇聚到同一个运行时——数据互联、修改经过校验、变更按版本管理,并以隔离工作树支持多 Agent 协作。
PerryLink/dsh-industry-research★ 194
面向 DeepSeek Harness 的确定性行业研究报告:公司与行业研究流程基于分阶段证据产出结构化、可核验的报告。
HuanLinOTO/dsh-plugin-mineru★ 47
向模型暴露 MineRU 文档解析工具。
kw78/dsh-office-tools★ 26
面向 agent 的工作区安全 Office 工具集:创建/读取 Word、创建/读取/更新 Excel、创建/读取 PowerPoint,并支持 PNG/JPG/GIF 图片排版。
PolinniZhong/dsh-knit★ 24
把会话工作区里已有的 Markdown 文档、图片与视频列进 DSH 侧边栏,按与当前对话的相关性排序:用最近几条消息在本地与文档标题、摘要、正文做带 IDF 权重的匹配,不调用模型,也没有网络出口。列表来自工作区扫描,而不是「最近打开记录」,所以重启 DSH 或新开会话都不会变空。图片与视频可就地预览,相对路径图片真实渲染,视频走 HTTP Range 流式播放。预览头下方的引用条显示当前这篇被哪些文档引用、又引用了哪些,点一项即可跳过去。同一份排序也作为 knit_docs 工具交给 agent:它返回最相关的若干篇,并附上每篇里命中的那段原文(有命中时才附)。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。