SlideCombine/README.md
yuuko 505715c05e 实现PDF书签合并功能
- 添加BookmarkExtractor类用于从FreePic2Pdf_bkmk文件提取书签内容
- 添加ContentFormatter类实现内容格式化处理
- 添加FileMerger类实现文件智能合并功能
- 更新主界面支持路径选择和处理进度显示
- 支持按文件名前缀自动合并(如CH-875 1-3和CH-875 4-6合并为CH-875.txt)
- 输出格式符合需求:tableOfContents与subject之间插入格式化内容
- 支持UTF-8和GBK编码自动检测
- 添加详细的使用说明文档

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 15:44:37 +08:00

93 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PDF书签合并工具
这是一个用于合并PDF书签文件的Windows桌面应用程序基于C# WinForms开发。
## 功能特性
- **自动提取书签**:从指定路径下的`FreePic2Pdf_bkmk`文件中提取书签内容
- **智能合并**:按文件名前缀自动分组合并(如"CH-875 1-3"和"CH-875 4-6"合并为"CH-875.txt"
- **格式化输出**:按照指定格式输出书签内容
- **路径选择**支持自定义选择PDF源文件夹和TXT输出文件夹
- **进度显示**:实时显示处理进度和日志信息
## 输出格式
处理后的文件内容格式如下:
```
tableOfContents:
书签标题1----------页码1<br/>
书签标题2----------页码2<br/>
书签标题3----------页码3<br/>
subject:
<>
tableOfContents:
书签标题4----------页码4<br/>
书签标题5----------页码5<br/>
subject:
```
## 编译要求
- .NET Framework 4.8
- Windows操作系统
- Visual Studio 2019+ 或 Visual Studio Build Tools
## 编译步骤
1. 安装.NET Framework 4.8
2. 使用Visual Studio打开`SlideCombine.csproj`
3. 选择`Release`配置
4. 按F6生成解决方案
或者使用命令行:
```bash
msbuild SlideCombine.csproj /p:Configuration=Release
```
## 使用方法
1. 运行`SlideCombine.exe`
2. 选择包含PDF文件夹的源路径
3. 选择TXT文件的输出路径
4. 点击"合并书签"按钮开始处理
5. 等待处理完成,查看结果
## 文件夹结构示例
输入文件夹结构:
```
PDF文件夹/
├── CH-875 1-3/
│ └── FreePic2Pdf_bkmk
├── CH-875 4-6/
│ └── FreePic2Pdf_bkmk
└── CH-876 1-2/
└── FreePic2Pdf_bkmk
```
输出结果:
```
TXT输出路径/
├── CH-875.txt (合并了CH-875 1-3和CH-875 4-6)
└── CH-876.txt (来自CH-876 1-2)
```
## 支持的编码
程序自动检测文件编码:
- 优先使用UTF-8
- 如果UTF-8失败自动切换到GBK编码
## 错误处理
- 自动检查路径有效性
- 提供详细的错误信息
- 支持批量处理,单个文件失败不影响其他文件
## 技术架构
- `BookmarkExtractor.cs`: 书签提取逻辑
- `ContentFormatter.cs`: 内容格式化
- `FileMerger.cs`: 文件合并处理
- `Form1.cs`: 主界面和用户交互