Skip to content

Release v1.0.0 - Complete GUI with EPUB image extraction #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 18, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# 更新日志

所有重要的项目变更都将记录在此文件中。

## [1.0.0] - 2024-12-19

### ✨ 新增功能
- **完整的图形用户界面**: 基于 Tkinter 的直观 GUI
- **多格式文件支持**: PDF、Word、Excel、PowerPoint、EPUB、音频、图片等
- **EPUB 图片提取功能**:
- 自动从 EPUB 中提取所有图片
- 支持多种图片格式 (JPG, PNG, GIF, BMP, SVG, WebP)
- 智能处理图片引用路径
- **图片引用方式选择**:
- 相对路径(推荐)
- 绝对路径
- Base64 编码
- **完整的保存功能**: 保存 Markdown 文件时自动复制图片到目标目录
- **多线程转换**: 转换过程不阻塞用户界面
- **实时状态显示**: 转换进度和状态实时更新

### 🛠️ 技术改进
- 使用官方 `markitdown` 包,移除本地源码依赖
- 智能文件名冲突处理
- 错误处理和用户友好的错误提示
- 支持文件拖拽功能
- 自动记忆用户偏好设置

### 📁 文件结构
- `markitdown_gui.py`: 主程序文件
- `build_exe.py`: 可执行文件构建脚本
- `test_gui.py`: GUI 测试脚本
- `icon.ico`: 程序图标
- `README.md`: 项目说明文档
- `使用说明.md`: 中文使用说明
- `CHANGELOG.md`: 更新日志
- `VERSION`: 版本信息

### 🐛 已知问题
- 音频转换需要 FFmpeg 支持
- 某些加密 PDF 可能无法转换
- 大文件转换可能需要较长时间

### 📋 计划功能
- [ ] 批量文件转换
- [ ] 更多自定义选项
- [ ] 转换历史记录
- [ ] 主题切换功能
- [ ] 更多输出格式支持

---

## 标签说明
- `✨ 新增功能`: 新增的功能特性
- `🛠️ 技术改进`: 技术层面的改进和优化
- `🐛 问题修复`: 修复的 bug 和问题
- `📄 文档更新`: 文档和说明的更新
- `⚠️ 重大变更`: 可能影响兼容性的重大变更
134 changes: 134 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
# MarkItDown GUI

一个基于 [Microsoft MarkItDown](https://github.com/microsoft/markitdown) 的图形界面工具,可以将各种文档格式转换为 Markdown。

## ✨ 功能特性

### 🔄 **多格式支持**
- **Office 文档**: Word (.docx), Excel (.xlsx), PowerPoint (.pptx)
- **PDF 文档**: 支持文本和图片提取
- **电子书**: EPUB 格式,支持图片提取
- **音频文件**: MP3, WAV, M4A 等(通过 AI 转录)
- **图片文件**: JPG, PNG, GIF 等(通过 OCR 识别)
- **网页文件**: HTML
- **其他格式**: CSV, JSON, XML 等

### 📚 **EPUB 图片处理**
- ✅ **自动图片提取**: 从 EPUB 文件中提取所有图片
- ✅ **智能路径处理**: 支持相对路径、绝对路径、Base64 编码
- ✅ **完整保存**: 保存时自动将图片复制到输出目录
- ✅ **格式支持**: JPG、PNG、GIF、BMP、SVG、WebP

### 🎯 **用户体验**
- 🖱️ **简洁界面**: 直观的图形用户界面
- ⚡ **多线程处理**: 转换过程不阻塞界面
- 📝 **实时预览**: 转换结果即时显示
- 💾 **灵活保存**: 支持另存为功能
- 🔧 **智能配置**: 记住用户偏好设置

## 📦 安装要求

### 系统要求
- Windows 10/11
- Python 3.8+

### 依赖安装
```bash
# 安装 MarkItDown 及所有依赖
pip install markitdown[all]

# 安装 GUI 依赖
pip install tkinter # 通常已内置于 Python
```

## 🚀 快速开始

### 直接运行
```bash
python markitdown_gui.py
```

### 或者构建可执行文件
```bash
python build_exe.py
```

## 📖 使用指南

### 基本转换流程
1. **选择文件**: 点击"浏览..."选择要转换的文件
2. **配置选项**:
- 对于 EPUB 文件,可选择是否提取图片
- 选择图片引用方式(相对路径/绝对路径/Base64)
3. **开始转换**: 点击"转换为Markdown"
4. **查看结果**: 在结果区域预览转换后的内容
5. **保存文件**: 点击"保存结果"选择保存位置

### EPUB 图片处理
转换 EPUB 文件时:
- ✅ 勾选"从EPUB提取图片"自动提取图片文件
- 📁 图片将保存在输出目录的 `images/` 文件夹中
- 🔗 Markdown 中的图片引用会自动更新为正确路径
- 💾 保存时图片会自动复制到目标目录

## 🏗️ 项目结构

```
markitdown-gui/
├── markitdown_gui.py # 主程序文件
├── build_exe.py # 可执行文件构建脚本
├── build.bat # Windows 构建脚本
├── test_gui.py # GUI 测试脚本
├── icon.ico # 程序图标
├── README.md # 项目说明
└── 使用说明.md # 中文使用说明
```

## 🛠️ 开发说明

### 核心技术栈
- **GUI 框架**: Tkinter
- **转换引擎**: Microsoft MarkItDown
- **图片处理**: PIL/Pillow
- **文件处理**: zipfile, os, shutil
- **多线程**: threading

### 主要功能模块
- `MarkItDownGUI`: 主界面类
- `extract_epub_images()`: EPUB 图片提取
- `process_markdown_images()`: 图片引用处理
- `copy_images_to_target()`: 图片文件复制

## 🐛 故障排除

### 常见问题
1. **音频转换失败**: 需要安装 FFmpeg
2. **某些 PDF 无法转换**: 可能是加密或特殊格式
3. **EPUB 图片不显示**: 确保勾选了"从EPUB提取图片"选项

### 解决方案
```bash
# 安装 FFmpeg (用于音频处理)
# Windows: 下载并添加到 PATH
# 或使用 chocolatey: choco install ffmpeg

# 更新依赖
pip install --upgrade markitdown[all]
```

## 📄 许可证

本项目基于 MIT 许可证开源。

## 🤝 贡献

欢迎提交 Issue 和 Pull Request!

## 📞 联系方式

- GitHub: [raythunder/markitdown-gui](https://github.com/raythunder/markitdown-gui)
- Issues: [提交问题](https://github.com/raythunder/markitdown-gui/issues)

---

**感谢使用 MarkItDown GUI!** 🎉
151 changes: 0 additions & 151 deletions README_GUI.md

This file was deleted.

1 change: 1 addition & 0 deletions VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0.0
21 changes: 21 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# MarkItDown GUI 依赖文件

# 核心转换引擎
markitdown[all]>=0.0.1a4

# GUI 相关(通常已内置于 Python)
# tkinter - 内置模块

# 构建工具(可选)
pyinstaller>=6.0.0

# 图片处理(通常由 markitdown[all] 安装)
# Pillow>=10.0.0

# 其他依赖(通常由 markitdown[all] 安装)
# requests>=2.25.0
# beautifulsoup4>=4.9.0
# python-docx>=0.8.11
# openpyxl>=3.0.0
# pdfplumber>=0.7.0
# pypdf>=3.0.0