logo
0
0
WeChat Login

OFDReader

一个功能完整的 OFD 阅读器,使用 Rust 和 GTK 构建

License Rust Platform


简介

OFDReader 是一个基于国家标准 GB/T 33190-2016 的 OFD(开放版式文档)阅读器。该项目使用 Rust 语言开发,采用 GTK 作为图形界面框架,Cairo 作为图形渲染引擎,提供完整 OFD 文档的查看、编辑、注释和转换功能。

主要功能

文档阅读

  • 支持 OFD 格式文档的完整渲染
  • 支持 PDF 格式文档的基本阅读
  • 多种视图模式:实际大小、适应高度、适应宽度、适应页面
  • 页面缩放(0.2x - 5.0x)
  • 页面旋转(90/180/270 度)
  • 缩略图导航
  • 页面快速跳转

文档注释

  • 手写笔迹注释
  • 矩形框标注
  • 橡皮擦工具
  • 支持撤销/重做操作
  • 一键清空所有注释
  • 注释保存到 OFD 文件

电子签章

  • 支持电子签章的解析和验证
  • 骑缝章支持
  • 对开章支持
  • 关键字定位签章

文档转换

  • PDF 转 OFD
  • OFD 转 PDF
  • OFD 转 JPG/PNG 图片
  • OFD 转 SVG
  • OFD 转 HTML

文档操作

  • 多个 OFD 文件合并
  • 文档打印支持
  • 在线预览功能

截图

OFDReader 主界面

OFDReader 主界面

技术栈

  • 编程语言: Rust 2021 Edition
  • 图形界面: GTK 3
  • 图形渲染: Cairo (支持 PNG、FreeType)
  • 文档解析: 自研 OFD 解析引擎
  • PDF 支持: PDFium
  • 数据格式: XML、ZIP

快速开始

环境要求

  • Rust 1.70 或更高版本
  • GTK 3 开发库
  • Cairo 图形库
  • Windows 或 Linux 操作系统

安装依赖

Windows

# 安装 MSYS2 并通过 pacman 安装 GTK3
pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-cairo

Linux (Ubuntu/Debian)

sudo apt-get update
sudo apt-get install libgtk-3-dev libcairo2-dev

构建项目

# 克隆仓库
git clone https://github.com/yourusername/ofdreader.git
cd ofdreader

# 构建项目
cargo build --release

# 运行程序
cargo run --release

项目结构

ofdreader/
├── src/              # 源代码目录
│   ├── core/        # 核心功能模块
│   │   ├── ofd.rs   # OFD 文档解析
│   │   ├── page.rs  # 页面处理
│   │   ├── sign.rs  # 签章功能
│   │   └── annotation.rs  # 注释功能
│   ├── render/      # 渲染引擎
│   ├── ui/          # 用户界面
│   ├── utils/       # 工具函数
│   └── writer/      # 文档写入
├── schema/          # OFD 标准数据结构定义
├── pdfium/          # PDF 支持
├── resources/       # 测试资源和示例
└── images/          # 图片资源

使用说明

打开文档

  1. 点击工具栏的"打开文件"按钮
  2. 选择 .ofd.pdf 文件
  3. 文档将在主视图中显示

添加注释

  1. 切换到"注释"工具模式
  2. 选择注释工具(手写/矩形/橡皮擦)
  3. 在页面上进行绘制
  4. 点击"保存文件"保存修改

签章功能

  1. 切换到"签章"工具模式
  2. 配置签章参数(位置、类型等)
  3. 执行签章操作

核心特性

OFD 标准

本项目完全遵循以下国家标准:

  • GB/T 33190-2016 电子文件存储与交换格式版式文档
  • GBT 20520-2006 信息安全技术 公钥基础设施 时间戳规范
  • GMT 0031-2014 安全电子签章密码技术规范
  • GBT 35275 信息安全技术 SM2 密码算法加密签名消息语法规范
  • GBT 35276 信息安全技术 SM2 密码算法使用规范
  • GM/T 0099-2020 信息安全技术 公开密钥基础设施 密码设备管理接口规范

性能优化

  • 使用 Rust 的零成本抽象保证高性能
  • Cairo 硬件加速渲染
  • 智能缓存机制减少重复渲染
  • 异步加载大文档

安全性

  • 内存安全保证(Rust 语言特性)
  • 签章完整性验证
  • 文档加密支持

贡献指南

欢迎贡献代码!请遵循以下步骤:

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

版本历史

详细的版本更新记录请查看 CHANGELOG.md

当前版本

  • Version 0.1.0 - 初始版本

主要更新

  • 完整的 OFD 文档渲染
  • 注释功能支持
  • 电子签章支持
  • PDF 文档支持
  • 多格式转换功能

相关项目

  • ofdrw - Java 版本的 OFD 读写库
  • 数科 OFD 阅读器 - 商业 OFD 阅读器

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

免责声明

本项目仅供学习和研究使用。在使用本软件处理任何涉及商业机密或法律效力的文档时,请确保遵守相关法律法规。

联系方式

如有问题或建议,请通过以下方式联系:

  • 提交 Issue
  • 发送 Pull Request
  • 联系项目维护者

致谢

感谢所有为本项目贡献代码的开发者


如果这个项目对您有帮助,请给个 ⭐️ Star 支持!

Made with ❤️ by OFDReader Team

About

ofd阅读器

Language
Rust99.5%
C0.5%
Makefile0.1%
CSS0%