一个功能强大的在线文档对比工具,支持文本输入和PDF文件上传,提供字词级精确差异检测和多种显示模式。
访问 https://glittery-kangaroo-adbb8a.netlify.app 立即体验
- 文本输入模式:直接在文本框中输入或粘贴文档内容
- PDF上传模式:支持拖拽上传PDF文件,自动提取文本内容
- 字词级精确标识:不仅检测行级差异,还能精确定位到字词级别的变化
- 智能相似度算法:基于编辑距离算法,准确识别修改、新增、删除内容
- 中文友好:针对中文文档优化,支持中文标点符号分词
- 内联标识模式:在统一视图中用不同颜色标识各种变化
- 并排对比模式:左右分栏显示原始文档和目标文档,便于对照查看
- 实时显示新增、删除、修改的行数统计
- 直观的数据面板,快速了解文档变化概况
- 现代化的设计风格,采用渐变背景和卡片布局
- 响应式设计,支持桌面端和移动端
- 丰富的视觉反馈,包括悬停效果和过渡动画
- 前端框架:React 18 + TypeScript
- 构建工具:Vite
- 样式框架:Tailwind CSS
- 图标库:Lucide React
- PDF处理:PDF.js (pdfjs-dist)
- 部署平台:Netlify
- Node.js 16+
- npm 或 yarn
npm installnpm run dev访问 http://localhost:5173 查看应用
npm run buildnpm run previewsrc/
├── components/
│ └── PDFUploader.tsx # PDF上传组件
├── App.tsx # 主应用组件
├── main.tsx # 应用入口
└── index.css # 全局样式
public/ # 静态资源
├── vite.svg
└── ...
dist/ # 构建输出目录
- 选择"文本输入"模式
- 在左侧文本框输入原始文档内容
- 在右侧文本框输入目标文档内容
- 选择显示模式(内联标识或并排对比)
- 查看差异对比结果
- 选择"PDF上传"模式
- 拖拽或点击上传原始PDF文件
- 拖拽或点击上传目标PDF文件
- 系统自动提取文本并进行对比
- 查看差异对比结果
- 🟢 绿色高亮:新增的内容
- 🔴 红色删除线:删除的内容
- 🟠 橙色标识:修改的内容
- ⚪ 灰色显示:未变更的内容
用于检测行级别的差异,通过动态规划找出两个文档的最长公共子序列。
计算字符串相似度,判断两行内容是否为修改关系而非删除+新增。
对修改的行进行进一步分析,精确定位到字词级别的变化。
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
MIT License
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
如有问题或建议,请通过以下方式联系:
- 提交 GitHub Issue
- 发送邮件至项目维护者
感谢以下开源项目的支持:
⭐ 如果这个项目对你有帮助,请给它一个星标!
