Skip to content

Vantalens/Trans2Former

Repository files navigation

Trans2Former

本地优先的多格式文档转换工具

Trans2Former 是一个专业级的桌面文档转换工具,支持 12 种输入格式和 11 种输出格式的相互转换。所有转换在本地完成,零上传,保护您的数据隐私。

License: MIT Tests Version


✨ 特性

  • 🔒 本地优先 - 所有转换在本地完成,不上传任何数据
  • 🚀 高性能 - 基于 Web Worker 的并行处理
  • 📦 零依赖 - 不需要安装 Office、LibreOffice 或 Pandoc
  • 🎨 实时预览 - 转换前后实时预览文档
  • 📝 结构化编辑 - 支持编辑转换后的文档结构
  • 🔌 插件系统 - 按需加载高级功能
  • 🌍 多语言 - 支持中英文、RTL 文本等
  • 无大小限制 - 不设置人为文件大小上限

📋 支持的格式

输入格式(12 种)

  • 文档: Markdown, HTML, TXT, DOCX, PDF, EPUB
  • 数据: JSON, CSV, XML, XLSX
  • 演示: PPTX
  • 图片: PNG

输出格式(11 种)

  • 文档: Markdown, HTML, TXT, DOCX, PDF, EPUB
  • 数据: JSON, CSV, XML, XLSX
  • 演示: PPTX

热门转换路径

  • Markdown ↔ HTML
  • DOCX → Markdown
  • PDF → Markdown
  • XLSX ↔ CSV
  • HTML → PDF

🚀 快速开始

安装依赖

npm install

启动应用

npm start

然后在浏览器中打开:

http://localhost:3000

运行测试

npm test

生成 Release 包

npm run release:prepare

🏗️ 项目结构

Trans2Former/
├── public/                    # 前端界面
│   ├── app.js                 # 主应用逻辑
│   ├── core/                  # 核心模块
│   │   ├── models/            # 数据模型
│   │   ├── format-registry.js # 格式注册表
│   │   └── plugin-runtime.js  # 插件运行时
│   ├── formats/               # 格式处理器
│   │   ├── markdown.js        # Markdown 处理
│   │   ├── html.js            # HTML 处理
│   │   ├── docx.js            # DOCX 处理
│   │   ├── pdf.js             # PDF 处理
│   │   └── ...                # 其他格式
│   └── workers/               # Web Workers
├── samples/                   # 样例文件(50+)
├── tests/                     # 测试套件
├── docs/                      # 完整文档
├── src-tauri/                 # Tauri 桌面壳
└── scripts/                   # 构建脚本

📖 使用指南

基本使用

  1. 上传文件 - 拖拽或点击上传按钮
  2. 选择格式 - 选择目标输出格式
  3. 预览 - 查看转换前后的预览
  4. 转换 - 点击转换按钮
  5. 下载 - 下载转换结果

高级功能

  • 批量转换 - 同时转换多个文件
  • 编辑输出 - 直接编辑转换后的文本
  • 版本历史 - 查看和恢复历史版本
  • 质量报告 - 查看转换质量和警告
  • 插件管理 - 安装和管理插件

🔌 插件系统

Trans2Former 支持通过插件扩展功能:

  • OFD 支持 - 政务格式支持
  • 本地 OCR - 扫描文档识别
  • 版面分析 - 复杂布局识别
  • 表格恢复 - PDF 表格提取

插件通过 GitHub Releases 分发,按需下载安装。


🛡️ 数据安全

Trans2Former 严格遵守本地优先原则:

  • ✅ 所有转换在本地完成
  • ✅ 不上传文件、文件名或内容
  • ✅ 不上传转换结果或错误日志
  • ✅ 插件处理文档时禁止联网
  • ✅ 不接入第三方 API 或分析 SDK

🧪 测试

项目包含完整的测试套件:

npm test

测试覆盖:

  • ✅ 核心转换测试(44/44 通过)
  • ✅ 快照测试
  • ✅ 格式能力审计
  • ✅ 安全测试
  • ✅ 资源预算测试
  • ✅ 插件安全测试
  • ✅ 发布就绪测试

📚 文档

核心文档

架构文档

产品文档

更多文档

查看 docs/README.md 获取完整文档列表。


🎯 技术架构

核心技术栈

  • 前端: HTML, CSS, JavaScript
  • 桌面: Tauri v2
  • 转换: TypeScript + Web Workers
  • 格式: 自研解析器 + 标准库

数据模型

  • SemanticDoc - 语义文档模型
  • WorkbookModel - 工作簿模型
  • SlideModel - 幻灯片模型
  • FixedLayoutModel - 固定布局模型
  • AssetGraph - 资源图模型

转换流程

输入文件 → Reader → DocumentModel → Mapper → Writer → 输出文件

🚧 已知限制

  1. 复杂样式 - 部分复杂样式可能无法完全保留
  2. 图表动画 - PPTX 动画和图表需要插件支持
  3. 扫描 PDF - 扫描文档需要 OCR 插件
  4. ZIP64 - 暂不支持超大 ZIP 文件

这些限制将在后续版本中通过插件系统逐步解决。


🗺️ 路线图

已完成 ✅

  • P0-P8 核心功能
  • 12 种输入格式
  • 11 种输出格式
  • 插件系统
  • 桌面发布准备

进行中 🚧

  • 平台安装包构建
  • SSIM 视觉对比
  • 性能优化

计划中 📋

  • 本地 OCR 插件
  • 版面分析插件
  • 更多格式支持

🤝 贡献

欢迎贡献代码、报告问题或提出建议!

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

详见 CONTRIBUTING.md


📄 许可证

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


🔗 链接


💬 反馈

如有问题或建议,欢迎:


Made with ❤️ by Trans2Former Team

About

A browser-native document transformation engine that converts and restructures multi-format content via a unified DocumentModel.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors