额外说明
库已做兼容处理,一份代码同时兼容HTML(现代浏览器)、JS(脚本猫油猴)、Node.js
不只局限于脚本管理器(脚本猫油猴)
开源仓库
GitHub: https://github.com/DreamNya/invoice-ofd2json
NPM: https://www.npmjs.com/package/invoice-ofd2json
说明
功能
轻量化JavaScript库,可解析输入的ofd发票文件内容,并将其提取转为json格式输出
特点
TODO(欢迎PR)
原理
通过JSZip
解压ofd发票,提取CustomTag.xml
以及Pages/*/Content.xml
文件并对其进行解析
(所有解析内容来源均为ofd发票文件,仅支持正规格式。受ofd格式限制,文件内部分信息缺失,暂时无法做到100%准确,仅能依靠预定义解决)
使用方法
Node.js
安装(NPM)
npm install invoice-ofd2json
使用
const ofd2json = require("invoice-ofd2json");
/**
* 解析输入的ofd文件内容并将其转换为json输出
* @param ofd 任意符合JSZip输入格式的ofd文件格式
* @param logMessage 用于调试输出时附带的信息
* @Return json格式的解析后的ofd内容
*/
await ofd2json(ofd, ?logMessage)
Browser
安装(CDN)
<script src="https://cdn.jsdelivr.net/npm/jszip@3.10.1/dist/jszip.min.js" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/invoice-ofd2json/src/parser.js" crossorigin="anonymous"></script>
使用
/**
* 解析输入的ofd文件内容并将其转换为json输出
* @param ofd 任意符合JSZip输入格式的ofd文件格式
* @param logMessage 用于调试输出时附带的信息
* @return json格式的解析后的ofd内容
*/
await ofd2json(ofd, ?logMessage)
UserScript
安装(CDN)
@require https://cdn.jsdelivr.net/npm/jszip@3.10.1/dist/jszip.min.js
@require https://cdn.jsdelivr.net/npm/invoice-ofd2json/src/parser.js
安装(ScriptCat)
// @require https://cdn.jsdelivr.net/npm/jszip@3.10.1/dist/jszip.min.js
// @require https://scriptcat.org/lib/1265/1.0.1/invoice-ofd2json.js
使用
/**
* 解析输入的ofd文件内容并将其转换为json输出
* @param ofd 任意符合JSZip输入格式的ofd文件格式
* @param logMessage 用于调试输出时附带的信息
* @return json格式的解析后的ofd内容
*/
await ofd2json(ofd, ?logMessage)
应用场景
详见Demo
(UserScript Demo待补充)
License
MIT