name: Build C Version on: push: branches: [ main, master ] pull_request: branches: [ main, master ] workflow_dispatch: jobs: build: runs-on: windows-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup MSYS2 uses: msys2/setup-msys2@v2 with: msystem: MINGW64 update: true install: >- mingw-w64-x86_64-gcc mingw-w64-x86_64-make mingw-w64-x86_64-binutils - name: Build C Version shell: msys2 {0} run: | # 编译C语言版本 echo "编译C语言版本..." gcc -O2 -mwindows -static \ -DUNICODE -D_UNICODE \ -Wall -Wextra \ slide_combine_core.c slide_combine_merger.c slide_combine_gui.c \ -o slide_combine.exe \ -luser32 -lgdi32 -lcomctl32 -lshlwapi -lole32 # 检查编译结果 if [ ! -f "slide_combine.exe" ]; then echo "编译失败" exit 1 fi # 获取文件大小 file_size=$(stat -c%s "slide_combine.exe") file_size_kb=$((file_size / 1024)) echo "文件大小: ${file_size_kb} KB" - name: Create Release Package shell: powershell run: | $version = "2.0.0" $date = Get-Date -Format "yyyyMMdd" $packageName = "SlideCombine_C_v${version}_${date}" # 创建发布包文件夹 New-Item -ItemType Directory -Force -Path $packageName # 复制主程序 Copy-Item "slide_combine.exe" -Destination $packageName\ # 获取文件大小 $fileInfo = Get-Item "$packageName\slide_combine.exe" $sizeKB = [math]::Round($fileInfo.Length / 1KB, 1) # 创建使用说明 @" PDF书签合并工具 v$version - C语言版 ===================================== 🎯 C语言版本特色: • 零依赖:纯C语言Win32,无需任何运行时 • 体积小:编译后约 $sizeKB KB • 性能高:直接编译为机器码 • 兼容强:Windows 7-11 完全支持 • 绿色软件:复制即用,无任何安装 💻 系统要求: ✅ Windows 7 SP1 或更高版本 ✅ Windows 8/8.1 ✅ Windows 10/11 ✅ 无需安装任何运行时库 🚀 使用方法: 1. 双击运行 slide_combine.exe 2. 选择三个路径: • PDF文件夹路径:包含 FreePic2Pdf_bkmk.txt 文件的文件夹 • TXT源文件路径:包含元数据 TXT 文件的路径 • 输出路径:合并后文件的保存位置 3. 点击"🚀 开始合并"按钮 4. 查看实时处理日志 5. 等待处理完成 📁 示例目录结构: PDF文件夹/ ├─ CH-875 1-3/FreePic2Pdf_bkmk.txt ├─ CH-875 4-6/FreePic2Pdf_bkmk.txt TXT源文件/ ├─ CH-875 1-3.txt ├─ CH-875 4-6.txt 输出路径/ └─ CH-875.txt (合并后的文件) 🌟 技术特点: • 🚀 零依赖:纯C语言,无任何外部库 • 📦 极小体积:$sizeKB KB 绿色软件 • ⚡ 高性能:直接编译,启动迅速 • 🎯 智能排序:按数字大小正确排序文件 • 🔒 安全可靠:开源代码,无后门 • 🌍 多编码:自动检测 UTF-8、GBK、GB2312 • 📊 实时日志:详细显示处理进度 📋 版本信息: • 程序版本:v$version • 构建日期:$date • 开发语言:C语言 + Win32 API • 编译器:GCC (MSYS2 MinGW-w64) • 链接方式:静态链接 • 文件大小:$sizeKB KB • 支持系统:Windows 7-11 • 许可证:MIT开源 🎉 享受超高速、零依赖的PDF书签合并体验! "@ | Out-File -FilePath "$packageName\C语言版使用说明.txt" -Encoding UTF8 # 创建启动脚本 @" @echo off title PDF书签合并工具 v$version echo 启动 PDF书签合并工具... echo C语言零依赖版本 echo 文件大小:$sizeKB KB echo. if exist "slide_combine.exe" ( echo ✅ 程序已启动 - C语言零依赖版本 start "" "slide_combine.exe" ) else ( echo ❌ 错误:未找到 slide_combine.exe echo 请确保在正确的目录中运行此脚本 pause ) timeout /t 2 >nul "@ | Out-File -FilePath "$packageName\启动程序.bat" -Encoding Default # 输出信息 Write-Host "🎉 C语言版本编译完成!" Write-Host "📁 包名: $packageName" Write-Host "💾 主程序大小: $sizeKB KB" Write-Host "🎯 目标系统: Windows 7-11" Write-Host "⚡ 特点: 零依赖、高性能、极小体积" - name: Upload Artifact uses: actions/upload-artifact@v3 with: name: SlideCombine-C-Package path: "SlideCombine_C_v*" retention-days: 30 - name: Create Release if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: files: "SlideCombine_C_v*/**" draft: false prerelease: false name: "PDF书签合并工具 v${{ github.ref_name }} - C语言版" body: | ## PDF书签合并工具 v${{ github.ref_name }} - C语言版 🎯 **C语言零依赖版本** ### 系统要求 - Windows 7 SP1 或更高版本 - 无需安装任何运行时或库 ### 下载说明 1. 下载 `SlideCombine_C_v*.zip` 文件 2. 解压到任意文件夹 3. 直接运行 `slide_combine.exe` ### 特点 - ✅ 绝对零依赖:纯C语言Win32程序 - ✅ 极小体积:约30-50 KB - ✅ 超高性能:直接编译为机器码 - ✅ 完美兼容:Windows 7-11 - ✅ 智能排序:按数字大小正确排序 - ✅ 实时日志:详细处理进度 ### 技术信息 - 开发语言:C + Win32 API - 编译器:GCC (MSYS2 MinGW-w64) - 文件大小:约30-50 KB - 链接方式:静态链接 - 开源协议:MIT --- 🤖 自动构建于 ${{ github.event.head_commit.timestamp }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}