免费线上 OFD 阅读器 本地转换 · 本地验签 · 文件全程不出浏览器

0 阅读8分钟

基于 GB/T 33190-2016 的纯前端 OFD 方案 · 免费线上使用:ofd.11m18.cn

技术推文(知乎 / 掘金) | 本地/内网部署联系:694243440@qq.com

一、先说最重要的:免费、打开即用、文件不出本机

打开 ofd.11m18.cn ,你会看到一个干净的页面,两个入口:打开 OFD 与 PDF 转 OFD。

添加图片注释,不超过 140 字(可选)

图 1 线上站初始状态

三个最想让你记住的特点:

  • 免费线上使用:不装插件、不装客户端、不注册登录,浏览器打开网址就能用;
  • 本地转换:PDF 转 OFD 在你的浏览器里完成——14 页国标文档 0.44 秒,138 个嵌入字体全部保真,转完自动下载到本地;
  • 文件不出本机:打开、渲染、提取文本、验签、转换,全部在网页内的 WASM 内核里执行,全程零上传。你的发票、公文、证照不会经过任何服务器——包括我们的。 这对电子发票、电子公文这类敏感文件是决定性的:服务器方案要“把文件传上去”,本方案从架构上就不存在“传上去”这个动作。 二、网页功能全览与使用说明 2.1 打开文件:两种方式
  • 点击 “打开 OFD” 按钮选择文件;
  • 或者更直接——把 .ofd 文件拖进浏览器窗口,松手即开。 2.2 预览与翻页交互 文档打开后自动渲染第一页并开始验签。预览是矢量渲染,放大不糊:
  • 翻页:键盘 ← / →、PgUp / PgDn、Home / End,或点击底部页码条;
  • 跳页:页码框输入页码回车,直达任意页;
  • 缩放:Ctrl + 滚轮(以鼠标位置为中心缩放,看细节很顺手)、工具栏 +/- 按钮;
  • 适宽:一键按页面宽度自动适配窗口;
  • 长文档不卡:页码条窗口化渲染,42 页、400 页文档只挂可见页码,DOM 不爆炸。

添加图片注释,不超过 140 字(可选)

图 2 42 页文档与窗口化页码条 2.3 页面文本提取:可复制、可检索 点 “页面文本”,右侧展开当前页全部文字——发票代码、购买方、纳税人识别号、金额等直接可复制、可正则提取、可入库。这不是 OCR,是从 OFD 文本层精确提取的,零识别错误。

添加图片注释,不超过 140 字(可选)

图 3 电子发票与页面文本提取 2.4 数字签名验签:打开即自动完成 文档打开的瞬间自动验签,左侧“数字签名”卡片给出三层结论:

  • 签名值有效吗——SM2 签名值验证;
  • 文档被改过吗——签名保护的每个文件逐一比对摘要;
  • 签名人可信吗——证书链结论(未配信任锚 / 缺中间证书 / 受信任等,如实区分)。 需要完整信任结论时,可粘贴信任公钥或上传 .cer/.crt/.pem 证书作为信任锚重新验签。

添加图片注释,不超过 140 字(可选)

图 4 数字签名验签结果 2.5 PDF 转 OFD:浏览器里本地完成 点 “PDF 转 OFD” 选择 PDF,转换在本地执行。实测拿 GB/T 42133-2022 国标原文(方正书版排版)直接转:14 页 · 0.44 秒 · 138 个嵌入字体全部保真、0 个退化为轮廓,转换完成自动下载,页头保留“下载 OFD”入口。

添加图片注释,不超过 140 字(可选)

图 5 PDF→OFD 转换报告(线上实测) 转出来的 OFD 立即可以预览。放大 200% 看正文——中文排版、表格、页眉页脚原样,矢量清晰:

添加图片注释,不超过 140 字(可选)

图 6 国标正文页 200% 缩放 2.6 弱网也不慌:启动遮罩 + 真实进度 内核首次加载有进度遮罩——百分比 + 已下载/总字节数实时显示,不是假动画。加载完成后,字体进入浏览器缓存,第二次访问零等待。

添加图片注释,不超过 140 字(可选)

图 7 启动遮罩与真实进度 2.7 渲染质量与速度 渲染状态卡实时显示单页耗时:发票整页 27,600 条绘制指令 48ms 画完。放大 300% 看发票监制章——矢量绘制的印章注释,边缘依旧干净:

添加图片注释,不超过 140 字(可选)

图 8 印章细节 300%

添加图片注释,不超过 140 字(可选)

图 9 渲染状态卡:48ms/页 · 回退字体已就绪 三、对比其他同类方案 想在国内电子公文、电子发票生态里预览 OFD,现实中的选项基本是这几类: 表 1 同类方案对比

方案费用文件是否出本机安装/部署Web 集成
本站(纯前端 WASM)免费线上使用不出(全本地)免安装,开网址即用npm 包即插即用
商业 SDK按授权收费,常有水印/页数限制视实现购买、签合同、集成开发受许可证限制
服务端转图片服务器 + 带宽成本必须上传服务器自建转换服务、运维每页一次请求,慢
桌面阅读器免费~收费本地每台机器安装无法嵌入网页

对比商业 SDK:功能相近的东西要按授权付费,试用版常带水印或页数限制;本站线上版直接免费可用,验证效果零成本。 对比服务端转图片方案:那是目前最常见的网页预览做法——把 OFD 传到服务器转成图片再传回来。三个硬伤:文件必须离开本机(发票、公文客户往往不接受)、每翻一页都要请求一次、并发上来服务器 CPU 吃满。本站渲染在浏览器里完成,翻页零请求、缩放零请求,服务器只负责发一次静态文件。 对比桌面阅读器:每台机器都要安装,没法嵌进你自己的业务系统。本站是标准 Web 页面,同一套内核还提供 npm 包 / CLI / C 动态库 / Python、C#、Java 绑定,能嵌进任何系统。 还有一个容易忽略的差异:渲染一致性。 本站的网页渲染与桌面端渲染是同一个 Rust 内核,我们用逐像素比对验证过一致性(6 份样例差异 0.000%)——不是“网页版近似实现”。 四、性能与体积 不为速度牺牲体验,数据说话: 表 2 关键指标

数值
WASM 内核(brotli 压缩后)3.9 MB → 1.05 MB(-73%)
回退字体(GB2312 全集子集)16.4 MB → 2.1 MB(-87%,二次访问零下载)
首屏总传输约 20 MB → 约 2.3 MB(-89%)
单页渲染48ms(发票整页 27,600 条指令)
PDF→OFD14 页国标 0.44 秒
兼容性73 份真实样例矩阵全部通过,行为差异 0

五、个人使用与本地/内网部署 个人使用:直接访问 ofd.11m18.cn,免费,没有注册、没有次数限制、没有水印。收藏网址即可,手机浏览器也能打开。 网站/产品集成(开发者):同一套内核有 npm 包 rust-ofd(WASM + Canvas 播放器 + TS 类型),几行代码把你自己的网页变成 OFD 预览器,同样全程本地。 企业本地部署 / 内网部署:如果您的环境不允许访问公网,或有批量转换、归档合规、验签服务等需求,整套内核支持私有化部署,提供多种形态:

  • ofd-cli 命令行(服务端批量转换、渲染、验签);
  • C ABI 动态库(ofd_ffi.dll + ofd.h,C/C++/Go/Rust 可接);
  • Python / C# / Java 绑定;
  • 完整 Web 私有部署包(同线上版,可放内网)。 部署与合作联系:694243440@qq.com(说明你的场景:内网预览、批量 PDF→OFD、发票信息提取、归档合规检查、验签服务,我们会给出对应的形态与方案) 六、诚实的边界
  • JBIG2 的 symbol dictionary / text region 段尚未实现(泛型区域已支持),遇到的样例会画占位框;JPEG2000 暂不支持;
  • 回退字体覆盖 GB2312 全集,极生僻字会缺字(文档嵌入字体优先,仅影响不嵌字体的生僻字文档);
  • 无 ToUnicode 的老式 PDF 转出来的 OFD 文本不可检索(源文件里就不存在该信息,视觉渲染不受影响);
  • 性能数字为单机实测值。

现在就试试:ofd.11m18.cn —— 打开你手头的 OFD 发票,提取文本、验个签、把一份 PDF 转成 OFD,全程不过你的文件一眼——因为它根本不会离开你的电脑。

本文截图来自 ofd.11m18.cn 线上站与同版本代码的本地运行结果(Edge),体积、耗时数据为实测值。