网友作品 #000150 · 提交于 2026/08/12
PDF批量盖章工具:四角定位、参数记忆、免安装
★★★★★业余水平AI 编程工具国内其他模型dotnetexceldna

作品简介
一款面向普通用户的 Windows 桌面程序:把印章图片(推荐透明背景 PNG)和要盖章的 PDF 拖进窗口,选好基准角位、设置印章尺寸与边距微调,点“开始处理”即可把印章批量盖到每个 PDF 的每一页,并另存到指定文件夹。所有参数自动记忆,下次打开无需重新设置;程序自带 .NET 运行时,绿色免安装,双击即用。
核心亮点
- 批量盖章:一次处理多个 PDF,每一页都盖上印章
- 印章与 PDF 均支持拖拽导入,PDF 还可按文件夹批量读取
- 四角定位(左上/右上/左下/右下)+ 边距与水平、垂直微调,位置精确可控
- 尺寸按毫米设置,支持锁定纵横比,拖入印章时自动读取真实尺寸
- 可设置每页随机旋转角度,围绕印章中心旋转,不产生位移、保证印章完整可见
- 参数持久化保存、重启自动恢复;处理进度与日志实时显示
技术与工具
- 技术方案:C# + WPF + HandyControl(.NET 8,CommunityToolkit.MVVM),PDF 引擎采用 Aspose.PDF 叠加印章
- 细节处理:毫米与 PDF 点坐标换算、自行解析 PNG/JPEG 图片尺寸、JSON 参数持久化
- 发布方式:dotnet 自包含单文件发布,产出免安装 exe
- 所用 Skill:dotnet、exceldna;开发方式:AI 编程类工具;水平参考:业余水平
开发过程
作者把界面布局、参数项和处理逻辑用自然语言描述清楚后交给 AI 编程工具生成整套程序,描述完就去忙自己的事情,回来时程序已经基本成型。项目按 MVVM 结构组织,最后以自包含单文件方式发布成绿色版 exe。
适用场景
- 企业行政、财务批量给合同、报表、证明加盖公章或专用章
- 律所、咨询机构对项目文档、法律文书批量盖章归档
原始提交内容(点开查看,可复制全文去问 AI)
PDF 批量盖章工具
一个面向普通用户的 Windows 桌面程序,使用 C# + WPF + HandyControl 编写,基于 Aspose.PDF 实现。
把印章图片和要盖章的 PDF 拖进窗口,点一下「开始处理」,就能把印章批量盖到每个 PDF 的指定位置,并另存到指定文件夹。所有参数自动记忆,下次打开无需重新设置。
功能特性
- 批量盖章:一次处理多个 PDF,每一页都盖上印章。
- 拖拽 / 选择文件夹:印章图片和 PDF 文件均支持拖拽加入;PDF 也支持「选择文件夹」批量读取目录内所有 PDF。
- 四角定位:支持「左上 / 右上 / 左下 / 右下」四个角作为基准,边距标签与说明同步变化。
- 自由调尺寸:支持「保持纵横比」开关,按宽度或高度任一侧调整;拖入印章图片时自动填入其真实尺寸(毫米)。
- 微调控制:提供距边距、水平微调、垂直微调(毫米),以及每页随机旋转角度(围绕印章中心,增强真实感)。
- 参数记忆:印章图片、保存文件夹、PDF 列表、所有位置/尺寸/旋转参数均持久化到
settings.json,重启自动恢复。 - 实时日志:处理过程与结果在界面日志框实时显示(不落盘、不生成 logs 目录)。
- 单文件发布:自带 .NET 运行时,绿色免安装,双击即用。
使用说明
- 运行程序:进入
dist\PdfStampTool-single文件夹,双击PdfStampTool.exe(自带 .NET 运行时,无需安装)。 - 放入印章:把透明背景的 PNG 印章图片拖到「印章图片」区域,程序会自动填入真实尺寸。
- 放入 PDF:把要盖章的 PDF 拖到左侧列表,或点「选择文件夹」批量加入。
- 调整位置(可选):
- 选择四个角之一作为基准位置;
- 设置印章宽度/高度(毫米,可锁定纵横比);
- 设置距 X / 距 Y 边距、水平/垂直微调、每页随机旋转角度。
- 选择保存文件夹:指定盖章后文件存放位置(自动记忆上次路径)。
- 开始处理:点「开始处理」,进度与日志实时显示,完成后文件保存在目标文件夹。
旋转是围绕印章图片中心进行的,因此不会出现位移或变大,且旋转后依然保证印章完整可见。
技术要点
- 开发框架:.NET 8(WPF)、CommunityToolkit.MVVM、HandyControl。
- PDF 引擎:Aspose.PDF,
ImageStamp叠加印章,通过HorizontalAlignment/VerticalAlignment+ 边距实现四角定位,RotateAngle实现围绕中心的随机旋转。 - 坐标换算:1 毫米 = 72 / 25.4 点(pt)。界面使用毫米,内部转换为点。
- 图片尺寸解析:无需
System.Drawing,自行解析 PNG(IHDR)/ JPEG(SOF 标记)像素尺寸,换算为毫米(按 96 DPI)。 - 参数持久化:
System.Text.Json写入程序目录下的settings.json,通过_restoring标志避免在启动时错误覆盖已保存值。 - 图标:内置红色印章图标(
Resources/app.ico,含 16/32/48/64 多分辨率)。
构建与发布
环境要求
- .NET 8 SDK
源码结构
src/PdfStampTool/
App.xaml / App.xaml.cs 程序入口,接入 HandyControl 主题
Views/MainWindow.xaml(.cs) 主界面、拖拽事件、窗口图标
Views/MainWindow.xaml.cs 日志订阅与界面绑定
Views/IntEqualsConverter.cs 角标相等转换器
Views/Bool2VisibilityReverseConverter.cs
Views/StringNotEmptyToVisibilityConverter.cs
ViewModels/MainWindowViewModel.cs MVVM 视图模型、参数记忆、命令
Services/PdfStampService.cs 基于 Aspose.PDF 的盖章核心逻辑
Services/FileLogService.cs 仅界面显示的日志服务(不落盘)
Services/ShellService.cs 打开文件夹等 Shell 操作
Resources/app.ico 程序图标
发布命令
# 自包含单文件发布(产出一个 exe,推荐给最终用户)
dotnet publish .\src\PdfStampTool\PdfStampTool.csproj -c Release -r win-x64 `
--self-contained true -p:PublishSingleFile=true `
-p:IncludeNativeLibrariesForSelfExtract=true `
-o .\dist\PdfStampTool-single
输出文件
- 发布产物位于
dist\PdfStampTool-single\,包含PdfStampTool.exe、Aspose.PDF.dll、zh-Hans\语言包,以及运行时生成的settings.json(用户参数记忆)。