Compare commits

..

No commits in common. "a156fff7f4f1f8c209b28379807a9c897d3461a2" and "44a3e8d7521906f876a4bc2373125c026aa14707" have entirely different histories.

4 changed files with 9 additions and 543 deletions

View File

@ -1,68 +1,14 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{12345678-1234-1234-1234-123456789012}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>SlideCombine</RootNamespace>
<AssemblyName>SlideCombine</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFramework>net6.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AssemblyName>SlideCombine</AssemblyName>
<RootNamespace>SlideCombine</RootNamespace>
<ApplicationIcon>app.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="BookmarkExtractor.cs" />
<Compile Include="ContentFormatter.cs" />
<Compile Include="FileMerger.cs" />
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="MetadataModel.cs" />
<Compile Include="Program.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Form1.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Form1.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="app.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -1,75 +0,0 @@
@echo off
echo 编译 PDF书签合并工具...
echo.
REM 设置Visual Studio环境变量
set MSBUILD_PATH=
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe" (
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe" (
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe" (
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" (
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" (
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" (
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe
)
if "%MSBUILD_PATH%"=="" (
echo 错误:未找到 MSBuild.exe
echo 请确保已安装 Visual Studio 2017 或 2019
pause
exit /b 1
)
echo 找到 MSBuild: %MSBUILD_PATH%
echo.
REM 清理之前的编译
echo 清理之前的编译...
"%MSBUILD_PATH%" SlideCombine.csproj /t:Clean /p:Configuration=Release /p:Platform="AnyCPU"
REM 编译 Release 版本
echo 编译 Release 版本...
"%MSBUILD_PATH%" SlideCombine.csproj /t:Build /p:Configuration=Release /p:Platform="AnyCPU"
if %ERRORLEVEL% equ 0 (
echo.
echo ✅ 编译成功!
echo 输出文件位置: bin\Release\SlideCombine.exe
echo.
echo 正在创建发布包...
REM 创建发布文件夹
if not exist "发布包" mkdir "发布包"
REM 复制主程序
copy "bin\Release\SlideCombine.exe" "发布包\"
REM 复制依赖文件(如果有的话)
if exist "bin\Release\SlideCombine.exe.config" (
copy "bin\Release\SlideCombine.exe.config" "发布包\"
)
echo ✅ 发布包创建完成!
echo 文件夹位置: 发布包\
echo.
echo 📋 使用说明:
echo 1. 发布包文件夹可以直接复制到其他电脑
echo 2. 目标电脑需要 .NET Framework 4.5.2 或更高版本Windows 7/10 通常自带)
echo 3. 双击 SlideCombine.exe 即可运行
echo.
) else (
echo ❌ 编译失败!请检查代码错误
)
pause

View File

@ -1,271 +0,0 @@
@echo off
title PDF书签合并工具 - 一键打包发布
echo ==========================================
echo PDF书签合并工具 - 一键打包发布
echo ==========================================
echo.
REM 检查项目文件
if not exist "SlideCombine.csproj" (
echo ❌ 错误:未找到 SlideCombine.csproj 项目文件
echo 请确保在项目根目录下运行此脚本
pause
exit /b 1
)
echo ✅ 项目文件检查通过
echo.
REM 查找 MSBuild
echo 🔍 正在查找 MSBuild...
set MSBUILD_PATH=
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe" (
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe
echo ✅ 找到 Visual Studio 2022 Enterprise
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe" (
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe
echo ✅ 找到 Visual Studio 2022 Professional
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" (
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe
echo ✅ 找到 Visual Studio 2022 Community
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe" (
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe
echo ✅ 找到 Visual Studio 2019 Enterprise
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe" (
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe
echo ✅ 找到 Visual Studio 2019 Professional
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe" (
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe
echo ✅ 找到 Visual Studio 2019 Community
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" (
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe
echo ✅ 找到 Visual Studio 2017 Enterprise
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" (
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe
echo ✅ 找到 Visual Studio 2017 Professional
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" (
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe
echo ✅ 找到 Visual Studio 2017 Community
)
if "%MSBUILD_PATH%"=="" (
echo ❌ 错误:未找到 MSBuild.exe
echo 请确保已安装 Visual Studio 2017、2019 或 2022
echo.
echo 如果没有 Visual Studio可以下载以下工具
echo https://visualstudio.microsoft.com/zh-hans/downloads/
echo.
pause
exit /b 1
)
echo ✅ MSBuild 路径:%MSBUILD_PATH%
echo.
REM 创建版本信息
set VERSION=1.0.0
set DATE=%date:~0,4%%date:~5,2%%date:~8,2%
set TIME=%time:~0,2%%time:~3,2%
set TIME=%TIME: =0%
echo 📅 版本信息:%VERSION% (%DATE% %TIME%)
echo.
REM 清理之前的构建
echo 🧹 清理之前的构建...
"%MSBUILD_PATH%" SlideCombine.csproj /t:Clean /p:Configuration=Release /p:Platform="AnyCPU" /v:minimal
REM 构建 Release 版本
echo 🔨 编译 Release 版本...
"%MSBUILD_PATH%" SlideCombine.csproj /t:Build /p:Configuration=Release /p:Platform="AnyCPU" /v:minimal
if %ERRORLEVEL% neq 0 (
echo ❌ 编译失败!
echo 请检查代码中的错误
pause
exit /b 1
)
echo ✅ 编译成功!
echo.
REM 检查编译输出
if not exist "bin\Release\SlideCombine.exe" (
echo ❌ 错误:未找到编译输出文件
echo 期望文件路径bin\Release\SlideCombine.exe
pause
exit /b 1
)
REM 创建发布包
echo 📦 创建发布包...
REM 设置发布包名称
set RELEASE_NAME=SlideCombine_v%VERSION%_%DATE%
if exist "%RELEASE_NAME%" rd /s /q "%RELEASE_NAME%"
mkdir "%RELEASE_NAME%"
REM 复制主程序
echo 📄 复制主程序...
copy "bin\Release\SlideCombine.exe" "%RELEASE_NAME%\" >nul
REM 复制配置文件(如果存在)
if exist "bin\Release\SlideCombine.exe.config" (
copy "bin\Release\SlideCombine.exe.config" "%RELEASE_NAME%\" >nul
echo ✅ 复制配置文件
)
REM 复制图标文件(如果存在)
if exist "app.ico" (
copy "app.ico" "%RELEASE_NAME%\" >nul
echo ✅ 复制图标文件
)
REM 创建使用说明
echo 📝 创建使用说明...
(
echo PDF书签合并工具 v%VERSION% 使用说明
echo =====================================
echo.
echo 系统要求:
echo - Windows 7 SP1 或更高版本
echo - .NET Framework 4.5.2 或更高版本(通常已自带)
echo.
echo 使用方法:
echo 1. 双击运行 SlideCombine.exe
echo 2. 选择三个路径:
echo - PDF文件夹路径包含 FreePic2Pdf_bkmk.txt 文件的文件夹
echo - TXT源文件路径包含元数据 TXT 文件的路径
echo - 输出路径:合并后文件的保存位置
echo 3. 点击"开始合并"按钮
echo 4. 等待处理完成
echo.
echo 示例目录结构:
echo PDF文件夹/
echo ├─ CH-875 1-3/FreePic2Pdf_bkmk.txt
echo ├─ CH-875 4-6/FreePic2Pdf_bkmk.txt
echo.
echo TXT源文件/
echo ├─ CH-875 1-3.txt
echo ├─ CH-875 4-6.txt
echo.
echo 输出结果:
echo 输出路径/CH-875.txt ^(合并后的文件^)
echo.
echo 故障排除:
echo - 如果提示"应用程序无法启动",请安装 .NET Framework 4.5.2
echo - 下载地址https://dotnet.microsoft.com/download/dotnet-framework/net452
echo.
echo 编译时间:%DATE% %TIME%
echo 程序版本v%VERSION%
echo 目标框架:.NET Framework 4.5.2
) > "%RELEASE_NAME%\使用说明.txt"
REM 创建技术说明
echo 📋 创建技术说明...
(
echo PDF书签合并工具 - 技术说明
echo =============================
echo.
echo 程序信息:
echo - 名称PDF书签合并工具
echo - 版本v%VERSION%
echo - 开发语言C#
echo - 目标框架:.NET Framework 4.5.2
echo - 编译时间:%DATE% %TIME%
echo.
echo 功能说明:
echo 1. 从 FreePic2Pdf_bkmk.txt 文件提取书签目录
echo 2. 从 TXT 文件读取文档元数据
echo 3. 按文件名前缀智能合并文件
echo 4. 生成符合标准的格式化输出
echo.
echo 文件格式:
echo - 输入格式FreePic2Pdf_bkmk.txt, 元数据TXT文件
echo - 输出格式合并后的TXT文件包含完整元数据和书签目录
echo.
echo 兼容性:
echo - 操作系统Windows 7 SP1, Windows 8/8.1, Windows 10/11
echo - 依赖框架:.NET Framework 4.5.2 或更高版本
echo.
echo 部署方式:
echo - 绿色软件,无需安装
echo - 直接复制 SlideCombine.exe 即可运行
echo - 建议将整个文件夹打包分发
echo.
echo 开发信息:
echo - IDEVisual Studio 2017/2019/2022
echo - 项目类型Windows Forms 应用程序
echo - 编码UTF-8, GBK, GB2312 自动检测
) > "%RELEASE_NAME%\技术说明.txt"
REM 创建批处理启动脚本
echo 🚀 创建启动脚本...
(
echo @echo off
echo title PDF书签合并工具 v%VERSION%
echo echo 启动 PDF书签合并工具...
echo echo.
echo if exist "SlideCombine.exe" (
echo start "" "SlideCombine.exe"
echo echo ✅ 程序已启动
echo ) else (
echo echo ❌ 错误:未找到 SlideCombine.exe
echo echo 请确保在正确的目录中运行此脚本
echo pause
echo )
echo timeout /t 2 >nul
) > "%RELEASE_NAME%\启动程序.bat"
REM 获取文件大小
for %%F in ("%RELEASE_NAME%\SlideCombine.exe") do set FILE_SIZE=%%~zF
set /a FILE_SIZE_MB=%FILE_SIZE% / 1024 / 1024
set /a FILE_SIZE_KB=%FILE_SIZE% / 1024
echo.
echo ==========================================
echo 📊 打包完成统计
echo ==========================================
echo ✅ 编译状态:成功
echo 📦 发布包名称:%RELEASE_NAME%
echo 💾 主程序大小:%FILE_SIZE_KB% KB %FILE_SIZE_MB% MB
echo 📁 发布包位置:%CD%\%RELEASE_NAME%\
echo ⚡ 发布包内容:
echo ├─ SlideCombine.exe ^(主程序^)
echo ├─ 使用说明.txt ^(用户指南^)
echo ├─ 技术说明.txt ^(开发文档^)
echo └─ 启动程序.bat ^(快捷启动^)
echo.
echo 🎉 发布包创建成功!
echo.
echo 🔧 部署说明:
echo 1. 将整个 %RELEASE_NAME% 文件夹复制到目标电脑
echo 2. 目标电脑需要 .NET Framework 4.5.2 或更高版本
echo 3. 双击"启动程序.bat"或直接运行"SlideCombine.exe"
echo.
echo 📋 下一步:
echo - 测试程序是否正常运行
echo - 复制到 U 盘或上传到网络进行分发
echo - 如果遇到问题,请检查目标电脑的 .NET Framework 版本
echo.
REM 询问是否打开发布文件夹
echo 是否打开发布文件夹?(Y/N)
set /p choice=请输入选择:
if /i "%choice%"=="Y" (
start "" "%RELEASE_NAME%"
echo ✅ 已打开发布文件夹
)
echo.
echo 打包流程完成!按任意键退出...
pause >nul

View File

@ -1,134 +0,0 @@
# PDF书签合并工具 - 部署指南
## 🎯 简单部署方案(推荐)
### 方案特点
- ✅ 无需安装开发环境
- ✅ 依赖项少,兼容性强
- ✅ 支持从 Windows 7 到 Windows 11
- ✅ 直接复制运行,绿色软件
### 部署步骤
#### 1⃣ 编译程序
在 Visual Studio 中:
1. 打开 `SlideCombine.csproj`
2. 配置选择 `Release`
3. 平台选择 `AnyCPU`
4. 点击 `生成``生成解决方案`
或者使用提供的 `build.bat` 脚本:
1. 双击运行 `build.bat`
2. 等待编译完成
#### 2⃣ 创建发布包
编译完成后:
1. 找到 `bin\Release\SlideCombine.exe` 文件
2. 创建一个新文件夹(如 `SlideCombine`
3. 将 `SlideCombine.exe` 复制到该文件夹
#### 3⃣ 部署到目标电脑
只需将包含 `SlideCombine.exe` 的文件夹复制到目标电脑即可!
## 🔧 目标电脑系统要求
### 操作系统支持
- ✅ Windows 7 SP1 或更高版本
- ✅ Windows 8/8.1
- ✅ Windows 10/11
### .NET Framework 要求
- 🔹 最低要求:.NET Framework 4.5.2
- 🔹 大多数 Windows 7/10 系统已自带
- 🔹 如需检查:控制面板 → 程序 → 启用或关闭 Windows 功能
### 如何检查是否已安装
1. 打开 `C:\Windows\Microsoft.NET\Framework64\`
2. 查找是否存在 `v4.0.30319` 文件夹
3. 或在 PowerShell 中运行:`dir "C:\Windows\Microsoft.NET\Framework64\v4*"`
## 📦 发布包内容说明
发布包只需包含以下文件:
```
SlideCombine/
├── SlideCombine.exe # 主程序
└── 使用说明.txt # 用户使用指南(可选)
```
## 🚀 使用方法
### 基本使用
1. 双击运行 `SlideCombine.exe`
2. 选择三个路径:
- 📁 PDF文件夹路径包含 FreePic2Pdf_bkmk.txt 文件的文件夹
- 📄 TXT源文件路径包含元数据 TXT 文件的路径
- 💾 输出路径:合并后文件的保存位置
3. 点击 `🚀 开始合并`
4. 等待处理完成
### 文件结构示例
```
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 # 合并后的文件
```
## 🔍 故障排除
### 常见问题
#### Q1提示"应用程序无法启动"
**解决方案**
1. 检查是否安装 .NET Framework 4.5.2
2. 下载安装https://dotnet.microsoft.com/download/dotnet-framework/net452
#### Q2找不到 MSBuild
**解决方案**
1. 安装 Visual Studio 2017/2019/2022
2. 或下载 .NET Framework 4.5.2 Developer Pack
#### Q3程序运行时出现错误
**解决方案**
1. 检查输入路径是否正确
2. 确保文件格式符合要求
3. 检查文件权限
### 联系支持
如果遇到问题,请检查:
1. 文件路径是否包含中文字符
2. 是否有足够的磁盘空间
3. 杀毒软件是否误报
## 📝 版本信息
- **当前版本**v1.0
- **目标框架**.NET Framework 4.5.2
- **文件大小**:约 30-50 KB
- **依赖项**.NET Framework 4.5.2
## 🔄 更新部署
如需更新程序:
1. 编译新版本
2. 复制新的 `SlideCombine.exe` 覆盖旧文件
3. 配置文件和用户数据会保留
---
## 🎉 总结
使用 .NET Framework 4.5.2 的优势:
- ✅ 几乎所有 Windows 系统都自带,无需额外安装
- ✅ 兼容性强,支持 Windows 7 到 Windows 11
- ✅ 文件小,部署简单
- ✅ 绿色软件,复制即用
这是最简单、最可靠的部署方案!