93 lines
2.2 KiB
Markdown
93 lines
2.2 KiB
Markdown
|
|
# 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`: 主界面和用户交互
|