ofd-analyzer

command
v0.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 6, 2026 License: Unlicense Imports: 9 Imported by: 0

README

ofd-analyzer

ofd-analyzer 用于分析 OFD 文件的结构、页面对象、文字、资源、附件、注解、签名和引用关系,默认输出纯文本报告。

构建

在项目根目录执行:

go build -o ofd-analyzer ./cmd/ofd-analyzer

也可以构建独立安装包:

make package-analyzer

安装包输出到 dist/ofd-analyzer-<GOOS>-<GOARCH>.zip。

用法

ofd-analyzer [选项] input.ofd
# 默认输出纯文本
ofd-analyzer document.ofd

# 输出紧凑 JSON
ofd-analyzer --format json document.ofd

# 输出缩进后的 JSON 报告文件
ofd-analyzer --pretty --output report.json document.ofd

# 输出纯文本、Markdown 或 PDF 报告
ofd-analyzer --format text -o report.txt document.ofd
ofd-analyzer --format markdown -o report.md document.ofd
ofd-analyzer --format pdf --font /path/to/font.ttf -o report.pdf document.ofd

# 跳过可选分析阶段
ofd-analyzer --no-annotations --no-signatures document.ofd

未指定 -o 或 --output 时,报告输出到标准输出。将输出路径设为 - 也表示输出到标准输出。 工具不会允许报告文件覆盖输入的 OFD 文件。

命令选项

选项 默认值 说明
-o, --output PATH 标准输出 报告输出路径,使用 - 输出到标准输出
--format FORMAT text 报告格式:text、markdown、json 或 pdf
--font PATH 自动 PDF 报告使用的字体文件;仅适用于 PDF
--pretty 关闭 缩进 JSON 输出
--no-templates 关闭 跳过模板定义、引用和 PageRes 资源分析,但保留模板元数据
--no-annotations 关闭 跳过注解及 Appearance 分析
--no-signatures 关闭 跳过签名清单分析
--no-package 关闭 跳过 ZIP 条目统计,但保留包内路径索引
--fail-on-warning 关闭 有警告时返回退出码 1
--version 关闭 输出 analyzer 版本
-h, --help 关闭 显示命令帮助

报告

报告包含 schema 版本、输入信息、OFD 和 ZIP 包统计、文档体和页面列表、对象和文字统计、资源定义与使用情况、 附件、注解、签名以及文件和 ID 引用边。报告中的资源引用使用文档体作用域,例如 doc[0]/font:3,避免多个文档体使用相同 ID 时发生混淆。

resources 是所有资源类别的总汇总,包含图片、字体、绘制参数、复合图元、颜色空间、模板和 Pattern; 各资源类别也通过对应的独立字段提供详细统计。字体专用字段为 embedded,绘制参数专用字段为 inheritance_cycles,不会出现在其他资源类别中。

模板、复合图元和 Pattern 默认只统计定义及引用,不展开其内部对象;因此它们的定义内容不会重复计入页面对象和文字汇总。 使用 --no-templates 时,模板定义、页面模板引用和模板 PageRes 资源均不参与分析,但文档体中的 template_count 和文档到模板文件的结构引用仍会保留。

绘制参数统计包括定义数、引用次数、唯一引用数、无法解析引用数和 Relative 继承循环数;引用次数包含 页面、模板、注解对象以及绘制参数继承产生的引用。

页面对象按 Layer.Items 的文档顺序递归统计。模板和注解 Appearance 的对象、文字及资源统计分别记录,不会混入普通页面对象。 字符统计同时提供 Unicode code point、UTF-8 字节、空白字符和 glyph 数量。

退出码

  • 0:分析完成;默认情况下存在警告仍返回 0。
  • 1:OFD 无法分析,或指定 --fail-on-warning 且报告包含警告。
  • 2:命令参数、输入文件或报告输出路径无效。

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL