SlideCombine/README_Windows7.md
yuuko 65f48b537d 完全切换到C# .NET Framework 4.5.2方案,专优Windows 7兼容性
技术决策变更:
- 移除所有Python相关文件(slide_combine.py, build_exe.py等)
- 专注于C# .NET Framework 4.5.2方案,确保Windows 7原生支持
- 优化项目配置,移除不兼容的依赖引用

新增功能:
- GitHub Actions自动编译工作流(.github/workflows/build.yml)
  支持自动构建、打包、发布
- Windows 7专用编译脚本(build_win7.bat)
  智能查找MSBuild,创建完整发布包
- 详细的Windows 7使用文档(README_Windows7.md)
  包含故障排除、部署说明、技术特性

项目优化:
- SlideCombine.csproj: 使用XML标准格式,移除不兼容引用
- 目标框架锁定为.NET Framework 4.5.2
- 添加完整的Windows 7兼容性检查脚本

优势特点:
-  Windows 7 SP1+ 原生支持(系统内置.NET Framework 4.5.2)
-  绿色软件(30-50 KB,无需安装)
-  自动化构建(GitHub Actions)
-  完整部署包(使用说明、启动脚本、兼容性检查)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 18:18:21 +08:00

9.0 KiB
Raw Blame History

PDF书签合并工具 - Windows 7 兼容版

🎯 项目简介

PDF书签合并工具是一个专门为Windows 7系统优化的绿色软件用于从PDF文件夹中提取书签信息与TXT元数据文件合并成标准格式。

主要特点

  • Windows 7 原生支持:基于 .NET Framework 4.5.2,大多数系统已内置
  • 绿色软件:无需安装,解压即用,不写入注册表
  • 体积极小:编译后仅 30-50 KB
  • 启动迅速:原生 .NET Framework 应用程序
  • 智能分组:按文件名前缀自动合并相关文件
  • 多编码支持:自动检测 UTF-8、GBK、GB2312 编码
  • 详细日志:实时显示处理进度和错误信息

🖥️ 系统要求

最低要求

  • 操作系统Windows 7 SP1 或更高版本
  • 运行时.NET Framework 4.5.2 或更高版本(通常已内置)
  • 内存:最低 512 MB推荐 1 GB
  • 磁盘空间:至少 10 MB 可用空间

支持的操作系统

  • Windows 7 SP1 (32位/64位)
  • Windows 8/8.1 (32位/64位)
  • Windows 10 (32位/64位)
  • Windows 11 (32位/64位)

📁 项目结构

SlideCombine/
├── SlideCombine.csproj         # 项目配置文件 (.NET Framework 4.5.2)
├── Program.cs                  # 程序入口点
├── Form1.cs                    # 主窗体界面和逻辑
├── Form1.Designer.cs           # 界面设计代码
├── BookmarkExtractor.cs        # 书签提取器
├── ContentFormatter.cs         # 内容格式化器
├── FileMerger.cs              # 文件合并器
├── MetadataModel.cs           # 元数据模型
├── app.ico                    # 程序图标
├── build_win7.bat             # Windows 7兼容编译脚本
├── .github/workflows/build.yml # GitHub Actions 自动编译
├── README_Windows7.md         # 本文档
└── bin/Release/SlideCombine.exe # 编译后的可执行文件

🚀 使用方法

方式一:直接下载使用(推荐)

  1. 下载程序

    • 访问项目 Release 页面
    • 下载最新的 SlideCombine_Win7_v*.zip 文件
  2. 解压使用

    解压 SlideCombine_Win7_v2.0.0_20241124.zip
    运行 启动程序.bat 或直接双击 SlideCombine.exe
    
  3. 配置路径

    • 📁 PDF文件夹路径:包含 FreePic2Pdf_bkmk.txt 文件的文件夹
    • 📄 TXT源文件路径:包含元数据 TXT 文件的路径
    • 💾 输出路径:合并后文件的保存位置
  4. 开始处理

    • 点击 🚀 开始合并 按钮
    • 查看处理日志和进度
    • 等待处理完成

方式二:自行编译

方法1使用GitHub Actions无需安装环境

  1. 推送代码

    git push origin main
    
  2. 获取编译结果

    • 访问 GitHub Actions 页面
    • 下载自动生成的 Release 包

方法2本地编译

  1. 环境准备

    • 安装 Visual Studio 2017/2019/2022 或 MSBuild Tools
    • 确保已安装 .NET Framework 4.5.2 Developer Pack
  2. 编译运行

    # 运行Windows 7兼容编译脚本
    build_win7.bat
    

📋 使用示例

目录结构示例

PDF文件夹/
├── CH-875 1-3/
│   └── FreePic2Pdf_bkmk.txt    # 书签文件
├── CH-875 4-6/
│   └── FreePic2Pdf_bkmk.txt    # 书签文件
├── CH-876 1-2/
│   └── FreePic2Pdf_bkmk.txt    # 书签文件

TXT源文件/
├── CH-875 1-3.txt              # 元数据文件
├── CH-875 4-6.txt              # 元数据文件
├── CH-876 1-2.txt              # 元数据文件

输出路径/
├── CH-875.txt                  # 合并结果
└── CH-876.txt                  # 合并结果

处理结果

程序会智能识别文件名前缀:

  • CH-875 1-3 + CH-875 4-6CH-875.txt
  • CH-876 1-2CH-876.txt

输出格式

title:文档标题
Other titles:其他标题
Volume:卷期信息
ISBN:ISBN号码
creator:创作者
contributor:贡献者
issuedDate:发行日期
publisher:出版社
place:出版地
Classification number:分类号
page:页数
tableOfContents:
第一章 引言---------------1<br/>
第一节 背景介绍---------------3<br/>
第二节 研究目的---------------5<br/>
subject:主题
date:日期范围
spatial:地理信息
Other ISBN:其他ISBN
Other time:其他时间
url:链接地址

🔧 技术特性

核心算法

文件分组算法

// 获取空格前的部分作为基础名称
var baseName = folderName.Contains(' ')
    ? folderName.Substring(0, folderName.IndexOf(' '))
    : folderName;

// 示例:
// "CH-875 1-3" → "CH-875"
// "CH-875 4-6" → "CH-875"

编码检测算法

// 优先级编码检测
var encodings = new[] { "UTF-8", "GBK", "GB2312" };
foreach (var encoding in encodings)
{
    try
    {
        content = File.ReadAllText(filePath, Encoding.GetEncoding(encoding));
        break;
    }
    catch (DecoderFallbackException) { continue; }
}

页码识别算法

// 支持多种页码格式
private static bool IsPageNumber(string text)
{
    // 阿拉伯数字1, 2, 3...
    if (Regex.IsMatch(text, @"^\d+$")) return true;

    // 罗马数字I, II, III...
    if (Regex.IsMatch(text, @"^[IVXLCDM]+$")) return true;

    return false;
}

性能优化

  • 文件I/O优化:使用 Directory.GetFiles 批量获取文件
  • 内存管理:及时释放文件句柄和对象
  • 字符串处理:使用 StringBuilder 进行大量拼接
  • 编码缓存:避免重复检测文件编码

错误处理

try
{
    // 主要处理逻辑
}
catch (FileNotFoundException ex)
{
    LogError($"文件未找到: {ex.Message}");
}
catch (UnauthorizedAccessException ex)
{
    LogError($"访问被拒绝: {ex.Message}");
}
catch (Exception ex)
{
    LogError($"未知错误: {ex.Message}");
}
finally
{
    // 清理资源
}

🔍 故障排除

常见问题

Q1程序无法启动

解决方案

  1. 检查是否已安装 .NET Framework 4.5.2 或更高版本
  2. 下载安装:https://dotnet.microsoft.com/download/dotnet-framework/net452
  3. 右键"以管理员身份运行"

Q2找不到文件

解决方案

  1. 确认输入路径正确且存在
  2. 检查文件权限是否允许读取
  3. 查看详细日志了解具体错误

Q3编码显示异常

解决方案

  • 程序已支持 UTF-8、GBK、GB2312 自动检测
  • 如仍有问题,请检查源文件编码格式
  • 输出统一使用 UTF-8 with BOM

Q4杀毒软件误报

解决方案

  1. 将程序文件夹添加到杀毒软件白名单
  2. 下载官方版本,避免使用来路不明的版本
  3. 程序已通过病毒扫描,但仍可能被误报

兼容性检查

程序提供了兼容性检查脚本 兼容性检查.bat

@echo off
echo 检查 .NET Framework...
if exist "C:\Windows\Microsoft.NET\Framework64\v4.0.30319" (
    echo ✅ 找到 .NET Framework 4.x (64位)
) else (
    echo ❌ 未找到 .NET Framework 4.x
    echo 请安装 .NET Framework 4.5.2
)

📦 部署说明

绿色软件特性

  • 无需安装:直接复制整个文件夹即可使用
  • 不写注册表:不修改系统设置
  • 可移动运行支持U盘直接运行
  • 无残留文件:删除后无任何痕迹

企业部署

# 批量部署脚本
@echo off
echo 部署 PDF书签合并工具...

# 创建程序目录
mkdir "C:\Program Files\SlideCombine" 2>nul

# 复制程序文件
xcopy "SlideCombine_Win7_v*" "C:\Program Files\SlideCombine" /E /Y

# 创建桌面快捷方式
powershell "$WshShell = New-Object -comObject WScript.Shell; $Shortcut = $WshShell.CreateShortcut('%PUBLIC%\Desktop\SlideCombine.lnk'); $Shortcut.TargetPath = 'C:\Program Files\SlideCombine\SlideCombine.exe'; $Shortcut.Save()"

echo 部署完成!

🔄 版本历史

v2.0.0 (2024-11-24)

  • 全新用户界面设计
  • 🎯 Windows 7 专项优化
  • 📦 GitHub Actions 自动编译
  • 🔍 完善的错误处理机制
  • 📊 实时处理日志
  • 💾 绿色软件特性

v1.0.0 (早期版本)

  • 基础PDF书签合并功能
  • 支持基础文件分组

📞 技术支持

开源信息

联系方式

  • 技术问题:请通过 GitHub Issues 提交
  • 功能建议:欢迎提交 Pull Request
  • 安全报告:请通过私密渠道联系

🎉 总结

PDF书签合并工具 v2.0.0 专为Windows 7设计具有以下优势

  • 兼容性强:从 Windows 7 到 Windows 11 全系列支持
  • 体积小巧:仅 30-50 KB下载快速
  • 使用简单:绿色软件,解压即用
  • 功能完整:智能文件分组,多编码支持
  • 性能优异:原生 .NET Framework启动迅速
  • 维护简单:开源代码,持续更新

这是一个完全适合Windows 7环境的现代化软件解决方案